Module: Collabda
- Defined in:
- lib/collabda.rb
Defined Under Namespace
Modules: ClassMethods, Readers
Constant Summary
collapse
- InvalidSource =
Class.new(StandardError)
- MissingAttributes =
Class.new(StandardError)
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.collection(class_name, &block) ⇒ Object
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/collabda.rb', line 19
def self.collection(class_name, &block)
model = Class.new do
include Collabda
self.class_eval(&block)
end
nesting = block.binding.eval("Module.nesting[0]") || Object
nesting.instance_eval{const_set(class_name, model)}
model.build_collection
return model
end
|
.included(base) ⇒ Object
5
6
7
8
9
10
|
# File 'lib/collabda.rb', line 5
def self.included(base)
base.extend(Enumerable)
base.extend(ClassMethods)
@classes ||= []
@classes << base
end
|
.rebuild_collections ⇒ Object
12
13
14
15
16
17
|
# File 'lib/collabda.rb', line 12
def self.rebuild_collections
return if @classes.nil?
@classes.each do |c|
c.build_collection
end
end
|
Instance Method Details
#initialize(attributes_hash = {}) ⇒ Object
30
31
32
33
34
35
|
# File 'lib/collabda.rb', line 30
def initialize(attributes_hash={})
self.class.instance_variable_get("@properties").each do |attribute|
instance_variable_set("@#{attribute}",attributes_hash[attribute])
end
self.class.register_model(self)
end
|