Module: Videojuicer::Resource::PropertyRegistry::SingletonMethods
- Defined in:
- lib/videojuicer/resource/property_registry.rb
Instance Method Summary collapse
-
#property(prop_name, klass, options = {}) ⇒ Object
Registers an attribute using a datamapper-style syntax.
Instance Method Details
#property(prop_name, klass, options = {}) ⇒ Object
Registers an attribute using a datamapper-style syntax. Creates setter and getter methods
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
# File 'lib/videojuicer/resource/property_registry.rb', line 173 def property(prop_name, klass, ={}) # Can't raise twice. prop_name = prop_name.to_sym raise ArgumentError, "Property #{prop_name} already registered." if self.attributes.include?(prop_name) = {:class=>klass, :writer=>:public}.merge() # Register with the class self.attributes[prop_name] = # Create setter methods define_method prop_name do attr_get(prop_name) end private if [:writer] == :private protected if [:writer] == :protected define_method "#{prop_name}=" do |arg| attr_set(prop_name, arg) end public end |