entity_rb 0.1.1 → 0.1.2

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