Thursday, September 30, 2010

Nokogiri HTML and XML parser

Nokogiri gem, a new HTML, XML, SAX and Reader parser for Ruby.

It parses and searches XML/HTML faster than Hpricot(Hpricot being the current de facto Ruby HTML parser) and boasts XPath support, CSS3 selector support (a big deal, because CSS3 selectors are mega powerful) and the ability to be used as a "drop in" replacement for Hpricot.

On an Hpricot vs Nokogiri benchmark, Nokogiri clocked in at 7 times faster at initially loading an XML document, 5 times faster at searching for content based on an XPath, and 1.62 times faster at searching for content via a CSS-based search.

Here is the example :

require 'nokogiri'

require 'open-uri'

# Get a Nokogiri::HTML:Document for the page we’re #interested in...

doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove'))

#Do funky things with it using Nokogiri::XML::Node methods...

# Search for nodes by css

doc.css('h3.r a.l').each do |link|

puts link.content

end

####

# Search for nodes by xpath

doc.xpath('//h3/a[@class="l"]').each do |link|

puts link.content

end

####

# Or mix and match.

doc.search('h3.r a.l', '//h3/a[@class="l"]').each do |link|

puts link.content

end

Source : http://nokogiri.org/


Saturday, September 25, 2010

My libraries in lib folder is not loading for Rails3..

My libraries in lib folder is not loading for Rails3!!!

Is it a bug?...NO

In Rails 3 it does not automatically load files in lib folders. . If you create any module/class in lib folder and try to use it, the server will throw an "uninitialized constant Modulename (NameError)". You have to manually include the modules which you want to use.


The possible reason for this behaviour is:

  • This makes a Rails application behave more closely to any Ruby project, leaving the autoload to directories specific to Rails .
  • Increasing performance.
  • Autoloading in lib was always causing some pain, since some people had files like "employee.rb" but there was no "employee" module defined it.

There is solution to unable this feature again:

Put this in application.rb

config.autoload_paths += %W(#{config.root}/lib)

config.autoload_paths += Dir["#{config.root}/lib/**/"]

Wednesday, August 18, 2010

Rhodes Installation

Installing Rhodes(Rhomobile)
These are the steps to install rhodes
Step 1 : Install Ruby: Better download window installer for Ruby 1.8.6 or 1.8.7. I am using ruby 1.8.7 and it work good for me. You can download it from http://www.ruby-lang.org/en/downloads/
Note : Don’t forget to add ruby to your path(It will ask you while installing ruby). You can test it from command prompt by typing ruby -v
Step 2: Install rubygems: Any version above 1.3.5 will work
Step 3: Install GNU : Install GNU for windows so that commands like make etc can work. You can download it from http://gnuwin32.sourceforge.net/packages/make.htm for windows. For Linux and Mac it will be already installed.
Step 4: Install JDK : Install JDK version 1.6.0_2 or higher. You can download it from http://www.oracle.com/technetwork/java/javase/downloads/index.html
Make sure you set JAVA_HOME and that JAVA_HOME/bin is on your path.
Major issues which may prompt are:
--If you get any "no such file to load -- something" messages while running the rake tasks or rhogen commands, this can usually be resolved by running '[sudo] gem install something'.
-- If your libintl3.dll is not loaded then download it by googling and put in bin folder.
Step 5 : You can install Rhodes in two ways
- Download it from git
- Download it as gem
I will prefer download it as gem. Just type on command prompt
gem install rhodes
Step 6: Install Simulator : Install the simulator of the phone for which you want to build application
1.) Blackberry : You can download the latest version of simulator from the following URL : https://www.blackberry.com/Downloads/entry.do?code=060AD92489947D410D897474079C1477
2.) Iphone: You can install it from apple website. But it will work on apple machine.
3.) Android : You can download the latest version of simulator from the following URL :
You are ready to create your first application.

Thursday, August 12, 2010

Rhodes Framework


The Rhodes is a microframework based on ruby and it is used to develop rapidly NATIV apps for Mobiles. The best thing which I like about Rhodes is that we have to develop the application once and it can be build for all major Phones. It is currently supported for Blackberry, Iphone, Android, Windows Mobile, RIM and symbians. It generates pure native apps but if we check the code it is pure html and ruby. It work with synchronized local data and take advantage of device capabilities such as GPS, PIM contacts and camera.

The Advantages of Rhodes is :

· support for ALL smartphones

· Open source

· synchronized offline data

· a Model View Controller (MVC) framework

· an Object Relational Manager (ORM) to avoid direct SQL coding

· Available as Ruby gem and also available on github for download

· Portable

· Productive

· Support and community

· Codes is similar to Rails

· Can write Unit Test cases using specs

It is product of Romobile. The major product of rhomobile are Rhodes ,RhoSync and RhoHub.

RhoSync

RhoSync is a standalone server which keeps enterprise application data current and available on users’ smartphones. The information is stored locally on a user’s device and available to him even when disconnected and offline.


RhoHub

Easy hosted development for mobile apps. It is very much similer to Heroku. RhoHub offers a hosted development environment for mobile applications. It is built on top of Rhodes and RhoSync. It allows developers to write native apps in HTML and Ruby using their web browser and then build these apps without installing device SDKs.


To know more about Rhodes watch this video :