enum_ext 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +20 -22
- data/lib/enum_ext.rb +8 -0
- data/lib/enum_ext/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c0c895459eb23da1ea81308bd6cead21058ff99
|
4
|
+
data.tar.gz: efb68bd41923b82dcc0a4bfe60251e7aac981fef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e271d917b46919ee2e17b389e639abe15e26e0091432abb9292af9e23621dfbf9be905d34415f88e14d0e504735fe3ea9afa5d5ca3cc219c6dfa497e24c9c7b6
|
7
|
+
data.tar.gz: e05c955ffcd2a83ce290086e4c3d917a42994766aecf66cd36ab68edd752dbbba7a7de0cd79a6e27020c48ffdffee5a36e2b5a073bd42bffdddab47659b3b338
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
# EnumExt
|
2
2
|
|
3
|
-
EnumExt extends rails enum
|
3
|
+
EnumExt extends rails enum with localization/translation and it's helpers, mass-assign on scopes with bang, advanced sets logic over existing enum.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
gem 'enum_ext', '~> 0.
|
10
|
+
gem 'enum_ext', '~> 0.3'
|
11
11
|
```
|
12
12
|
|
13
13
|
And then execute:
|
@@ -19,7 +19,7 @@ Or install it yourself as:
|
|
19
19
|
$ gem install enum_ext
|
20
20
|
|
21
21
|
## Usage
|
22
|
-
To use enum extension extend main model class with EnumExt module, and
|
22
|
+
To use enum extension extend main model class with EnumExt module, and make your own extantion to your enums the way you need:
|
23
23
|
|
24
24
|
class SomeModel
|
25
25
|
extend EnumExt
|
@@ -140,21 +140,23 @@ Defines method enum_name_i shortcut for Model.enum_names[elem.enum_name]
|
|
140
140
|
in_warehouse: [:ready_for_shipment] # this just for superposition example below
|
141
141
|
}
|
142
142
|
```
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
143
|
+
it will generate:
|
144
|
+
```
|
145
|
+
instance:
|
146
|
+
- methods: delivery_set?, in_warehouse?
|
147
|
+
|
148
|
+
class:
|
149
|
+
- named scopes: delivery_set, in_warehouse
|
150
|
+
- parametrized scopes: with_statuses, without_statuses
|
151
|
+
class helpers:
|
152
|
+
- delivery_set_statuses (=[:ready_for_shipment, :on_delivery, :delivered] ), in_warehouse_statuses
|
153
|
+
- delivery_set_statuses_i (= [3,4,5]), in_warehouse_statuses_i (=[3])
|
154
|
+
|
155
|
+
class translation helpers ( started with t_... ):
|
156
|
+
- t_delivery_set_statuses_options (= [['translation or humanization', :ready_for_shipment] ...] ) for select inputs purposes
|
157
|
+
- t_delivery_set_statuses_options_i (= [['translation or humanization', 3] ...]) same as above but with integer as value ( for example to use in Active admin filters )
|
158
|
+
```
|
159
|
+
|
158
160
|
```
|
159
161
|
Console:
|
160
162
|
request.on_delivery!
|
@@ -204,8 +206,6 @@ Defines method enum_name_i shortcut for Model.enum_names[elem.enum_name]
|
|
204
206
|
request1.paid? # >> true
|
205
207
|
request2.paid? # >> true
|
206
208
|
request1.updated_at # >> ~ Time.now
|
207
|
-
defined?(Request::MassAssignEnum) # >> true
|
208
|
-
|
209
209
|
|
210
210
|
order.requests.already_paid.count # >> N
|
211
211
|
order.requests.delivered.count # >> M
|
@@ -214,8 +214,6 @@ Defines method enum_name_i shortcut for Model.enum_names[elem.enum_name]
|
|
214
214
|
order.requests.delivered.count # >> N + M
|
215
215
|
```
|
216
216
|
|
217
|
-
|
218
|
-
|
219
217
|
## Tests
|
220
218
|
rake test
|
221
219
|
|
data/lib/enum_ext.rb
CHANGED
@@ -278,4 +278,12 @@ module EnumExt
|
|
278
278
|
end
|
279
279
|
end
|
280
280
|
|
281
|
+
# human_attribute_name is redefined for automatization like this:
|
282
|
+
# p #{object.class.human_attribute_name( attr_name )}:
|
283
|
+
# p =object.send(attr_name)
|
284
|
+
def human_attribute_name( name, options = {} )
|
285
|
+
name[0..1] == 't_' && column_names.include?(name[2..-1]) ? super( name[2..-1], options ) : super( name, options )
|
286
|
+
end
|
287
|
+
|
288
|
+
|
281
289
|
end
|
data/lib/enum_ext/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enum_ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alekseyl
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
133
|
version: '0'
|
134
134
|
requirements: []
|
135
135
|
rubyforge_project:
|
136
|
-
rubygems_version: 2.
|
136
|
+
rubygems_version: 2.5.1
|
137
137
|
signing_key:
|
138
138
|
specification_version: 4
|
139
139
|
summary: Enum extension, ads enum sets, mass-assign, localization, and some sugar
|