flatten_record 1.0.9 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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