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