ruby-enum 0.8.0 → 1.0.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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -10
  3. data/Dangerfile +4 -0
  4. data/Gemfile +10 -1
  5. data/Gemfile.lock +143 -33
  6. data/LICENSE.md +1 -1
  7. data/README.md +202 -76
  8. data/RELEASING.md +4 -11
  9. data/Rakefile +7 -0
  10. data/UPGRADING.md +44 -0
  11. data/benchmarks/case.rb +45 -0
  12. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png +0 -0
  13. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
  14. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png +0 -0
  15. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png +0 -0
  16. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
  17. data/coverage/assets/0.12.3/application.css +1 -0
  18. data/coverage/assets/0.12.3/application.js +7 -0
  19. data/coverage/assets/0.12.3/colorbox/border.png +0 -0
  20. data/coverage/assets/0.12.3/colorbox/controls.png +0 -0
  21. data/coverage/assets/0.12.3/colorbox/loading.gif +0 -0
  22. data/coverage/assets/0.12.3/colorbox/loading_background.png +0 -0
  23. data/coverage/assets/0.12.3/favicon_green.png +0 -0
  24. data/coverage/assets/0.12.3/favicon_red.png +0 -0
  25. data/coverage/assets/0.12.3/favicon_yellow.png +0 -0
  26. data/coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  27. data/coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  28. data/coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  29. data/coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  30. data/coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  31. data/coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  32. data/coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  33. data/coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  34. data/coverage/assets/0.12.3/images/ui-icons_222222_256x240.png +0 -0
  35. data/coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png +0 -0
  36. data/coverage/assets/0.12.3/images/ui-icons_454545_256x240.png +0 -0
  37. data/coverage/assets/0.12.3/images/ui-icons_888888_256x240.png +0 -0
  38. data/coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png +0 -0
  39. data/coverage/assets/0.12.3/loading.gif +0 -0
  40. data/coverage/assets/0.12.3/magnify.png +0 -0
  41. data/coverage/index.html +8785 -0
  42. data/lib/ruby-enum/enum/case.rb +84 -0
  43. data/lib/ruby-enum/enum/i18n_mock.rb +19 -0
  44. data/lib/ruby-enum/enum.rb +14 -5
  45. data/lib/ruby-enum/errors/base.rb +3 -3
  46. data/lib/ruby-enum/version.rb +1 -1
  47. data/lib/ruby-enum.rb +15 -3
  48. data/ruby-enum.gemspec +2 -1
  49. data/spec/ruby-enum/enum/case_spec.rb +118 -0
  50. data/spec/ruby-enum/enum_spec.rb +143 -34
  51. data/spec/spec_helper.rb +4 -0
  52. data/spec_i18n/Gemfile +9 -0
  53. data/spec_i18n/Gemfile.lock +35 -0
  54. data/spec_i18n/Rakefile +12 -0
  55. data/spec_i18n/spec/i18n_spec.rb +48 -0
  56. data/spec_i18n/spec/spec_helper.rb +8 -0
  57. metadata +52 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 828a267d2038050652f611d901ef0039355a1cbc73dffb9174751333bfd98a0d
4
- data.tar.gz: 10172c5b07f0eeeacb0c0d8a5902e4bb691003419dcad6f71f93893969410a43
3
+ metadata.gz: aca947b7b06abbc0504549ab9fa43e99be4d3e0dc408a92b8e10efea700d9bf7
4
+ data.tar.gz: 7e57ab06229ac0552b984630493f04dd98a3579b7ca8151c819dc792417d505f
5
5
  SHA512:
