ruby-enum 0.8.0 → 0.9.0

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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -10
  3. data/Dangerfile +4 -0
  4. data/Gemfile +7 -0
  5. data/Gemfile.lock +89 -9
  6. data/LICENSE.md +1 -1
  7. data/README.md +143 -76
  8. data/RELEASING.md +4 -11
  9. data/UPGRADING.md +44 -0
  10. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png +0 -0
  11. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
  12. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png +0 -0
  13. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png +0 -0
  14. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
  15. data/coverage/assets/0.12.3/application.css +1 -0
  16. data/coverage/assets/0.12.3/application.js +7 -0
  17. data/coverage/assets/0.12.3/colorbox/border.png +0 -0
  18. data/coverage/assets/0.12.3/colorbox/controls.png +0 -0
  19. data/coverage/assets/0.12.3/colorbox/loading.gif +0 -0
  20. data/coverage/assets/0.12.3/colorbox/loading_background.png +0 -0
  21. data/coverage/assets/0.12.3/favicon_green.png +0 -0
  22. data/coverage/assets/0.12.3/favicon_red.png +0 -0
  23. data/coverage/assets/0.12.3/favicon_yellow.png +0 -0
  24. data/coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  25. data/coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  26. data/coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  27. data/coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  28. data/coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  29. data/coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  30. data/coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  31. data/coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  32. data/coverage/assets/0.12.3/images/ui-icons_222222_256x240.png +0 -0
  33. data/coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png +0 -0
  34. data/coverage/assets/0.12.3/images/ui-icons_454545_256x240.png +0 -0
  35. data/coverage/assets/0.12.3/images/ui-icons_888888_256x240.png +0 -0
  36. data/coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png +0 -0
  37. data/coverage/assets/0.12.3/loading.gif +0 -0
  38. data/coverage/assets/0.12.3/magnify.png +0 -0
  39. data/coverage/index.html +3841 -0
  40. data/lib/ruby-enum/enum.rb +8 -2
  41. data/lib/ruby-enum/errors/base.rb +1 -1
  42. data/lib/ruby-enum/version.rb +1 -1
  43. data/pkg/ruby-enum-0.8.0.gem +0 -0
  44. data/spec/ruby-enum/enum_spec.rb +37 -0
  45. data/spec/spec_helper.rb +4 -0
  46. metadata +39 -6
@@ -22,7 +22,7 @@ module Ruby
22
22
  # === Parameters
23
23
  # [key] Enumerator key.
24
24
  # [value] Enumerator value.
25
- def define(key, value)
25
+ def define(key, value = key)
26
26
  @_enum_hash ||= {}
27
27
  @_enums_by_value ||= {}
28
28
 
@@ -118,7 +118,13 @@ module Ruby
118
118
 
119
119
  # Returns all enum values.
120
120
  def values
121
- @_enum_hash.values.map(&:value)
121
+ result = @_enum_hash.values.map(&:value)
122
+
123
+ if superclass < Ruby::Enum
124
+ superclass.values + result
125
+ else
126
+ result
127
+ end
122
128
  end
123
129
 
124
130
  # Iterate over all enumerated values.
@@ -39,7 +39,7 @@ module Ruby
39
39
  #
40
40
  # Returns a localized error message string.
41
41
  def translate(key, options)
42
- ::I18n.translate("#{BASE_KEY}.#{key}", { locale: :en }.merge(options)).strip
42
+ ::I18n.translate("#{BASE_KEY}.#{key}", **{ locale: :en }.merge(options)).strip
43
43
  end
44
44
 
45
45
  # Create the problem.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ruby
4
4
  module Enum
5
- VERSION = '0.8.0'
5
+ VERSION = '0.9.0'
6
6
  end
7
7
  end
Binary file
@@ -187,6 +187,35 @@ describe Ruby::Enum do
187
187
  expect(subject::ORANGE).to eq 'orange'
188
188
  expect(subject::PINK).to eq 'pink'
189
189
  end
190
+
191
+ describe '#values' do
192
+ subject { SecondSubclass.values }
193
+
194
+ it 'contains the values from all of the parent classes' do
195
+ expect(subject).to eq(%w[red green orange pink])
196
+ end
197
+ end
198
+ end
199
+
200
+ describe '#values' do
201
+ subject { FirstSubclass.values }
202
+
203
+ it 'contains the values from the parent class' do
204
+ expect(subject).to eq(%w[red green orange])
205
+ end
206
+ end
207
+ end
208
+
209
+ describe 'default value' do
210
+ class Default
211
+ include Ruby::Enum
212
+ define :KEY
213
+ end
214
+
215
+ subject { Default::KEY }
216
+
217
+ it 'equals the key' do
218
+ expect(subject).to eq(:KEY)
190
219
  end
