Class: Netfira::WebConnect::Model::Relation
- Inherits:
-
Netfira::WebConnect::Model
- Object
- ActiveRecord::Base
- Netfira::WebConnect::Model
- Netfira::WebConnect::Model::Relation
- Includes:
- Events
- Defined in:
- lib/netfira/web_connect/model.rb,
lib/netfira/web_connect/model/relation.rb,
lib/netfira/web_connect/model/relation/events.rb
Defined Under Namespace
Modules: Events
Class Attribute Summary collapse
-
.related_classes ⇒ Object
Returns the value of attribute related_classes.
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from Netfira::WebConnect::Model
Class Attribute Details
.related_classes ⇒ Object
Returns the value of attribute related_classes.
9 10 11 |
# File 'lib/netfira/web_connect/model/relation.rb', line 9 def end |
Class Method Details
.for(class_a, class_b) ⇒ Object
59 60 61 62 |
# File 'lib/netfira/web_connect/model/relation.rb', line 59 def for(class_a, class_b) name = [class_a, class_b].map{ |c| (c.is_a?(Class) ? c : c.class).name.demodulize }.sort.join 'To' Models.const_get name if Models.const_defined? name end |
.materialize(name_a, name_b) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/netfira/web_connect/model/relation.rb', line 11 def materialize(name_a, name_b) klass = Class.new(self) Models.const_set "#{name_a}To#{name_b}", klass klass. = [name_a, name_b].map{ |n| Models.const_get n.camelize.singularize } klass.acts_as_paranoid if Netfira::WebConnect.paranoia? end |
.table_name ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/netfira/web_connect/model/relation.rb', line 51 def table_name @table_name ||= if self == Model::Relation Models::Table.table_name else Netfira::WebConnect.db_table_prefix(.map(&:plural_name).join '_to_').to_s end end |
Instance Method Details
#records ⇒ Object
66 67 68 69 |
# File 'lib/netfira/web_connect/model/relation.rb', line 66 def records self.class.current_scope = nil if Netfira::WebConnect.paranoia? # Fixes a bug triggered by paranoia self.class..map{ |klass| __send__ klass.single_name.to_sym } end |