embark-journey 0.0.12 → 0.0.13

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: 8ff4c2db85aaf7d550ca956451148647cf657051
4
- data.tar.gz: 9d11c870f8dd88da7507b7da115ae6f8a98171ea
3
+ metadata.gz: 2ad3f26b1c980139030a43b554030ac7d43f8246
4
+ data.tar.gz: c5aa132975c69b278b67151707e267ab21906a9f
5
5
  SHA512:
6
- metadata.gz: 7125ff7e6868d2eff5f93ef135115d2b0b5db53ea476dcb603b24642a706774a10ad208511d0d79b480519975146a849abeaf073a85d89c7a629213a7ac04717
7
- data.tar.gz: 70904a5745c17fcffe74d9520607830885faf526685142ff30b2016237df22a38c571628321c7053d5dd1b23f3555feed8b9732a1d2871fedeb1d73c9f983975
6
+ metadata.gz: 7f08907a7804af244357048bb9cfef6d70f444759a2590ffb149204c34a3f158551d301a6bda4de0f447f66c7d69f049e784715aa75653389db387d664360902
7
+ data.tar.gz: 8688a15c4e143a35f7ed7d2da34ff05687c08696cfe81625f611fce52e849d281ecd7e5052c8aadd5c50d75b78e8fc4311c2f2d96ef103d8528791fb8de15db8
data/CHANGELOG.md CHANGED
@@ -1,9 +1,15 @@
1
- v0.0.9
2
- - Rescues from ActiveResource::ResourceNotFound when association_id is set but object doesn't exist
3
- - Fixes embeds for associations with names different from their class
1
+ v0.0.13
2
+ - Adds enum_set
3
+
4
+ v0.0.12
5
+ - Fixes some associated attribute vanishing
6
+
7
+ v0.0.11
8
+ - Adds opt-out for embeds via finder opts e.g. `Klass.all(embed: false)`
4
9
 
5
10
  v0.0.10
6
11
  - Adds Journey::Resource.count
7
12
 
8
- v0.0.11
9
- - Adds opt-out for embeds via finder opts e.g. `Klass.all(embed: false)`
13
+ v0.0.9
14
+ - Rescues from ActiveResource::ResourceNotFound when association_id is set but object doesn't exist
15
+ - Fixes embeds for associations with names different from their class
@@ -21,6 +21,7 @@ end
21
21
  require 'journey/resource/api'
22
22
  require 'journey/resource/attribute_loading'
23
23
  require 'journey/resource/enums'
24
+ require 'journey/resource/enum_sets'
24
25
  require 'journey/resource/queries'
25
26
  require 'journey/resource/search'
26
27
  require 'journey/resource/embed'
@@ -30,6 +31,7 @@ class Journey::Resource
30
31
  include API
31
32
  include Queries
32
33
  include Enums
34
+ include EnumSets
33
35
  include AttributeLoading
34
36
  include Search
35
37
  include Embed
@@ -0,0 +1,17 @@
1
+ require 'active_support/concern'
2
+
3
+ module Journey::Resource::EnumSets
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ def self.enum_set(attr, collection=[])
8
+ collection_const_name = attr.to_s.pluralize.upcase.to_sym
9
+ const_set collection_const_name, collection.freeze
10
+ define_method "#{attr}_values" do
11
+ self.class.const_get(collection_const_name)
12
+ end
13
+ end
14
+
15
+ end
16
+
17
+ end
@@ -2,7 +2,7 @@ module Journey
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 12
5
+ TINY = 13
6
6
  PRE = nil
7
7
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
8
8
  end
@@ -55,6 +55,45 @@ describe Journey::Resource do
55
55
  end
56
56
  end
57
57
 
58
+
59
+ describe '::EnumSets' do
60
+ let(:klass) do
61
+ Class.new(Journey::Resource) do
62
+ self.element_name = 'fault'
63
+ end
64
+ end
65
+
66
+ describe '.enum_set' do
67
+ let(:asset_types) { %w[ABM ATM] }
68
+
69
+ before do
70
+ klass.enum_set :asset_type, asset_types
71
+ end
72
+
73
+ it 'stores the collection' do
74
+ expect(klass::ASSET_TYPES).to eq(asset_types)
75
+ expect(klass.new.asset_type_values).to eq(asset_types)
76
+ end
77
+
78
+ it 'gets and sets enumerated attributes' do
79
+ r = klass.create(name: 'X')
80
+ expect(r).to be_persisted
81
+ r.asset_type = ['ATM']
82
+ r.save
83
+ r = klass.find(r.id)
84
+ expect(r.asset_type).to eq(['ATM'])
85
+ end
86
+
87
+ it 'remembers enum values' do
88
+ r = klass.create(name: 'X', asset_type: ['ATM', 'ABM'])
89
+ expect(r).to be_persisted
90
+ r = klass.find(r.id)
91
+ expect(r.asset_type).to eq ['ATM', 'ABM']
92
+ end
93
+
94
+ end
95
+ end
96
+
58
97
  describe '::Queries' do
59
98
  describe '.where' do
60
99
 
@@ -181,4 +220,5 @@ describe Journey::Resource do
181
220
  expect(count).to eq(0)
182
221
  end
183
222
  end
223
+
184
224
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embark-journey
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Davey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-04 00:00:00.000000000 Z
11
+ date: 2014-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_attr
@@ -151,6 +151,7 @@ files:
151
151
  - lib/journey/resource/attribute_loading.rb
152
152
  - lib/journey/resource/count.rb
153
153
  - lib/journey/resource/embed.rb
154
+ - lib/journey/resource/enum_sets.rb
154
155
  - lib/journey/resource/enums.rb
155
156
  - lib/journey/resource/queries.rb
156
157
  - lib/journey/resource/search.rb