ruby-enum 0.8.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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