rom_factory 0.2.0 → 0.2.1

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: 4d7f88e94fe99eaadc2cbb839963787530887f7f
4
- data.tar.gz: 0da62949cdf773cdd64a28668d743e0cfb6f9c85
3
+ metadata.gz: 2f193dd615af73966df7fac4125fa50e6673edef
4
+ data.tar.gz: 3b615384c4ac0e2a98b454b70f11546ad9197865
5
5
  SHA512:
6
- metadata.gz: f46be1666a758535f5019b7143f2a62ca09e45bb68fe3d9d9df950c3579b8eb2e700f604430192e944f0fb390e8a90ada9662af95d467d7877b13062179a227f
7
- data.tar.gz: f174b5ef4097aabbb85d2b070ba40913d0f6beccc3abb9b85498a61f9db9197cb2d189f81f027796de66c1812120d94cee18c2c8e4a140a30c3f786c5ee13138
6
+ metadata.gz: a91e907775dd9fb5999f14a7d20310bf3d53d2203cc6e38a8dc8f1534b5aa9a8d243ec5adfddb4ae29c63c849146ca3cd2034d59b4c1993f7ad2b3e1783fa00a
7
+ data.tar.gz: 12d0e91bc56504d30f3d15ef80b117b8b9a6689acdd6a77f2006f649b8a7a29a0551974bdf5ca765dc31b6307c7613856f55fa4cebebbf25b6f7712942f84171
@@ -14,7 +14,7 @@ module RomFactory
14
14
  def create(attrs)
15
15
  values = _schema.merge(wrap_attributes_to_callable(attrs)).map {|k, v| [k, v.call]}
16
16
  record_id = _relation.insert(values.to_h)
17
- OpenStruct.new(values.to_h.merge(id: record_id))
17
+ Struct.new(values.to_h.merge(id: record_id))
18
18
  end
19
19
 
20
20
  def sequence(method_id, &block)
@@ -0,0 +1,37 @@
1
+ module RomFactory
2
+ class Struct
3
+ def initialize(values)
4
+ @values = values
5
+ define_methods
6
+ set_values
7
+ end
8
+
9
+ attr_reader :schema, :values
10
+
11
+ def define_methods
12
+ values.each {|k,v|
13
+ define_singleton_method k, Proc.new {
14
+ instance_variable_get("@#{k}")
15
+ }
16
+
17
+ define_singleton_method "#{k}=", Proc.new {|v|
18
+ instance_variable_set("@#{k}", v)
19
+ }
20
+ }
21
+ end
22
+
23
+ def set_values
24
+ values.each do |k, v|
25
+ send("#{k}=", v)
26
+ end
27
+ end
28
+
29
+ def to_hash
30
+ to_h
31
+ end
32
+
33
+ def to_h
34
+ values
35
+ end
36
+ end
37
+ end
@@ -1,3 +1,3 @@
1
1
  module RomFactory
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/rom_factory.rb CHANGED
@@ -5,6 +5,7 @@ require "rom_factory/version"
5
5
  require "rom_factory/config"
6
6
  require "rom_factory/builder"
7
7
  require "rom_factory/factory"
8
+ require "rom_factory/struct"
8
9
  require "rom_factory/attributes/callable"
9
10
  require "rom_factory/attributes/regular"
10
11
  require "rom_factory/attributes/sequence"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom_factory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janis Miezitis
@@ -174,6 +174,7 @@ files:
174
174
  - lib/rom_factory/builder.rb
175
175
  - lib/rom_factory/config.rb
176
176
  - lib/rom_factory/factory.rb
177
+ - lib/rom_factory/struct.rb
177
178
  - lib/rom_factory/version.rb
178
179
  - rom_factory.gemspec
179
180
  homepage: https://github.com/janjiss/rom_factory