Module: ActiveTriples::Properties::ClassMethods
- Defined in:
- lib/active_triples/properties.rb
Instance Method Summary collapse
-
#config_for_term_or_uri(term) ⇒ ActiveTriples::NodeConfig
Given a property name or a predicate, return the configuration for the matching property.
-
#fields ⇒ Array<Symbol>
List the property names registered to the class.
- #generated_property_methods ⇒ Object
-
#inherited(child_class) ⇒ Object
:nodoc:.
-
#initialize_generated_modules ⇒ Object
:nodoc:.
-
#property(name, opts = {}) {|index| ... } ⇒ Object
Registers properties for Resource-like classes.
- #protected_property_name?(name) ⇒ Boolean
Instance Method Details
#config_for_term_or_uri(term) ⇒ ActiveTriples::NodeConfig
Given a property name or a predicate, return the configuration for the matching property.
62 63 64 65 |
# File 'lib/active_triples/properties.rb', line 62 def config_for_term_or_uri(term) return properties[term.to_s] unless term.kind_of? RDF::Resource properties.each_value { |v| return v if v.predicate == term.to_uri } end |
#fields ⇒ Array<Symbol>
List the property names registered to the class.
72 73 74 |
# File 'lib/active_triples/properties.rb', line 72 def fields properties.keys.map(&:to_sym) end |
#generated_property_methods ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/active_triples/properties.rb', line 30 def generated_property_methods @generated_property_methods ||= begin mod = const_set(:GeneratedPropertyMethods, Module.new) include mod mod end end |
#inherited(child_class) ⇒ Object
:nodoc:
21 22 23 24 |
# File 'lib/active_triples/properties.rb', line 21 def inherited(child_class) #:nodoc: child_class.initialize_generated_modules super end |
#initialize_generated_modules ⇒ Object
:nodoc:
26 27 28 |
# File 'lib/active_triples/properties.rb', line 26 def initialize_generated_modules # :nodoc: generated_property_methods end |
#property(name, opts = {}) {|index| ... } ⇒ Object
Registers properties for Resource-like classes
43 44 45 46 47 |
# File 'lib/active_triples/properties.rb', line 43 def property(name, opts={}, &block) raise ArgumentError, "#{name} is a keyword and not an acceptable property name." if protected_property_name? name reflection = PropertyBuilder.build(self, name, opts, &block) Reflection.add_reflection self, name, reflection end |
#protected_property_name?(name) ⇒ Boolean
49 50 51 52 53 |
# File 'lib/active_triples/properties.rb', line 49 def protected_property_name?(name) reject = self.instance_methods.map! { |s| s.to_s.gsub(/=$/, '').to_sym } reject -= properties.keys.map { |k| k.to_sym } reject.include? name end |