flatten_record 1.0.9 → 1.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4acecab186c88877fccb930b80aab22cba432ecf
4
- data.tar.gz: 0e956afb8e89ef0633296f7671708fe1c82a2d78
3
+ metadata.gz: b57c2e9c8ecb754187d40e89bb872e9e3acac01b
4
+ data.tar.gz: 7fe1528232b33e650853ea36cfb9dc714fec35cb
5
5
  SHA512:
6
- metadata.gz: ae919081314e1e02b9ce723d0c516a37749bb49b7a6e8b653134c6027bc5ee204db96a49550d9296dd8ccbc6b5ff66f448c996a9127a190cfde1d86fb830cbec
7
- data.tar.gz: c64965869e6ab68eee47cedc1bbf138641ed4efc7e8f6b543d1c6f7d8b5fe5410698ce417d69a4d72667dbb5f82cc974b080ea11caa6827067480cf10af9bd1c
6
+ metadata.gz: 9df65bb0f8455d5cdee5120e6b5c4d3cdeb6c61fce1fa267c5155c4af977e2fd656be607da5aef29c370b081f4e6ba1f23b409fd9a37d4d8b9d82a5320ba6bbc
7
+ data.tar.gz: 976044179c92e7c9d5728bca4c7d3e79540742d5aca6a5db4bbd6555b10b714e07ca7783eeaf970aeed314003978b63e56b8f500cea66aa44c3255fc9a2ee6a4
@@ -12,19 +12,28 @@ module FlattenRecord
12
12
  Config.included_models << base.to_s
13
13
 
14
14
  base.class_eval do
15
- cattr_accessor :flattener_meta, :normal_model
15
+ cattr_reader :root_node, :normal_model, :definition_hash
16
16
  end
17
17
  end
18
18
 
19
19
  module ClassMethods
20
20
  def denormalize(normal_model, definition_hash)
21
- definition = Definition.new(definition_hash)
21
+ self.class_variable_set("@@definition_hash", definition_hash)
22
+ self.class_variable_set("@@normal_model", normal_model.to_s.camelize.constantize)
23
+ end
22
24
 
23
- root_node = Meta::RootNode.new(normal_model, self)
24
- root_node.build(definition)
25
+ def flattener_meta
26
+
27
+ node = self.class_variable_get(:@@root_node)
28
+ if node.blank?
29
+ definition = Definition.new(self.definition_hash)
25
30
 
26
- self.flattener_meta = root_node
27
- self.normal_model = root_node.target_model
31
+ root_node = Meta::RootNode.new(self.normal_model, self)
32
+ root_node.build(definition)
33
+
34
+ node = self.class_variable_set("@@root_node", root_node)
35
+ end
36
+ node
28
37
  end
29
38
 
30
39
  def create_with(normal)
@@ -1,3 +1,3 @@
1
1
  module FlattenRecord
2
- VERSION = "1.0.9"
2
+ VERSION = "1.0.10"
3
3
  end