embark-journey 0.0.13 → 0.0.14

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