191
220
  end
192
221
 
@@ -195,17 +224,25 @@ describe Ruby::Enum do
195
224
  include Ruby::Enum
196
225
  define :created, 'Created'
197
226
  define :published, 'Published'
227
+ define :undefined
198
228
  end
199
229
  subject { States }
200
230
  it 'behaves like an enum' do
201
231
  expect(subject.created).to eq 'Created'
202
232
  expect(subject.published).to eq 'Published'
233
+ expect(subject.undefined).to eq :undefined
203
234
 
204
235
  expect(subject.key?(:created)).to be true
205
236
  expect(subject.key('Created')).to eq :created
206
237
 
207
238
  expect(subject.value?('Created')).to be true
208
239
  expect(subject.value(:created)).to eq 'Created'
240
+
241
+ expect(subject.key?(:undefined)).to be true
242
+ expect(subject.key(:undefined)).to eq :undefined
243
+
244
+ expect(subject.value?(:undefined)).to be true
245
+ expect(subject.value(:undefined)).to eq :undefined
209
246
  end
210
247
  end
211
248
  end
@@ -3,6 +3,10 @@
3
3
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
4
 
5
5
  require 'rubygems'
6
+
7
+ require 'simplecov'
8
+ SimpleCov.start
9
+
6
10
  require 'rspec'
7
11
  require 'ruby-enum'
8
12
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Doubrovkine
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-27 00:00:00.000000000 Z
11
+ date: 2021-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- description:
27
+ description:
28
28
  email: dblock@dblock.org
29
29
  executables: []
30
30
  extensions: []
@@ -32,12 +32,44 @@ extra_rdoc_files: []
32
32
  files:
33
33
  - CHANGELOG.md
34
34
  - CONTRIBUTING.md
35
+ - Dangerfile
35
36
  - Gemfile
36
37
  - Gemfile.lock
37
38
  - LICENSE.md
38
39
  - README.md
39
40
  - RELEASING.md
40
41
  - Rakefile
42
+ - UPGRADING.md
43
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png
44
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png
45
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png
46
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png
47
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png
48
+ - coverage/assets/0.12.3/application.css
49
+ - coverage/assets/0.12.3/application.js
50
+ - coverage/assets/0.12.3/colorbox/border.png
51
+ - coverage/assets/0.12.3/colorbox/controls.png
52
+ - coverage/assets/0.12.3/colorbox/loading.gif
53
+ - coverage/assets/0.12.3/colorbox/loading_background.png
54
+ - coverage/assets/0.12.3/favicon_green.png
55
+ - coverage/assets/0.12.3/favicon_red.png
56
+ - coverage/assets/0.12.3/favicon_yellow.png
57
+ - coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png
58
+ - coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png
59
+ - coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png
60
+ - coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png
61
+ - coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png
62
+ - coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png
63
+ - coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png
64
+ - coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png
65
+ - coverage/assets/0.12.3/images/ui-icons_222222_256x240.png
66
+ - coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png
67
+ - coverage/assets/0.12.3/images/ui-icons_454545_256x240.png
68
+ - coverage/assets/0.12.3/images/ui-icons_888888_256x240.png
69
+ - coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png
70
+ - coverage/assets/0.12.3/loading.gif
71
+ - coverage/assets/0.12.3/magnify.png
72
+ - coverage/index.html
41
73
  - lib/config/locales/en.yml
42
74
  - lib/ruby-enum.rb
43
75
  - lib/ruby-enum/enum.rb
@@ -47,6 +79,7 @@ files:
47
79
  - lib/ruby-enum/errors/uninitialized_constant_error.rb
48
80
  - lib/ruby-enum/version.rb
49
81
  - lib/ruby_enum.rb
82
+ - pkg/ruby-enum-0.8.0.gem
50
83
  - ruby-enum.gemspec
51
84
  - spec/ruby-enum/enum_spec.rb
52
85
  - spec/ruby-enum/version_spec.rb
@@ -55,7 +88,7 @@ homepage: http://github.com/dblock/ruby-enum
55
88
  licenses:
56
89
  - MIT
57
90
  metadata: {}
58
- post_install_message:
91
+ post_install_message:
59
92
  rdoc_options: []
60
93
  require_paths:
61
94
  - lib
@@ -71,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
104
  version: 1.3.6
72
105
  requirements: []
73
106
  rubygems_version: 3.0.3
74
- signing_key:
107
+ signing_key:
75
108
  specification_version: 4
76
109
  summary: Enum-like behavior for Ruby.
77
110
  test_files: []