This is a list of ruby pearls and gems, that help me in my daily routine coding tasks.
1. Retain only unique elements in an array:
2. Command line options parsing:
3. Delete a key-value pair in the hash map, where the key matches certain condition:
Certainly, you can use regular expression based matching for the condition or a custom function, say, on the 'key' value.
4. Interacting with mysql. I use mysql2 gem. Check out the documentation, it is pretty self-evident.
5. Working with Apache SOLR: rsolr and rsolr-ext are invaluable here:
1. Retain only unique elements in an array:
- a = [1, 1, 2, 3, 4, 4, 5]
- a = a.uniq # => [1, 2, 3, 4, 5]
2. Command line options parsing:
- require 'optparse'
- class Optparser
- def self.parse(args)
- options = {}
- OptionParser.new do |opts|
- opts.banner = "Usage: example.rb [options]"
- opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
- options[:verbose] = v
- end
- opts.on("-o", "--require OUTPUTDIR", "Output directory") do |o|
- options[:output_dir] = o
- end
- options[:source_dir] = []
- opts.on("-s", "--require SOURCEDIR", "Source directory") do |s|
- options[:source_dir] << s
- end
- end.parse!
- options
- end
- end
- options = Optparser.parse(ARGV) #pp options When executed with -h, this script will automatically show the options and exit.
3. Delete a key-value pair in the hash map, where the key matches certain condition:
- hashMap.delete_if {|key, value| key == "someString" }
Certainly, you can use regular expression based matching for the condition or a custom function, say, on the 'key' value.
4. Interacting with mysql. I use mysql2 gem. Check out the documentation, it is pretty self-evident.
5. Working with Apache SOLR: rsolr and rsolr-ext are invaluable here:
- require 'rsolr'
- require 'rsolr-ext'
- solrServer = RSolr::Ext.connect :url => $solrServerUrl, :read_timeout => $read_timeout, :open_timeout => $open_timeout
- doc = {field1=>"value1", "field2"=>"value2"}
- solrServer.add doc
- solrServer.commit(:commit_attributes => {:waitSearcher=>false, :softCommit=>false, :expungeDeletes=>true})
- solrServer.optimize(:optimize_attributes => {:maxSegments=>1}) # single segment as output
No comments:
Post a Comment