rom_factory 0.2.0 → 0.2.1

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: 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