def date_property(dp, alias_name = nil)
dp = "#{dp}".strip.downcase
getter = dp
setter = "#{dp}="
query = "#{dp}?"
unless instance_methods.include? getter
code = "def \#{getter}(*a)\nif a.empty?\n@properties[\#{dp.upcase}]\nelse\nself.\#{dp} = a.first\nend\nend\n"
module_eval code
end
unless instance_methods.include? setter
code = "def \#{setter} a\n@properties[\#{dp.upcase}] = a\nend\n"
module_eval code
end
unless instance_methods.include? query
code = "def \#{query}\n@properties.has_key?(\#{dp.upcase})\nend\n"
module_eval code
end
getter = "get#{property.to_s.capitalize}"
define_method(getter.to_sym) do
puts "inside getting..."
getDateProperty(property.to_s.upcase)
end
setter = "set#{property.to_s.capitalize}"
define_method(setter.to_sym) do |*params|
date = params[0]
utc = params[1]
puts "inside setting..."
setDateProperty(property.to_s.upcase, date, utc)
end
end