entity_rb 0.1.1 → 0.1.2

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: ec533ea6b4d05e089556b5907f4aa520371e4d82
4
- data.tar.gz: 0eb195f2c53c5780694289c529bf132a0a587527
3
+ metadata.gz: 7ebea5a65c8d28504b1a8e4b424600db3bb36d6a
4
+ data.tar.gz: 2dcf3e55e983daa2c7e245033dcd18b0ae9e6fe9
5
5
  SHA512:
6
- metadata.gz: f897bab77f8ee4a7c8b282ad4dc5c917b03c55abfe67db2f7457b47031a11b487002306be58e1d3930928d9c0ef0be33baf78ff3d237c64d70a094bfac75ed85
7
- data.tar.gz: 424551ccf13c235ae7f47cb186e7acaa12c72ad353983d89afc0c08b190fd4c217cca040b4878fe919b2d84618989e8c317248023c39944a0533c70cd8111812
6
+ metadata.gz: 8a3bba0c0b57cec97fac92a94f4433b222dd5a21ff0dca772005114b3f9de4351b5f887419306f162e7aab5b2ace5b31bf0c8925fd969c752603d7d9e0707b0d
7
+ data.tar.gz: 7d2aac4837fd70fae36ca52dabb3f7ccd868fe3b10ca021a3e7772951911b25423c138ce8a6b366fb27e08e52e4e9b4c5b73ffcdcac3796cc46e1772300a5382
@@ -57,10 +57,19 @@ module Entity
57
57
  else
58
58
  fields.push key.to_sym unless fields.include?(key.to_sym)
59
59
 
60
- attr_accessor key.to_sym
60
+ attr_reader key.to_sym
61
+ define_writer(key)
61
62
  end
62
63
  end
63
64
 
65
+ def self.define_writer(key)
66
+ define_method "#{key}=", ->(value){
67
+ key = __method__[0..-2]
68
+ attributes[key.to_sym] = value
69
+ self.instance_variable_set("@#{key}".to_sym, value)
70
+ }
71
+ end
72
+
64
73
  def set_field(key, value)
65
74
  key = key.to_sym
66
75
 
@@ -1,3 +1,3 @@
1
1
  module Entity
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -45,6 +45,18 @@ describe Entity::Base do
45
45
  it 'defines an attribute writer for it' do
46
46
  expect(subject).to respond_to(:test_field=)
47
47
  end
48
+
49
+ it 'writer updates variable' do
50
+ subject.test_field = 1
51
+
52
+ expect(subject.test_field).to eq 1
53
+ end
54
+
55
+ it 'writer updates attributes' do
56
+ subject.test_field = 1
57
+
58
+ expect(subject.attributes[:test_field]).to eq 1
59
+ end
48
60
  end
49
61
 
50
62
  context 'and is a String' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: entity_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Caio Torres e Paulo Patto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-10 00:00:00.000000000 Z
11
+ date: 2016-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -106,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  version: '0'
107
107
  requirements: []
108
108
  rubyforge_project:
109
- rubygems_version: 2.4.5.1
109
+ rubygems_version: 2.5.1
110
110
  signing_key:
111
111
  specification_version: 4
112
112
  summary: An Entity implementation to store all business logic from the (so called)