Posts filed under 'coding'

Regular expression

Here is the most frequently used special characters in regular expression of Java script. In a simple and concise way. [Background support : AMIT R.]

*   - 0/n chars >> /raj*/ -> ra, raj,rajj,rajesh, krajesh too [talking about j]
+   - 1/n chars >> /raj=/ -> raj,rajesh, krajesh too but not ra [talking about j]
?   - 0/1 char  >> /raj?/ -> ra, raj, rajj [talking about j]
.   - any SINGLE char expecting at its postion except \n.  [no previous no after]
    /.n/ >> in,on,an but not nan
|  - or >> /java|ruby/  -> java or ruby (dont think a or r) , matches also jruby or rjava
[abc] - matches ANY ONE , same can be written as [a-c]
^   - begin with /^ruby/ -> ruby, ruby programmer but not jruby
$   - end with /ruby$/ -> End with y >> ruby, jruby, kruby but not rubyk
[^a-z]  - Any single match other than a-z
\d   /[0-9]/  i.e. any single digit
\D   /^[0-9]/ i.e. any single char other than 0 to
\w  - Any alphanumeric char other than underscore  [A-Za-Z0-9]

Add comment July 3, 2008

Generate Unique ID

Here is a very simple way to generate a unique id.
[Background support : Abhishek S.]

def generate_unique_id( len )
    chars_pattern = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
    unique_id = ""
    1.upto(len) {
			|i| unique_id << chars_pattern[rand(chars_pattern.size-1)]  }
    return unique_id
end
#generates a key of length 10
mykey = generate_unique_id(10)
print mykey # gives a result like "qeKX0myIQh"

Add comment June 23, 2008

code optimization

if params[:a].nil?
  if params[:b].nil?
       "999"
  else
     params[:b]
  end
else
  params[:a]
end

the same can be written using ternary operator

@a1 = params[:a].nil? ? params[:b].nil? ? ‘999′ : params[:b] :params[:a]

But you know RoR is so powerful…..
@a1 = params[:a] ||= params[:b] ||= ‘999′
[Background support : Ashish S.]


Add comment June 18, 2008

Sorting an Array of hashes

We get a situation where we fetch some set of records from db as an array of hashes, and later we need to sort this array based on some field of DB.

Here is a very hand code to do so.

array_objs =[ {:title => "row1_title" ,:name => "Mumbai"},
              {:title => "row2_title" ,:name => "Delhi"},
              {:title => "row3_title" ,:name => "Bangalore"}  ]

array_objs .sort_by  {|array_objs|   array_objs [:name] }.each do |res|
  puts "#{res[:name] }"
end


O/P:
Bangalore
Delhi
Mumbai


Add comment May 13, 2008

Exception Handling in Ruby

>begin expression executes its body and returns the value of the last evaluated expression.
>Any error in begin part will be caught by rescue depending upon parameters
>ensure is the one which must be exectued irrespective of exception occured or not
>An error message caught by an exception can be accessed using $!

For Java Programmers [ begin => try ; rescue => catch; ensure => finally]

begin
 p "I am doing well"
 p "so well .. and well"
 a = 8/0
rescue
 p "Something went wrong => " + $!
ensure
 p "Oh Somehow I could finish my work"
end

O/P:

“I am doing well”
“so well .. and well”
“Something went wrong => divided by 0″
“Oh Somehow I could finish my work”

a = 8
b = 0
begin
 p "I am doing well"
 p "so well .. and well"
 if a==18
    p "I am happy with a as 8"
 elsif b == 0
    p "Lets say I dont want this"
    raise Exception
 else
    raise
 end

rescue
    p "Exception 1 caught here " + $!
rescue Exception
    p "Exception 2 caught here " +$!
ensure
 p "Oh Somehow I could finish my work"
end

O/P for [[ a = 8 and b = 0 ]]
“I am doing well”
“so well .. and well”
“Lets say I dont want this”
“Exception 2 caught here Exception”
“Oh Somehow I could finish my work”

O/P for [[ a = 8 and b = 1 ]]
“I am doing well”
“so well .. and well”
“Exception 1 caught here “
“Oh Somehow I could finish my work”


Add comment April 18, 2008

RubyGems

A gem is a packaged Ruby application or library. It has a name and a version and have a specific task. Based on your requirement you may embed them into your application codes.

For eg.
activerecord 0.8.4
BlueCloth 0.0.4
captcha 1.1.2
cardinal 0.0.4
progressbar 0.0.3
rake 0.4.0

Gems are managed on your computer using the gem command. You can install, remove, and query gem packages using the gem command.

Installing RubyGems:
RubyGems is the name of the project that developed the gem packaging system and the gem command. You can get RubyGems from the RubyForge repository http://rubyforge.org/frs/?group_id=126
then type
ruby setup.rb
It installs the required library files and the gem command. This command gives us the power to do many things.

In a shortcut version at CLI we may use
q for query
r for remote
l for local
n for name
spec for specification

Listing remotely installable gems
gem query –remote

Searching remotely installable gems
gem query –remote –name-matches doom
# shortcut: gem q -R -n doom

Installing a remote gem
gem install –remote progressbar
or
gem ins -r progressbar-0.0.3
or
gem ins -r progressbar –version ‘> 0.0.1′
RubyGems allows you to have multiple versions of a library installed and choose in your code which version you wish to use.

Looking at an installed gem
gem specification progressbar

Listing all installed gems
gem query –local

remote or local
If you don’t specify either of these, then gem will (usually) try ’’both’’ a local and remote operation. For example:
gem ins rake # Attempt local installation; go remote if necessary
gem list -b ^C # List all local AND remote gems beginning with “C”

Coding With RubyGems
require ‘rubygems’
require ‘progressbar’
and then subsequently
bar = ProgressBar.new(”Example progress”, 50)

The first line of the program requires the progressbar library file. RubyGems will look for the progressbar.rb file in the standard library locations. If not found, it will look through its gem repository for a gem that contains progressbar.rb. If a gem is used, RubyGems attempts to use the latest installed version by default.

Specifying Versions
gem install –remote rake –version “0.4.14″

Updating RubyGems
gem update –system
or
gem install rubygems-update
update_rubygems

Uninstalling a gem
gem uninstall progressbar

Info extracted from : http://rubyforge.org/


Add comment April 12, 2008

Previous Posts


Categories

posts[:recent]

episodes[:recycled]

@@name = PRAYAS

Step down at my blog with your ideas,comments,suggestions on Ruby,RoR,Ajax or Web2.0.You may reach me at
infostall@gmail.com

find_by_tags

Links

visitors[:since_Mar'08]

free web counter

Spam Blocked

Feeds

Meta

RSS Prayas here