exnum 0.2.0 → 0.3.1
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 +5 -5
- data/.circleci/config.yml +32 -0
- data/README.md +55 -31
- data/exnum.gemspec +7 -6
- data/lib/exnum/active_record/exnum.rb +106 -60
- data/lib/exnum/version.rb +1 -1
- metadata +42 -29
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: a0eb597ee0732dc06f4b3bc40185a72b60e66deef74d5d316375a8d30edc1c91
|
|
4
|
+
data.tar.gz: f7feab5a390467426f4382b878e87dde7da108379474fc4088005407fe256471
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e7d4dd9a76bc8d775247f57dc616cc00f9b2d290d3a61a560306f72eb0f46711cc35ea6d48ec400ed835fcc9879694fd6bca708bbcb4af7aac7443000f89ce45
|
|
7
|
+
data.tar.gz: b52fcad419966bd7ef14101e0984657e1b3949c03e6e6a6e4e15d2718d612c861d7db995226e57fd7899bec79b0a71634a1d7283a75fd98528fa850e6a793ff9
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
version: 2.1
|
|
2
|
+
|
|
3
|
+
orbs:
|
|
4
|
+
# https://circleci.com/developer/orbs/orb/circleci/ruby?version=1.4.0
|
|
5
|
+
ruby: circleci/ruby@1.4.0
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
build:
|
|
9
|
+
docker:
|
|
10
|
+
- image: 'cimg/ruby:3.1.1'
|
|
11
|
+
steps:
|
|
12
|
+
- checkout
|
|
13
|
+
- restore_cache:
|
|
14
|
+
name: Restore bundle cache
|
|
15
|
+
keys:
|
|
16
|
+
- bundle-3.1
|
|
17
|
+
- run:
|
|
18
|
+
name: Bundle Install
|
|
19
|
+
command: |
|
|
20
|
+
bundle config set --local path 'vendor/bundle'
|
|
21
|
+
bundle install --jobs=4 --retry=3
|
|
22
|
+
- save_cache:
|
|
23
|
+
name: Store bundle cache
|
|
24
|
+
key: bundle-3.1
|
|
25
|
+
paths:
|
|
26
|
+
- vendor/bundle
|
|
27
|
+
- ruby/rspec-test
|
|
28
|
+
|
|
29
|
+
workflows:
|
|
30
|
+
build_and_test:
|
|
31
|
+
jobs:
|
|
32
|
+
- build
|
data/README.md
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
# Exnum
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/rb/exnum)
|
|
4
|
-
[](https://codeclimate.com/github/Kta-M/exnum)
|
|
6
|
-
[](https://codeclimate.com/github/Kta-M/exnum/coverage)
|
|
4
|
+
[](https://circleci.com/gh/Kta-M/exnum)
|
|
7
5
|
|
|
8
6
|
Exnum is enum extention for Rails.
|
|
9
|
-
This gem extends enum about i18n and
|
|
7
|
+
This gem extends enum about i18n, associated parameters, and array for select box.
|
|
10
8
|
|
|
11
9
|
## Installation
|
|
12
10
|
|
|
@@ -18,30 +16,51 @@ gem 'exnum'
|
|
|
18
16
|
|
|
19
17
|
And then execute:
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
```
|
|
20
|
+
$ bundle
|
|
21
|
+
```
|
|
22
22
|
|
|
23
23
|
Or install it yourself as:
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
```
|
|
26
|
+
$ gem install exnum
|
|
27
|
+
```
|
|
26
28
|
|
|
27
29
|
## Usage
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
+
```ruby
|
|
31
32
|
class User < ActiveRecord::Base
|
|
32
33
|
# the value of the key "val" defines enum values
|
|
33
34
|
# and the others defines associated parameters
|
|
34
35
|
exnum role: {
|
|
35
|
-
guest: {val: 10, label: :red },
|
|
36
|
-
general: {val: 20, label: :green, permission: false
|
|
37
|
-
admin: {val: 30, label: :blue, permission: true},
|
|
36
|
+
guest: {val: 10, label: :red, selectable: true, },
|
|
37
|
+
general: {val: 20, label: :green, selectable: true, permission: false},
|
|
38
|
+
admin: {val: 30, label: :blue, selectable: false, permission: true},
|
|
38
39
|
}
|
|
39
40
|
end
|
|
41
|
+
```
|
|
40
42
|
|
|
43
|
+
### Assosiated parameter extention
|
|
44
|
+
```ruby
|
|
45
|
+
User.role_labels
|
|
46
|
+
# => {"guest" => :red, "general" => :green, "admin" => :blue}
|
|
47
|
+
User.role_labels{|p| p[:selectable]}
|
|
48
|
+
# => {"guest" => :red, "general" => :green}
|
|
49
|
+
User.role_permissions
|
|
50
|
+
# => {"guest" => nil, "general" => false, "admin" => true}
|
|
41
51
|
```
|
|
42
52
|
|
|
43
|
-
|
|
53
|
+
```ruby
|
|
54
|
+
user = User.new(role: :general)
|
|
55
|
+
user.role_label
|
|
56
|
+
# => :green
|
|
57
|
+
user.role_permission
|
|
58
|
+
# => false
|
|
44
59
|
```
|
|
60
|
+
|
|
61
|
+
### I18n extention
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
45
64
|
ja:
|
|
46
65
|
activerecord:
|
|
47
66
|
enum:
|
|
@@ -50,47 +69,51 @@ ja:
|
|
|
50
69
|
guest: ゲスト
|
|
51
70
|
general: 一般ユーザー
|
|
52
71
|
admin: 管理者
|
|
53
|
-
|
|
54
72
|
```
|
|
55
73
|
|
|
56
|
-
|
|
57
|
-
```
|
|
74
|
+
```ruby
|
|
58
75
|
User.roles_i18n
|
|
59
76
|
# => {"guest" => "ゲスト", "general" => "一般ユーザー", "admin" => "管理者"}
|
|
77
|
+
User.roles_i18n{|p| p[:selectable]}
|
|
78
|
+
# => {"guest" => "ゲスト", "general" => "一般ユーザー"}
|
|
79
|
+
```
|
|
60
80
|
|
|
81
|
+
```ruby
|
|
61
82
|
user = User.new(role: :guest)
|
|
62
83
|
user.role_i18n
|
|
63
84
|
# => "ゲスト"
|
|
64
85
|
```
|
|
65
86
|
|
|
66
|
-
|
|
87
|
+
### Array for select box extention
|
|
88
|
+
```ruby
|
|
89
|
+
User.roles_for_select
|
|
90
|
+
# => [["ゲスト", "guest"], ["一般ユーザー", "general"], ["管理者", "admin"]]
|
|
91
|
+
User.roles_for_select{|p| p[:selectable]}
|
|
92
|
+
# => [["ゲスト", "guest"], ["一般ユーザー", "general"]]
|
|
67
93
|
```
|
|
68
|
-
User.role_labels
|
|
69
|
-
# => {"guest" => :red, "general" => :green, "admin" => :blue}
|
|
70
|
-
User.role_permissions
|
|
71
|
-
# => {"guest" => nil, "general" => false, "admin" => true}
|
|
72
94
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
user.role_permission
|
|
77
|
-
# => false
|
|
95
|
+
You can use it like this:
|
|
96
|
+
```ruby
|
|
97
|
+
<%= f.select :role, User.roles_for_select %>
|
|
78
98
|
```
|
|
79
99
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
Then you can use extention only about i18n.
|
|
84
|
-
```
|
|
100
|
+
### enum
|
|
101
|
+
Of course, you can use methods provided by `enum`.
|
|
102
|
+
```ruby
|
|
85
103
|
class User < ActiveRecord::Base
|
|
86
104
|
exnum role: [:guest, :general, :admin]
|
|
87
105
|
end
|
|
88
106
|
```
|
|
89
|
-
```
|
|
107
|
+
```ruby
|
|
90
108
|
class User < ActiveRecord::Base
|
|
91
109
|
exnum role: {guest: 10, general: 20, admin: 30}
|
|
92
110
|
end
|
|
93
111
|
```
|
|
112
|
+
```ruby
|
|
113
|
+
class User < ActiveRecord::Base
|
|
114
|
+
exnum role: {guest: 10, general: 20, admin: 30}, _prefix: true
|
|
115
|
+
end
|
|
116
|
+
```
|
|
94
117
|
|
|
95
118
|
## Contributing
|
|
96
119
|
|
|
@@ -104,3 +127,4 @@ end
|
|
|
104
127
|
|
|
105
128
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
|
106
129
|
|
|
130
|
+
|
data/exnum.gemspec
CHANGED
|
@@ -19,11 +19,12 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
20
20
|
spec.require_paths = ["lib"]
|
|
21
21
|
|
|
22
|
-
spec.add_dependency 'activerecord'
|
|
23
|
-
spec.add_development_dependency "bundler"
|
|
24
|
-
spec.add_development_dependency "rake"
|
|
25
|
-
spec.add_development_dependency "rspec"
|
|
26
|
-
spec.add_development_dependency "
|
|
22
|
+
spec.add_dependency 'activerecord', "~> 7.0"
|
|
23
|
+
spec.add_development_dependency "bundler"
|
|
24
|
+
spec.add_development_dependency "rake"
|
|
25
|
+
spec.add_development_dependency "rspec"
|
|
26
|
+
spec.add_development_dependency "rspec_junit_formatter"
|
|
27
|
+
spec.add_development_dependency "sqlite3"
|
|
27
28
|
spec.add_development_dependency "pry-rails"
|
|
28
|
-
spec.add_development_dependency "
|
|
29
|
+
spec.add_development_dependency "simplecov"
|
|
29
30
|
end
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
module ActiveRecord
|
|
2
2
|
module Exnum
|
|
3
|
+
|
|
3
4
|
def self.prepended(base)
|
|
4
5
|
base.singleton_class.class_eval { self.prepend(ClassMethods) }
|
|
5
6
|
end
|
|
7
|
+
|
|
6
8
|
module ClassMethods
|
|
7
9
|
def extended(base)
|
|
8
10
|
base.class_attribute(:defined_params, instance_writer: false)
|
|
@@ -19,65 +21,77 @@ module ActiveRecord
|
|
|
19
21
|
#--------------------------------------------------------------------------
|
|
20
22
|
|
|
21
23
|
def exnum(definitions)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
enum_definitions = definitions.each_with_object({}) do |(name, values), ret|
|
|
25
|
+
ret[name] = extract_enums(values)
|
|
26
|
+
end
|
|
27
|
+
enum(**enum_definitions)
|
|
28
|
+
|
|
29
|
+
pram_definitions = definitions.each_with_object({}) do |(name, values), ret|
|
|
30
|
+
next if %i[_prefix _suffix].include?(name)
|
|
31
|
+
|
|
32
|
+
ret[name] = extract_params(values)
|
|
33
|
+
self.send(name.to_s.pluralize).each do |k, v|
|
|
34
|
+
ret[name][k.to_sym] ||= {}
|
|
35
|
+
ret[name][k.to_sym][:val] = v
|
|
28
36
|
end
|
|
29
|
-
ret
|
|
30
37
|
end
|
|
31
38
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
enum_i18n(pram_definitions)
|
|
40
|
+
enum_param(pram_definitions)
|
|
41
|
+
enum_for_select(pram_definitions)
|
|
35
42
|
end
|
|
36
43
|
|
|
37
|
-
|
|
44
|
+
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
38
45
|
|
|
39
46
|
private
|
|
40
|
-
def extract_enums(
|
|
41
|
-
values
|
|
47
|
+
def extract_enums(values)
|
|
48
|
+
return values unless values.kind_of?(Hash)
|
|
49
|
+
|
|
50
|
+
values.each_with_object({}) do |(field, value), ret|
|
|
42
51
|
ret[field.to_sym] = (value.kind_of?(Hash) ? value[:val] : value)
|
|
43
|
-
ret
|
|
44
52
|
end
|
|
45
53
|
end
|
|
46
54
|
|
|
47
|
-
def extract_params(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
ret
|
|
55
|
+
def extract_params(values)
|
|
56
|
+
return {} unless values.kind_of?(Hash)
|
|
57
|
+
|
|
58
|
+
target_values = values.select{|_field, value| value.kind_of?(Hash)}
|
|
59
|
+
target_values.each_with_object({}) do |(field, value), ret|
|
|
60
|
+
ret[field.to_sym] = value
|
|
53
61
|
end
|
|
54
62
|
end
|
|
55
63
|
|
|
56
|
-
|
|
57
|
-
klass = self
|
|
58
|
-
definitions.delete(:_prefix)
|
|
59
|
-
definitions.delete(:_suffix)
|
|
64
|
+
#--------------------------------------------------------------------------
|
|
60
65
|
|
|
66
|
+
def enum_i18n(definitions)
|
|
61
67
|
definitions.each do |name, values|
|
|
68
|
+
enum_i18n_class_method(name, values)
|
|
69
|
+
enum_i18n_instance_method(name)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
62
72
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
73
|
+
# define class method which returns i18n string of each satus
|
|
74
|
+
def enum_i18n_class_method(name, values)
|
|
75
|
+
klass = self
|
|
76
|
+
method_name = "#{name.to_s.pluralize}_i18n"
|
|
77
|
+
detect_enum_conflict!(name, method_name, true)
|
|
78
|
+
klass.singleton_class.send(:define_method, method_name) do |&block|
|
|
79
|
+
i18n_hash = ActiveSupport::HashWithIndifferentAccess.new
|
|
80
|
+
values.each_with_object(i18n_hash) do |(enum_name, value), ret|
|
|
81
|
+
next if block.present? && !block.call(value)
|
|
82
|
+
ret[enum_name] = i18n_string(klass, name, enum_name)
|
|
72
83
|
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
73
86
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
87
|
+
# define instance method which returns current i18n string of the instance
|
|
88
|
+
def enum_i18n_instance_method(name)
|
|
89
|
+
klass = self
|
|
90
|
+
method_name = "#{name}_i18n"
|
|
91
|
+
detect_enum_conflict!(name, method_name, false)
|
|
92
|
+
klass.send(:define_method, method_name) do
|
|
93
|
+
status = self.send(name)
|
|
94
|
+
status.nil? ? nil : klass.send(:i18n_string, klass, name, status)
|
|
81
95
|
end
|
|
82
96
|
end
|
|
83
97
|
|
|
@@ -85,36 +99,68 @@ module ActiveRecord
|
|
|
85
99
|
I18n.t("#{klass.i18n_scope}.enum.#{klass.model_name.i18n_key}.#{name}.#{enum_name}")
|
|
86
100
|
end
|
|
87
101
|
|
|
102
|
+
#--------------------------------------------------------------------------
|
|
103
|
+
|
|
88
104
|
def enum_param(definitions)
|
|
89
105
|
klass = self
|
|
90
|
-
klass.defined_params
|
|
106
|
+
klass.defined_params.merge!(definitions)
|
|
91
107
|
|
|
92
108
|
definitions.each do |name, values|
|
|
93
109
|
param_names = values.values.map(&:keys).flatten.uniq
|
|
94
110
|
param_names.each do |param_name|
|
|
111
|
+
enum_param_class_method(name, values, param_name)
|
|
112
|
+
enum_param_instance_method(name, values, param_name)
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
95
116
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
# define instance methods which returns the parameter's current value of the instance
|
|
108
|
-
method_name = "#{name}_#{param_name}"
|
|
109
|
-
detect_enum_conflict!(name, method_name, false)
|
|
110
|
-
define_method(method_name) do
|
|
111
|
-
status = self.send(name)
|
|
112
|
-
return if status.nil?
|
|
113
|
-
defined_params[name][status.to_sym][param_name]
|
|
114
|
-
end
|
|
117
|
+
# define class methods which returns the parameter's values of each status
|
|
118
|
+
def enum_param_class_method(name, values, param_name)
|
|
119
|
+
klass = self
|
|
120
|
+
method_name = "#{name}_#{param_name.to_s.pluralize}"
|
|
121
|
+
detect_enum_conflict!(name, method_name, true)
|
|
122
|
+
klass.singleton_class.send(:define_method, method_name) do |&block|
|
|
123
|
+
param_hash = ActiveSupport::HashWithIndifferentAccess.new
|
|
124
|
+
values.each_with_object(param_hash) do |(enum_name, params), ret|
|
|
125
|
+
next if block.present? && !block.call(params)
|
|
126
|
+
ret[enum_name] = params[param_name]
|
|
115
127
|
end
|
|
116
128
|
end
|
|
117
129
|
end
|
|
130
|
+
|
|
131
|
+
# define instance methods which returns the parameter's current value of the instance
|
|
132
|
+
def enum_param_instance_method(name, values, param_name)
|
|
133
|
+
method_name = "#{name}_#{param_name}"
|
|
134
|
+
detect_enum_conflict!(name, method_name, false)
|
|
135
|
+
define_method(method_name) do
|
|
136
|
+
status = self.send(name)
|
|
137
|
+
return if status.nil?
|
|
138
|
+
defined_params[name][status.to_sym][param_name]
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
#--------------------------------------------------------------------------
|
|
143
|
+
|
|
144
|
+
def enum_for_select(definitions)
|
|
145
|
+
definitions.each do |name, values|
|
|
146
|
+
param_names = values.values.map(&:keys).flatten.uniq
|
|
147
|
+
param_names.each do |param_name|
|
|
148
|
+
enum_for_select_class_method(name, values, param_name)
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# define class methods which returns the array for select box
|
|
154
|
+
def enum_for_select_class_method(name, values, param_name)
|
|
155
|
+
klass = self
|
|
156
|
+
method_name = "#{name.to_s.pluralize}_for_select"
|
|
157
|
+
detect_enum_conflict!(name, method_name, true)
|
|
158
|
+
klass.singleton_class.send(:define_method, method_name) do |&block|
|
|
159
|
+
i18n_hash = klass.send("#{name.to_s.pluralize}_i18n", &block)
|
|
160
|
+
i18n_hash.to_a.map(&:reverse)
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
118
164
|
end
|
|
119
165
|
end
|
|
120
166
|
|
data/lib/exnum/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,85 +1,99 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: exnum
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kta-M
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-03-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0'
|
|
19
|
+
version: '7.0'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0'
|
|
26
|
+
version: '7.0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: bundler
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - "
|
|
31
|
+
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '0'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- - "
|
|
38
|
+
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rake
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '0'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
|
-
- - "
|
|
52
|
+
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
54
|
+
version: '0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: rspec
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
|
-
- - "
|
|
59
|
+
- - ">="
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
61
|
+
version: '0'
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
|
-
- - "
|
|
66
|
+
- - ">="
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
68
|
+
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: rspec_junit_formatter
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '0'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - ">="
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '0'
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
84
|
name: sqlite3
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
72
86
|
requirements:
|
|
73
|
-
- - "
|
|
87
|
+
- - ">="
|
|
74
88
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
89
|
+
version: '0'
|
|
76
90
|
type: :development
|
|
77
91
|
prerelease: false
|
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
93
|
requirements:
|
|
80
|
-
- - "
|
|
94
|
+
- - ">="
|
|
81
95
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
96
|
+
version: '0'
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
98
|
name: pry-rails
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -95,7 +109,7 @@ dependencies:
|
|
|
95
109
|
- !ruby/object:Gem::Version
|
|
96
110
|
version: '0'
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
112
|
+
name: simplecov
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
100
114
|
requirements:
|
|
101
115
|
- - ">="
|
|
@@ -116,9 +130,9 @@ executables: []
|
|
|
116
130
|
extensions: []
|
|
117
131
|
extra_rdoc_files: []
|
|
118
132
|
files:
|
|
133
|
+
- ".circleci/config.yml"
|
|
119
134
|
- ".gitignore"
|
|
120
135
|
- ".rspec"
|
|
121
|
-
- ".travis.yml"
|
|
122
136
|
- CODE_OF_CONDUCT.md
|
|
123
137
|
- Gemfile
|
|
124
138
|
- LICENSE.txt
|
|
@@ -134,7 +148,7 @@ homepage: https://github.com/Kta-M/exnum
|
|
|
134
148
|
licenses:
|
|
135
149
|
- MIT
|
|
136
150
|
metadata: {}
|
|
137
|
-
post_install_message:
|
|
151
|
+
post_install_message:
|
|
138
152
|
rdoc_options: []
|
|
139
153
|
require_paths:
|
|
140
154
|
- lib
|
|
@@ -149,9 +163,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
149
163
|
- !ruby/object:Gem::Version
|
|
150
164
|
version: '0'
|
|
151
165
|
requirements: []
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
signing_key:
|
|
166
|
+
rubygems_version: 3.3.3
|
|
167
|
+
signing_key:
|
|
155
168
|
specification_version: 4
|
|
156
169
|
summary: Enum extention for Rails
|
|
157
170
|
test_files: []
|