Posts

Showing posts from February, 2009

concat multiple arrays

hi, joining multiple arrays is easy using "+" we can do that using a single method as follows, class Array def concat_multi *lists lists.each {|list| self.concat(list) } end end a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9] d = [10, 11] a.concat_multi(b, c, d) p a

Convert a String into Time

require'rubygems' => true require'time' => true a="Thu Feb 19 18:16:33 +0530 2009" => "Thu Feb 19 18:16:33 +0530 2009" a=Time.parse(a) => Thu Feb 19 18:16:33 +0530 2009 a.day => 19 a.year => 2009 a.month => 2 a.hour => 18 a.min => 16 a.sec => 33 thanks..

Weekday or not

hi, wanna find whether a day is week day or not?? i have tried tht here. , date=date.today [0,6].include?(date.wday) ------------------------------------------------------------------------ require 'date' class Date def weekend? self.wday == 0 || self.wday == 6 end end d1 = "9 December 2008" d2 = "13 December 2008" p Date.parse(d1).weekend? # false p Date.parse(d2).weekend? # true ------------------------------------------------------------------------ I have used the code for calculation of weekdays between 2 dates., require 'date' d1 = Date.new( 2008, 11, 1 ) d2 = Date.new( 2008, 12, 31 ) WEEKDAY_NUMBERS = [1,2,3,4,5] weekdays = (d1..d2).select{ |d| WEEKDAY_NUMBERS.include?( d.wday ) } p weekdays.length ----------------------------------------------------

Displaying Rss in rails

hi, i have displayed an array as rss feeds, using rails.. here s the code.. In the controller, h={} h[:summary] =summary h[:description]=description h[:dtstart]=dtstart.to_s h[:url]=url @arr render :layout =>false response.headers["Content-Type"]= "application/xml; charset=utf-8" In the View file., Filename is , *.rxml xml.instruct! xml.rss "version" => "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/" do xml.channel do |feed| feed.title("My great blog!") feed.description("description") feed.link("ur url link") @arr.each { |p| feed.item do |item| item.title p[:summary] item.description p[:description] item.link p[:url] item.pubdate p[:dtstart] end } end end now it is displayed as xml feed in the view file.. Thanks .

ICAL - specifications

hi, here is the ical specifications listed by wiki.. http://upload.wikimedia.org/wikipedia/en/c/c0/ICalendarSpecification.png Thanks.

ICAL-RSS convertion using vpim gem

hi, i have done the same rss to ical ,vise-versa using vpim gem.. here is the gem home.. http://vpim.rubyforge.org/ This is my code.. require 'rubygems' require 'vpim/icalendar' require'feed_tools' require'digest/md5' feed = FeedTools::Feed.open("http://rss.cnn.com/rss/edition_world.rss") cal = Vpim::Icalendar.create2 feed.items.each do |item| cal.add_event do |e| e.dtstart item.time e.dtend item.time e.summary item.title.to_s e.description item.description.to_s e.url item.link e.uid Digest::MD5.hexdigest("#{item.title} #{item.link}") e.access_class "PUBLIC" e.transparency 'OPAQUE' now = Time.now e.created now e.lastmod now e.organizer do |o| o.cn = "Example Organizer, Mr." o.uri = "mailto:organizer@example.com" end end end icsfile = cal.encode f=File.open('2.ics','w') f.write(icsfile) put...

Ical to Rss Converter

hi, first execute the rss to ical converter, store it in a file, then use this script, to convert it into rss. require 'rubygems' require 'net/http' require 'uri' require 'time' class Time def self.gcalschema(tzid) # We may not be handling Time Zones in the best way... tzid =~ /(\d\d\d\d)(\d\d)(\d\d)T(\d\d)(\d\d)(\d\d)Z/ ? # yyyymmddThhmmss Time.xmlschema("#{$1}-#{$2}-#{$3}T#{$4}:#{$5}:#{$6}") : nil end end class ICal attr_accessor :hash, :raw def initialize(ical_data) self.raw = ical_data self.hash = self.parse_ical_data(self.raw) end def parse_ical_data(data) data.gsub!(/\\\n/, "\\n") data.gsub!(/[\n\r]+ /, "\\n") lines = data.split(/[\n\r]+/) structure = [{}] keys_path = [] last_is_array = false lines.each do |line| line.gsub!(/\\n/, "\n") pair = line.split(':') name = pair.shift ...

RSS to Ical Converter

hi, this program gets the rss feed using the feed_tools gem. then converts into ical. then i ve written it in a file. hope it will be useful. require'rubygems' require'feed_tools' require'digest/md5' require 'icalendar' require 'date' feed = FeedTools::Feed.open("http://timesofindia.indiatimes.com/rssfeeds/-2128932452.cms") cal = Icalendar::Calendar.new cal.custom_property("METHOD","PUBLISH") feed.items.each do |item| event = Icalendar::Event.new event.url=item.link event.uid=Digest::MD5.hexdigest("#{item.title} #{item.link}") event.dtstart = item.time.strftime("%Y%m%dT%H%M%S") event.dtend = item.time.strftime("%Y%m%dT%H%M%S") event.summary = item.title.to_s event.description = item.description.to_s event.klass = "PUBLIC" cal.add_event(event) end ical= cal.to_ical f=File.open("rss2ical.ics","w") f.write(ical) puts ical.to_html