enum_ext 0.3.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 +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
|