enumerate_it 0.7.11 → 0.7.12
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.
- data/Gemfile.lock +1 -1
- data/README.rdoc +6 -2
- data/lib/enumerate_it.rb +9 -1
- data/lib/enumerate_it/version.rb +1 -1
- data/lib/generators/USAGE +15 -0
- data/lib/generators/enumerate_it_generator.rb +41 -0
- data/lib/generators/templates/enumerate_it.rb +3 -0
- data/lib/generators/templates/locale.yml +6 -0
- metadata +13 -9
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -239,14 +239,18 @@ You can also translate specific values:
|
|
239
239
|
|
240
240
|
* Add the 'enumerate_it' gem as a dependency in your environment.rb (Rails 2.3.x) or Gemfile (if you're using Bundler)
|
241
241
|
|
242
|
-
An interesting approach to use it in Rails apps is to create an app/
|
242
|
+
An interesting approach to use it in Rails apps is to create an app/enumerations folder and add it to your autoload path in config/application.rb:
|
243
243
|
|
244
244
|
module YourApp
|
245
245
|
class Application < Rails::Application
|
246
|
-
config.autoload_paths << "#{Rails.root}/app/
|
246
|
+
config.autoload_paths << "#{Rails.root}/app/enumerations"
|
247
247
|
end
|
248
248
|
end
|
249
249
|
|
250
|
+
There is also a Rails Generator that you can use to generate enumerations and their locale files. Take a look at how to use it running
|
251
|
+
|
252
|
+
rails generate enumerate_it --help
|
253
|
+
|
250
254
|
== Ruby 1.9
|
251
255
|
|
252
256
|
EnumerateIt is fully compatible with Ruby 1.9.1 and 1.9.2 (all tests pass)
|
data/lib/enumerate_it.rb
CHANGED
@@ -68,7 +68,15 @@
|
|
68
68
|
#
|
69
69
|
# You can retrive a list with values for a group of enumeration constants
|
70
70
|
#
|
71
|
-
# RelationshipStatus.
|
71
|
+
# RelationshipStatus.values_for %w(MARRIED SINGLE) # [2, 1]
|
72
|
+
#
|
73
|
+
# You can retrieve the value for a specific enumeration constant:
|
74
|
+
#
|
75
|
+
# RelationshipStatus.value_for("MARRIED") # 2
|
76
|
+
#
|
77
|
+
# You can retrieve the symbol used to declare a specific enumeration value:
|
78
|
+
#
|
79
|
+
# RelationshipStatus.key_for(RelationshioStatus::MARRIED) # :married
|
72
80
|
#
|
73
81
|
# - You can manipulate the hash used to create the enumeration:
|
74
82
|
#
|
data/lib/enumerate_it/version.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
Description:
|
2
|
+
Creates an EnumerateIt class an its locale file
|
3
|
+
|
4
|
+
Example:
|
5
|
+
rails g enumerate_it CivilStatus single married divorced widower concubinage separated stable
|
6
|
+
|
7
|
+
This will create:
|
8
|
+
app/enumerations/civil_status.rb with `associate_values :single, :married, :divorced, :widower, :concubinage, :separated, :stable`
|
9
|
+
config/locales/civil_status.yml
|
10
|
+
|
11
|
+
rails g enumerate_it CivilStatus single:1 married:2 divorced:3 widower:4
|
12
|
+
|
13
|
+
This will create:
|
14
|
+
app/enumerations/civil_status.rb with `associate_values :single => 1, :married => 2, :divorced => 2, :widower => 4`
|
15
|
+
config/locales/civil_status.yml
|
@@ -0,0 +1,41 @@
|
|
1
|
+
class EnumerateItGenerator < Rails::Generators::NamedBase
|
2
|
+
source_root File.expand_path('../templates', __FILE__)
|
3
|
+
|
4
|
+
argument :attributes, :type => 'array', :default => []
|
5
|
+
|
6
|
+
class_option :singular, :type => 'string', :desc => 'Singular name for i18n'
|
7
|
+
|
8
|
+
class_option :lang, :type => 'string', :desc => 'Lang to use in i18n', :default => 'en'
|
9
|
+
|
10
|
+
def create_locale
|
11
|
+
template "locale.yml", File.join('config/locales', "#{singular_name}.yml")
|
12
|
+
end
|
13
|
+
|
14
|
+
def create_enumerate_it
|
15
|
+
template "enumerate_it.rb", File.join('app/enumerations', "#{singular_name}.rb")
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
|
20
|
+
def default_lang
|
21
|
+
options[:lang]
|
22
|
+
end
|
23
|
+
|
24
|
+
def singular
|
25
|
+
singular_name
|
26
|
+
end
|
27
|
+
|
28
|
+
def locale_fields
|
29
|
+
attributes.map(&:name)
|
30
|
+
end
|
31
|
+
|
32
|
+
def fields
|
33
|
+
if attributes.first.type == :string
|
34
|
+
attributes.map(&:name)
|
35
|
+
else
|
36
|
+
attributes.map do |attribute|
|
37
|
+
[attribute.name, attribute.type]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enumerate_it
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.12
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &2164309620 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.3.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2164309620
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &2164309020 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.5.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2164309020
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activerecord
|
38
|
-
requirement: &
|
38
|
+
requirement: &2164308360 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: 3.0.5
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2164308360
|
47
47
|
description: Have a legacy database and need some enumerations in your models to match
|
48
48
|
those stupid '4 rows/2 columns' tables with foreign keys and stop doing joins just
|
49
49
|
to fetch a simple description? Or maybe use some integers instead of strings as
|
@@ -64,6 +64,10 @@ files:
|
|
64
64
|
- enumerate_it.gemspec
|
65
65
|
- lib/enumerate_it.rb
|
66
66
|
- lib/enumerate_it/version.rb
|
67
|
+
- lib/generators/USAGE
|
68
|
+
- lib/generators/enumerate_it_generator.rb
|
69
|
+
- lib/generators/templates/enumerate_it.rb
|
70
|
+
- lib/generators/templates/locale.yml
|
67
71
|
- spec/enumerate_it_spec.rb
|
68
72
|
- spec/i18n/en.yml
|
69
73
|
- spec/i18n/pt.yml
|
@@ -89,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
93
|
version: '0'
|
90
94
|
requirements: []
|
91
95
|
rubyforge_project:
|
92
|
-
rubygems_version: 1.8.
|
96
|
+
rubygems_version: 1.8.15
|
93
97
|
signing_key:
|
94
98
|
specification_version: 3
|
95
99
|
summary: Ruby Enumerations
|