Module Icalendar::DateProp::ClassMethods
In: lib/icalendar/helpers.rb

This is made a sub-module just so it can be added as class methods rather than instance methods.

Methods

Public Instance methods

[Source]

    # File lib/icalendar/helpers.rb, line 38
38:       def date_property(dp, alias_name = nil)
39:         dp = "#{dp}".strip.downcase
40:         getter = dp
41:         setter = "#{dp}="
42:         query = "#{dp}?"
43: 
44:         unless instance_methods.include? getter
45:           code = "def \#{getter}(*a)\nif a.empty?\n@properties[\#{dp.upcase}]\nelse\nself.\#{dp} = a.first\nend\nend\n"
46: 
47:           module_eval code
48:         end
49:            
50:         unless instance_methods.include? setter
51:           code = "def \#{setter} a\n@properties[\#{dp.upcase}] = a\nend\n"
52: 
53:           module_eval code
54:         end
55: 
56:         unless instance_methods.include? query
57:           code = "def \#{query}\n@properties.has_key?(\#{dp.upcase})\nend\n"
58: 
59:           module_eval code
60:         end
61: 
62:         # Define the getter
63:         getter = "get#{property.to_s.capitalize}"
64:         define_method(getter.to_sym) do
65:           puts "inside getting..."
66:           getDateProperty(property.to_s.upcase)  
67:         end
68:         
69:         # Define the setter
70:         setter = "set#{property.to_s.capitalize}"        
71:         define_method(setter.to_sym) do |*params|
72:           date = params[0]
73:           utc = params[1]
74:           puts "inside setting..."
75:           setDateProperty(property.to_s.upcase, date, utc)
76:         end
77: 
78:         # Create aliases if a name was specified
79: #         if not aliasName.nil?
80: #           gasym = "get#{aliasName.to_s.capitalize}".to_sym 
81: #           gsym = getter.to_sym
82: #           alias gasym gsym 
83:           
84: #           sasym = "set#{aliasName.to_s.capitalize}".to_sym 
85: #           ssym = setter.to_sym
86: #           alias sasym ssym 
87: #        end
88:       end

[Validate]