Friday 30 August 2013

Calabash IOS ruby installation (rvm) error and solution

echo progress-bar >> ~/.curlrc
execute command to install rvm with latest ruby:
\curl -L https://get.rvm.io | bash -s stable --ruby

Add below line into ~/.bash_profile
#RVM
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

Check calabash installation
 calabash-ios console
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:777:in `report_activate_error': Could not find RubyGem json (>= 0) (Gem::LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:211:in `activate'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:246:in `activate'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:245:in `each'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:245:in `activate'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:1056:in `gem'
from /usr/bin/calabash-ios:18

install this command and you may see below error
sudo gem install json

unable to convert "\xCF" from ASCII-8BIT to UTF-8 for lib/json/ext/generator.bundle,

sudo gem update --system
sudo gem install rdoc



Monday 5 August 2013

Reading plist file using ruby : useful for calabash IOS Automation

#!/usr/bin/ruby -w
# encoding: utf-8

require 'plist'


def read_plist(plist_file)
  result=Plist::parse_xml(plist_file)
  i=0
  result.each { |k, v|
    i=i+1
    puts k
    puts v
    puts
  }
end

read_plist("features/dump/test.plist")

 Sample plist file

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Language</key>
    <string>Svenska</string>
    <key>Version</key>
    <integer>4</integer>
  </dict>
</plist>




very useful while readings strings for localisation (calabash)