6
- metadata.gz: c782b4bc5071e684ec45a00b58ef705b0a46a008d7b67e485ee0881bc7bbe4deca1e5abd6dd86db493b535040db9456a9b848d945bef4a126eed9db26c5ac8fb
7
- data.tar.gz: 1c5df9425c445ab3cfdaca44b29d53437ba0519d59144a9dad00d155a1d586615783b64e2c35bf73ab87a4b9c9df193707b3ae7a31782cc0b699ec98b1151068
6
+ metadata.gz: f626bd0c2c072f17734527253a8ae95e96dc0631779f6d56b398c540a9d63c3b41eb000647d276d81f859ae92f11e5a0a74e9966cf96f1796cad5ef172c42239
7
+ data.tar.gz: 2d58616dc04acf94a9a7e65029fe6422224717bb849cd07513782206ecc543b4d478a7d539b5fa1d434ab3b841430772406cd112438152541242d32a3081e38e
data/CHANGELOG.md CHANGED
@@ -1,42 +1,58 @@
1
- ### 0.8.0 (2020/3/27)
1
+ ### 1.0.0 (2023/01/10)
2
+
3
+ * [#41](https://github.com/dblock/ruby-enum/pull/41): Make i18n dependency optional - [@peterfication](https://github.com/peterfication).
4
+ * [#43](https://github.com/dblock/ruby-enum/pull/43): Add exhaustive case matcher - [@peterfication](https://github.com/peterfication).
5
+ * [#40](https://github.com/dblock/ruby-enum/pull/39): Enable new Rubocop cops and address/allowlist lints - [@petergoldstein](https://github.com/petergoldstein).
6
+ * [#39](https://github.com/dblock/ruby-enum/pull/39): Require Ruby >= 2.7 - [@petergoldstein](https://github.com/petergoldstein).
7
+ * [#38](https://github.com/dblock/ruby-enum/pull/38): Ensure Ruby >= 2.3 - [@ojab](https://github.com/ojab).
8
+
9
+ ### 0.9.0 (2021/01/21)
10
+
11
+ * [#34](https://github.com/dblock/ruby-enum/pull/34): Added support for Ruby 3.0 - [@dblock](https://github.com/dblock).
12
+ * [#29](https://github.com/dblock/ruby-enum/pull/29): Added superclass values when enumerating with `Ruby::Enum#values` - [@gi](https://github.com/gi).
13
+ * [#30](https://github.com/dblock/ruby-enum/pull/30): Default value to key - [@gi](https://github.com/gi).
14
+ * [#34](https://github.com/dblock/ruby-enum/pull/34): Replaced Travis-CI with Github Actions, added Danger PR linter - [@dblock](https://github.com/dblock).
15
+ * [#37](https://github.com/dblock/ruby-enum/pull/37): Added code coverage - [@dblock](https://github.com/dblock).
16
+
17
+ ### 0.8.0 (2020/03/27)
2
18
 
3
19
  * [#22](https://github.com/dblock/ruby-enum/pull/22): Added `Ruby::Enum#each_key` and `Ruby::Enum#each_value` - [@dblock](https://github.com/dblock).
4
20
  * [#22](https://github.com/dblock/ruby-enum/pull/22): Dropped support for Ruby 2.2 - [@dblock](https://github.com/dblock).
5
21
  * [#22](https://github.com/dblock/ruby-enum/pull/22): Upgraded RuboCop to 0.80.1 - [@dblock](https://github.com/dblock).
6
22
 
7
- ### 0.7.2 (2017/3/15)
23
+ ### 0.7.2 (2017/03/15)
8
24
 
9
25
  * [#18](https://github.com/dblock/ruby-enum/pull/18): Added support for non constant definition - [@laertispappas](https://github.com/laertispappas).
10
26
 
11
- ### 0.7.1 (2017/2/23)
27
+ ### 0.7.1 (2017/02/23)
12
28
 
13
29
  * [#16](https://github.com/dblock/ruby-enum/pull/16): Replaced `const_missing` with `const_set` - [@laertispappas](https://github.com/laertispappas).
14
30
 
15
- ### 0.7.0 (2017/2/21)
31
+ ### 0.7.0 (2017/02/21)
16
32
 
17
33
  * [#3](https://github.com/dblock/ruby-enum/pull/13): Added support for subclassing an Enum - [@laertispappas](https://github.com/laertispappas).
18
34
 
19
- ### 0.6.0 (2016/5/12)
35
+ ### 0.6.0 (2016/05/12)
20
36
 
21
37
  * [#12](https://github.com/dblock/ruby-enum/pull/12): A `Ruby::Enum::Errors::DuplicateKeyError` or a `Ruby::Enum::Errors::DuplciateKeyValyeError` will now be raised when duplicate keys / values are defined - [@laertispappas](https://github.com/laertispappas).
22
38
 
23
- ### 0.5.0 (2015/20/11)
39
+ ### 0.5.0 (2015/11/20)
24
40
 
25
41
  * [#8](https://github.com/dblock/ruby-enum/pull/8): Added `Ruby::Enum#key`, `Ruby::Enum#value`, `Ruby::Enum#key?`, and `Ruby::Enum#value?` - [@dmolesUC3](https://github.com/dmolesUC3).
26
42
 
27
- ### 0.4.0 (2014/29/6)
43
+ ### 0.4.0 (2014/06/29)
28
44
 
29
45
  * [#5](https://github.com/dblock/ruby-enum/pull/5): Mixed in `Enumerable` - [@kgann](https://github.com/kgann).
30
46
 
31
- ### 0.3.0 (2014/19/5)
47
+ ### 0.3.0 (2014/05/19)
32
48
 
33
49
  * [#4](https://github.com/dblock/ruby-enum/pull/4): Added `Ruby::Enum#map` - [@ArnaudRinquin](https://github.com/ArnaudRinquin).
34
50
 
35
- ### 0.2.1 (2013/15/5)
51
+ ### 0.2.1 (2013/05/15)
36
52
 
37
53
  * Added `Ruby::Enum#values`, `Ruby::Enum#keys` and `Ruby::Enum#to_h` - [@dblock](https://github.com/dblock).
38
54
  * A `Ruby::Enum::Errors::UninitializedConstantError` will now be raised when referencing an undefined enum - [@dblock](https://github.com/dblock).
39
55
 
40
- ### 0.1.0 (2013/14/5)
56
+ ### 0.1.0 (2013/05/14)
41
57
 
42
58
  * Initial public release, live-coded during [May 2013 NYC.rb](http://code.dblock.org/your-first-ruby-gem) - [@dblock](https://github.com/dblock).
data/Dangerfile ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ changelog.check!
4
+ toc.check!
data/Gemfile CHANGED
@@ -7,6 +7,15 @@ gemspec
7
7
  gem 'rake'
8
8
 
9
9
  group :development, :test do
10
+ gem 'danger'
11
+ gem 'danger-changelog', '0.6.1'
12
+ gem 'danger-toc', '0.2.0'
10
13
  gem 'rspec', '~> 3.0'
11
- gem 'rubocop', '0.80.1'
14
+ gem 'rubocop', '~> 1.0'
15
+ gem 'rubocop-rake'
16
+ gem 'rubocop-rspec'
17
+ end
18
+
19
+ group :test do
20
+ gem 'simplecov', require: false
12
21
  end
data/Gemfile.lock CHANGED
@@ -1,56 +1,166 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-enum (0.8.0)
5
- i18n
4
+ ruby-enum (1.0.0)
6
5
 
7
6
  GEM
8
7
  remote: http://rubygems.org/
9
8
  specs:
10
- ast (2.4.0)
11
- concurrent-ruby (1.1.6)
12
- diff-lcs (1.3)
13
- i18n (1.8.2)
9
+ activesupport (7.1.2)
10
+ base64
11
+ bigdecimal
12
+ concurrent-ruby (~> 1.0, >= 1.0.2)
13
+ connection_pool (>= 2.2.5)
14
+ drb
15
+ i18n (>= 1.6, < 2)
16
+ minitest (>= 5.1)
17
+ mutex_m
18
+ tzinfo (~> 2.0)
19
+ addressable (2.8.6)
20
+ public_suffix (>= 2.0.2, < 6.0)
21
+ ast (2.4.2)
22
+ base64 (0.2.0)
23
+ bigdecimal (3.1.5)
24
+ claide (1.1.0)
25
+ claide-plugins (0.9.2)
26
+ cork
27
+ nap
28
+ open4 (~> 1.3)
29
+ colored2 (3.1.2)
30
+ concurrent-ruby (1.2.2)
31
+ connection_pool (2.4.1)
32
+ cork (0.3.0)
33
+ colored2 (~> 3.1)
34
+ danger (9.4.2)
35
+ claide (~> 1.0)
36
+ claide-plugins (>= 0.9.2)
37
+ colored2 (~> 3.1)
38
+ cork (~> 0.1)
39
+ faraday (>= 0.9.0, < 3.0)
40
+ faraday-http-cache (~> 2.0)
41
+ git (~> 1.13)
42
+ kramdown (~> 2.3)
43
+ kramdown-parser-gfm (~> 1.0)
44
+ no_proxy_fix
45
+ octokit (>= 4.0)
46
+ terminal-table (>= 1, < 4)
47
+ danger-changelog (0.6.1)
48
+ danger-plugin-api (~> 1.0)
49
+ danger-plugin-api (1.0.0)
50
+ danger (> 2.0)
51
+ danger-toc (0.2.0)
52
+ activesupport
53
+ danger-plugin-api (~> 1.0)
54
+ kramdown
55
+ diff-lcs (1.5.0)
56
+ docile (1.4.0)
57
+ drb (2.2.0)
58
+ ruby2_keywords
59
+ faraday (2.8.1)
60
+ base64
61
+ faraday-net_http (>= 2.0, < 3.1)
62
+ ruby2_keywords (>= 0.0.4)
63
+ faraday-http-cache (2.5.0)
64
+ faraday (>= 0.8)
65
+ faraday-net_http (3.0.2)
66
+ git (1.19.0)
67
+ addressable (~> 2.8)
68
+ rchardet (~> 1.8)
69
+ i18n (1.14.1)
14
70
  concurrent-ruby (~> 1.0)
15
- jaro_winkler (1.5.4)
16
- parallel (1.19.1)
17
- parser (2.7.0.5)
18
- ast (~> 2.4.0)
19
- rainbow (3.0.0)
20
- rake (13.0.1)
21
- rexml (3.2.4)
22
- rspec (3.9.0)
23
- rspec-core (~> 3.9.0)
24
- rspec-expectations (~> 3.9.0)
25
- rspec-mocks (~> 3.9.0)
26
- rspec-core (3.9.1)
27
- rspec-support (~> 3.9.1)
28
- rspec-expectations (3.9.1)
71
+ json (2.7.1)
72
+ kramdown (2.4.0)
73
+ rexml
74
+ kramdown-parser-gfm (1.1.0)
75
+ kramdown (~> 2.0)
76
+ language_server-protocol (3.17.0.3)
77
+ minitest (5.20.0)
78
+ mutex_m (0.2.0)
79
+ nap (1.1.0)
80
+ no_proxy_fix (0.1.2)
81
+ octokit (8.0.0)
82
+ faraday (>= 1, < 3)
83
+ sawyer (~> 0.9)
84
+ open4 (1.3.4)
85
+ parallel (1.24.0)
86
+ parser (3.2.2.4)
87
+ ast (~> 2.4.1)
88
+ racc
89
+ public_suffix (5.0.4)
90
+ racc (1.7.3)
91
+ rainbow (3.1.1)
92
+ rake (13.1.0)
93
+ rchardet (1.8.0)
94
+ regexp_parser (2.8.3)
95
+ rexml (3.2.6)
96
+ rspec (3.12.0)
97
+ rspec-core (~> 3.12.0)
98
+ rspec-expectations (~> 3.12.0)
99
+ rspec-mocks (~> 3.12.0)
100
+ rspec-core (3.12.2)
101
+ rspec-support (~> 3.12.0)
102
+ rspec-expectations (3.12.3)
29
103
  diff-lcs (>= 1.2.0, < 2.0)
30
- rspec-support (~> 3.9.0)
31
- rspec-mocks (3.9.1)
104
+ rspec-support (~> 3.12.0)
105
+ rspec-mocks (3.12.6)
32
106
  diff-lcs (>= 1.2.0, < 2.0)
33
- rspec-support (~> 3.9.0)
34
- rspec-support (3.9.2)
35
- rubocop (0.80.1)
36
- jaro_winkler (~> 1.5.1)
107
+ rspec-support (~> 3.12.0)
108
+ rspec-support (3.12.1)
109
+ rubocop (1.59.0)
110
+ json (~> 2.3)
111
+ language_server-protocol (>= 3.17.0)
37
112
  parallel (~> 1.10)
38
- parser (>= 2.7.0.1)
113
+ parser (>= 3.2.2.4)
39
114
  rainbow (>= 2.2.2, < 4.0)
40
- rexml
115
+ regexp_parser (>= 1.8, < 3.0)
116
+ rexml (>= 3.2.5, < 4.0)
117
+ rubocop-ast (>= 1.30.0, < 2.0)
41
118
  ruby-progressbar (~> 1.7)
42
- unicode-display_width (>= 1.4.0, < 1.7)
43
- ruby-progressbar (1.10.1)
44
- unicode-display_width (1.6.1)
119
+ unicode-display_width (>= 2.4.0, < 3.0)
120
+ rubocop-ast (1.30.0)
121
+ parser (>= 3.2.1.0)
122
+ rubocop-capybara (2.20.0)
123
+ rubocop (~> 1.41)
124
+ rubocop-factory_bot (2.25.0)
125
+ rubocop (~> 1.33)
126
+ rubocop-rake (0.6.0)
127
+ rubocop (~> 1.0)
128
+ rubocop-rspec (2.26.0)
129
+ rubocop (~> 1.40)
130
+ rubocop-capybara (~> 2.17)
131
+ rubocop-factory_bot (~> 2.22)
132
+ ruby-progressbar (1.13.0)
133
+ ruby2_keywords (0.0.5)
134
+ sawyer (0.9.2)
135
+ addressable (>= 2.3.5)
136
+ faraday (>= 0.17.3, < 3)
137
+ simplecov (0.22.0)
138
+ docile (~> 1.1)
139
+ simplecov-html (~> 0.11)
140
+ simplecov_json_formatter (~> 0.1)
141
+ simplecov-html (0.12.3)
142
+ simplecov_json_formatter (0.1.4)
143
+ terminal-table (3.0.2)
144
+ unicode-display_width (>= 1.1.1, < 3)
145
+ tzinfo (2.0.6)
146
+ concurrent-ruby (~> 1.0)
147
+ unicode-display_width (2.5.0)
45
148
 
46
149
  PLATFORMS
150
+ arm64-darwin-21
47
151
  ruby
48
152
 
49
153
  DEPENDENCIES
154
+ danger
155
+ danger-changelog (= 0.6.1)
156
+ danger-toc (= 0.2.0)
50
157
  rake
51
158
  rspec (~> 3.0)
52
- rubocop (= 0.80.1)
159
+ rubocop (~> 1.0)
160
+ rubocop-rake
161
+ rubocop-rspec
53
162
  ruby-enum!
163
+ simplecov
54
164
 
55
165
  BUNDLED WITH
56
- 2.1.2
166
+ 2.5.1
data/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2013-2020 Daniel Doubrovkine.
3
+ Copyright (c) 2013-2021 Daniel Doubrovkine.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining
6
6
  a copy of this software and associated documentation files (the