chainy 0.0.3 → 0.0.4

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: a8eba442d12c37415d2c3c3b36a15a5e4f20fe8e
4
- data.tar.gz: 7ecd3dadacee4e90e5e51b63f8cdb81cae7acf88
3
+ metadata.gz: eacaf41235bbe33c6a7409cdc0eabdac45457fe7
4
+ data.tar.gz: cee080a5b426d7dbb94afd476a647bc3b160d272
5
5
  SHA512:
6
- metadata.gz: f2c1d24af66444ca4c3a218f405ef5caa92def8485520ddd1973a598a74068a9d51ceb7f970430a3d8d243e4f1eddc96e80d0f89d09b9afe4b5cb4a9c783ddee
7
- data.tar.gz: 6eac5fb9b57951034ed5d1bb5689136d9de1027961b4d3b26d53a8df7d91ed36e748e3eec914cd711c948c0a0e7d963383e138f333c2479324517eb0923e9995
6
+ metadata.gz: da4bc56e42c4471db6cbcf0dc77e78d22c9d47cf8fec6d15b2583e91d7e771f975685068b1ad64551e6111fa9f1befaedc5fec66b0c971b0a9e8ffaf3c008254
7
+ data.tar.gz: b7a392362157a0a93987da633c388fbcd5203f1ed17c38521611efebfc3157bbecb6663944ebc24c59c50a8385c74a398974c1e8a52a45c5d892761b9b9bb41d
data/lib/chainy/config.rb CHANGED
@@ -1,11 +1,13 @@
1
1
  class Chainy::Config
2
+ DEFAULT_CHAIN_METHOD_PREFIX = 'with'
3
+
2
4
  class << self
3
5
  def configure
4
6
  yield self if block_given?
5
7
  end
6
8
 
7
9
  def prefix
8
- @prefix ||= 'with'
10
+ @prefix ||= DEFAULT_CHAIN_METHOD_PREFIX
9
11
  end
10
12
 
11
13
  def prefix=(prefix)
data/lib/chainy/module.rb CHANGED
@@ -13,11 +13,31 @@ class Module
13
13
  [].tap do |method_names|
14
14
  method_names << symbol
15
15
  method_names.concat args
16
- end.each do |method_name|
17
- new_method_name = "#{prefix}_#{method_name}"
18
- define_method(new_method_name) do |*args|
19
- send "#{method_name}=", *args
20
- self
16
+ end.each do |getter_method|
17
+ instance_variable_name = "@#{getter_method}"
18
+
19
+ if opts[:hash]
20
+ define_method(getter_method) do
21
+ instance_variable_set instance_variable_name, instance_variable_get(instance_variable_name) || {}
22
+ end
23
+ end
24
+
25
+ new_method_name = "#{prefix}_#{getter_method}"
26
+
27
+ if opts[:hash]
28
+
29
+ define_method(new_method_name) do |hash|
30
+ instance_variable_set instance_variable_name, send(getter_method).merge(hash)
31
+ self
32
+ end
33
+
34
+ else
35
+
36
+ define_method(new_method_name) do |*args|
37
+ send "#{getter_method}=", *args
38
+ self
39
+ end
40
+
21
41
  end
22
42
  end
23
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chainy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kacper Walanus