I have migrated my blog to www.nalwaya.com .
Friday, August 24, 2012
Tuesday, March 6, 2012
Automate the process of running the test (watchr gem used with rails and rspec)
Installation watchr
Step 1.) Installing the gem
gem install watchr
If you are using it with rails better bundle install the gem after adding the following code in gemfile
group :development, :test do
gem 'rspec-rails'
gem 'watchr'
end
Step 2.) Create .watchr file in root directory and add the following code:
def run_spec(file)
unless File.exist?(file)
puts "#{file} does not exist"
return
end
puts "Running #{file}"
system "bundle exec rspec #{file}"
puts
end
watch("spec/.*/*_spec.rb") do |match|
run_spec match[0]
end
watch("app/(.*/.*).rb") do |match|
run_spec %{spec/#{match[1]}_spec.rb}
end
Step 3.) run the following command:
watchr .watchr
Now you can make change in your code and then automatically respective spec will run.
References :
https://github.com/mynyml/watchr
http://www.rubyinside.com/how-to-rails-3-and-rspec-2-4336.html
I today tried watchr gem while writing my unit test in rails application.It automate the process of running unit test. Watchr automatically run the test for the files which are change. That means if I changed Employee model then it will automaticall run employee_spec.rb . I found this gem very useful as save lot of time for manually run the test.
Installation watchr
Step 1.) Installing the gem
gem install watchr
If you are using it with rails better bundle install the gem after adding the following code in gemfile
group :development, :test do
gem 'rspec-rails'
gem 'watchr'
end
Step 2.) Create .watchr file in root directory and add the following code:
def run_spec(file)
unless File.exist?(file)
puts "#{file} does not exist"
return
end
puts "Running #{file}"
system "bundle exec rspec #{file}"
puts
end
watch("spec/.*/*_spec.rb") do |match|
run_spec match[0]
end
watch("app/(.*/.*).rb") do |match|
run_spec %{spec/#{match[1]}_spec.rb}
end
Step 3.) run the following command:
watchr .watchr
Now you can make change in your code and then automatically respective spec will run.
References :
https://github.com/mynyml/watchr
http://www.rubyinside.com/how-to-rails-3-and-rspec-2-4336.html
Tuesday, February 28, 2012
Which mobile platform is the best Native or Web app ?
Mobilize your website: Native App or Mobile Web?
There is mobile buzz going on, every one want that there
website should have access to smart phones. It was till last year that only
Social/e-commerce sites have mobilized but now because of phenomenon growth of
smart mobiles and tablets there is also good growth in enterprise applications.
Each sector whether it is Education, Health, Social etc every one is trying to be mobilized.
In mobile world things are not simple as web development as
there are lot of different devices available.
There is no standard in these devices and that's also changing at very fast rate.
I will give you an example I am working on mobilizing BMC IT Service
management. When we started we did a survey about which mobile device is mostly
used by our Clients. The number of Blackberry users at that time were huge. So we started
development concentrating on Blackberry but then we realized that iphone number
has grown at very fast rate and our customers want the product for iphone also.
It was good that we designed our API’s and code in good way that it does not take
much time to release the same product for iphone also. So coming back to point
the mobile world is changing at very fast rate, we can’t decide which platform
will lead the future but choosing the right framework and designing good API
will always help you.
I got frequently get mail and call by many companies and people
asking which framework is good for creating Mobile application or asking which
is better Native application or Web application. So just thought to consolidate all the ideas.
To start with we can create mobile application in three type way:
Native Apps:
These are platform specific application which
is coded in platform specific language like Objective C for iphone/ipad, Java
for Andorid etc.
Mobile games are develop using this application.
Advantages:
- This application are reliable, performance is good and very powerful.
- Can use Device Cabiblity like GPS, phone book, camera etc
- You can have push Notifications
Disadvantage:
- Take lot of time for Development
- Creating and maintain cost is very high as we have to code for each platform.
- Finding language specific resource for this language is big task. As we need dedicate resources which are expert in these languages.
- Have to submit to Appstore which is a painful process.
Mobile Web application:
These are the simple web application which can be access
from each web enable device.
Advantage:
- Don’t need for Appstore submission. This is the most painful and time consuming process.
- Cross platform- work on all HTML5 devices like iphone, Android and Blackberry
- Easy to create and maintain.
Disadvantage:
- Not work well for touch phones( Can use some CSS framework for touch effect)
- This application are not very fast and not reliable
- No Offline Capability
- Can’t use Device Capbilities and push notifications
Hybrid Applcations
These are application which are created with some HTML5
based framework like Rhomobie, phonegap, titanium. These application can access
device capability with there API and easy to code.
Advantage
- Development is very fast,
- Cross platform
- Can use device capability and push notifications
Disadvantage:
- If you need any specific feature you have to wait until these framework support that feature.
- Choosing between these framework is difficult task. Each has its advantage and disadvantages.
So choosing in between depends on your requirements:
Sites like standard e-commerce sites, Social Networking
site speed and experience can make a huge difference in the effectiveness of a
mobile commerce website or native application. Sites that are slow to load —
even by just a second or two — can often lead to users forgoing the transaction
altogether. For this type of application I think Native application is best
solution.
Sites like Enterprise application, Events, meetups etc were ease and time of development is important there Hybrid application are best solutions. You can also use device capability, offline capabilities with them.
If your application is used to check certain information and don’t want any offline capabilities/Device capabilities than Mobile Web application is best solutions.
And most important, design your API in good way so that they can be reused easily.
To know about different framework available follow this link
Also i have presentation in RubyConfIndia 2012 about "Which Mobile platform should i choose?"
Also i have presentation in RubyConfIndia 2012 about "Which Mobile platform should i choose?"
Monday, January 9, 2012
Proc vs lamda in ruby
The are two major difference between procs and lambda
1.) A proc can break the parent method, return values from it, and raise exceptions, while such statements in lambda will only affect the lambda object.
def foo
f = Proc.new { return "return from foo from inside proc" }
f.call # control leaves foo here
return "return from foo"
end
def bar
f = lambda { return "return from lambda" }
f.call # control does not leave bar here
return "return from bar"
end
puts foo # prints "return from foo from inside proc"
puts bar # prints "return from bar"
2.) The other difference is unlike Procs, lambdas check the number of arguments passed.
def some_method(code)
one, two = 1, 2
code.call(one, two)
end
some_method(Proc.new{|first, second, third| puts "First argument: #{first} and Second argument #{second} and Third argument #{c. third}"})
some_method(lambda{|first, second, third| puts "First argument: #{first} and Second argument #{second} and Third argument #{c. third}"})
# => First argument: 1 and and Second argument 2 and Third argument NilClass
# *.rb:8: ArgumentError: wrong number of arguments (2 for 3) (ArgumentError)
We see with the Proc example, extra variables are set to nil. However with lambdas, Ruby throws an error instead.
Sunday, January 8, 2012
rhomobile tutorial and Example
If you are new to Rhomobile and don't know how to start with Rhomobile products. Then may be this blog will helpful to you. I have consolidate all the tutorials and Examples.
Book
Docs
Webinar
Presentations
Examples
I will keep updating this with new example and sources to learn Rhomobile products
Rhomobile Ajax Calls using JQuery Mobile
Note: This will only work on IPhone,Android and Blackberry(version 6 and above)
In this example I will load some text inside a div on clicking of a button.
Step 1.) Create a div and button on a page
<input type= "button" id="some-button"/ name="button" value="Load Value By Ajax">
<div id= "some-div">
</div>
Step 2.) Create a Javascript
Step 3.) Create a action ajax_method in controller
def ajax_method
@some_value = "Its all about ruby ---" +@params['some_variable']
render :action => :ajax_method, :layout => false, :use_layout_on_ajax => false
end
Step 4.) Create a ajax_method.erb file
<i><b><%= @some_value %></b></i>
It is just a very basic example you can do many more things like error handling, adding loading image etc.
Labels:
Ajax,
Jquery Mobile,
rhodes
Subscribe to:
Posts (Atom)