embark-journey 0.0.13 → 0.0.14

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: 2ad3f26b1c980139030a43b554030ac7d43f8246
4
- data.tar.gz: c5aa132975c69b278b67151707e267ab21906a9f
3
+ metadata.gz: b4e7a47883c9d0a23ab06dd8690f8a2ad9cf9811
4
+ data.tar.gz: 550ccd3b424608792f87daa3b7277a828a443005
5
5
  SHA512:
6
- metadata.gz: 7f08907a7804af244357048bb9cfef6d70f444759a2590ffb149204c34a3f158551d301a6bda4de0f447f66c7d69f049e784715aa75653389db387d664360902
7
- data.tar.gz: 8688a15c4e143a35f7ed7d2da34ff05687c08696cfe81625f611fce52e849d281ecd7e5052c8aadd5c50d75b78e8fc4311c2f2d96ef103d8528791fb8de15db8
6
+ metadata.gz: 40df328dcace9a9d751fd69e01062cc295586be55a1c1efd2a6d30f4c4d27cfa3c4cec44820cb89b685ab7051c1a62e0354e53324de9930462e1fb146e93ad33
7
+ data.tar.gz: 4abe2a0b4861a465a841309eba0c073886a8b38af9b3fcccf28befb845bc009848d98a325c9e8cbe8efb6c8b2675b3ef54cd8c25f3deaa3d51b87722f5d0fc6a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ v0.0.14
2
+ - some sugar around enum_sets
3
+
1
4
  v0.0.13
2
5
  - Adds enum_set
3
6
 
@@ -10,6 +10,20 @@ module Journey::Resource::EnumSets
10
10
  define_method "#{attr}_values" do
11
11
  self.class.const_get(collection_const_name)
12
12
  end
13
+
14
+ define_method attr do
15
+ value = attributes[attr.to_s].presence
16
+ value.presence || []
17
+ end
18
+
19
+ define_method "add_#{attr}" do |value|
20
+ new_value = value.presence
21
+ if send("#{attr}_values").include? new_value
22
+ (attributes[attr.to_s] ||= []) << new_value
23
+ else
24
+ raise "Invalid enum '#{new_value}' for '#{attr}'"
25
+ end
26
+ end
13
27
  end
14
28
 
15
29
  end
@@ -2,7 +2,7 @@ module Journey
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 13
5
+ TINY = 14
6
6
  PRE = nil
7
7
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
8
8
  end
@@ -86,11 +86,31 @@ describe Journey::Resource do
86
86
 
87
87
  it 'remembers enum values' do
88
88
  r = klass.create(name: 'X', asset_type: ['ATM', 'ABM'])
89
- expect(r).to be_persisted
90
89
  r = klass.find(r.id)
91
90
  expect(r.asset_type).to eq ['ATM', 'ABM']
92
91
  end
93
92
 
93
+ it 'defaults to empty array' do
94
+ r = klass.create(name: 'X', asset_type: nil)
95
+ r = klass.find(r.id)
96
+ expect(r.asset_type).to eq []
97
+ end
98
+
99
+ it 'safely adds members' do
100
+ r = klass.create(name: 'X', asset_type: nil)
101
+ r = klass.find(r.id)
102
+ r.add_asset_type 'ATM'
103
+ expect(r.asset_type).to eq ['ATM']
104
+ r.add_asset_type 'ABM'
105
+ expect(r.asset_type).to eq ['ATM', 'ABM']
106
+ end
107
+
108
+ it 'raises an error when trying to add unrecognized values' do
109
+ r = klass.create(name: 'X', asset_type: nil)
110
+ r = klass.find(r.id)
111
+ expect{ r.add_asset_type 'AXM' }.to raise_error
112
+ end
113
+
94
114
  end
95
115
  end
96
116
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embark-journey
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Davey