const_enum 1.0.3 → 1.0.4
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/README.rdoc +15 -15
- data/VERSION +1 -1
- data/const_enum.gemspec +3 -3
- data/lib/const_enum/active_record.rb +11 -10
- metadata +67 -22
data/README.rdoc
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
= const_enum
|
2
2
|
|
3
|
-
ActiveRecordの定数クラス、定数名アクセサ、NamedScope、定数値判定メソッド等を簡単なDSL
|
4
|
-
|
3
|
+
ActiveRecordの定数クラス、定数名アクセサ、NamedScope、定数値判定メソッド等を簡単なDSLで作成するためのライブラリ。
|
4
|
+
ActiveRecord3.xに対応しています。
|
5
5
|
|
6
6
|
== インストール
|
7
7
|
|
8
|
-
Gemfile
|
8
|
+
Gemfileに以下の行を追加して、bundle installコマンドを実行してください。
|
9
9
|
gem 'const_enum'
|
10
10
|
あるいは、以下のコマンドでインストールしてください。
|
11
11
|
gem install const_enum
|
@@ -14,12 +14,13 @@ Gemfileに以下行を追加して、bundle installコマンドを実行して
|
|
14
14
|
== 設定
|
15
15
|
|
16
16
|
=== 定数のラベル定義ファイルを作成
|
17
|
-
# config/
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
17
|
+
# config/locales/labels_ja.yml
|
18
|
+
ja:
|
19
|
+
labels:
|
20
|
+
user:
|
21
|
+
status:
|
22
|
+
disable: "無効"
|
23
|
+
enable: "有効"
|
23
24
|
|
24
25
|
=== constメソッドのブロック内で定数を定義
|
25
26
|
class User < ActiveRecord::Base
|
@@ -67,7 +68,7 @@ validates :inclusionで利用することができる。
|
|
67
68
|
ENABLE 1
|
68
69
|
DISABLE 0
|
69
70
|
end
|
70
|
-
validates :status, :inclusion => STATUS
|
71
|
+
validates :status, :inclusion => {:in => STATUS}
|
71
72
|
end
|
72
73
|
|
73
74
|
=== Viewでの利用
|
@@ -191,7 +192,7 @@ collection_selectの際に表示したいラベル名を複数パターン用意
|
|
191
192
|
end
|
192
193
|
# I18nを使ってみる。
|
193
194
|
def label2
|
194
|
-
I18n.t(key.to_s.downcase, :scope=> '
|
195
|
+
I18n.t(key.to_s.downcase, :scope=> 'labels.user.status_label2')
|
195
196
|
end
|
196
197
|
end
|
197
198
|
end
|
@@ -205,11 +206,10 @@ collection_selectの際に表示したいラベル名を複数パターン用意
|
|
205
206
|
|
206
207
|
== その他
|
207
208
|
|
208
|
-
=== I18n
|
209
|
+
=== デフォルトでI18nを無効にする
|
209
210
|
|
210
211
|
ConstEnum::ActiveRecord.i18nにfalseを設定すると、
|
211
|
-
const
|
212
|
-
constメソッドのi18nオプションと同様
|
212
|
+
constメソッドのi18nオプションの初期値をfalseにすることができます。
|
213
213
|
|
214
214
|
# config/initializers/const_enum.rb
|
215
215
|
ConstEnum::ActiveRecord.i18n = false
|
@@ -233,4 +233,4 @@ ConstEnum::ActiveRecord.label_suffixを設定することで、
|
|
233
233
|
|
234
234
|
== Copyright
|
235
235
|
|
236
|
-
Copyright (c) 2012
|
236
|
+
Copyright (c) 2012 Synergy Marketing, Inc. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.4
|
data/const_enum.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "const_enum"
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["yuki teraoka"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2013-04-23"
|
13
13
|
s.description = "define ActiveRecord constants with DSL.and more!"
|
14
14
|
s.email = "info@techscore.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -40,7 +40,7 @@ Gem::Specification.new do |s|
|
|
40
40
|
s.homepage = "http://github.com/techscore/const_enum"
|
41
41
|
s.licenses = ["BSD"]
|
42
42
|
s.require_paths = ["lib"]
|
43
|
-
s.rubygems_version = "1.8.
|
43
|
+
s.rubygems_version = "1.8.25"
|
44
44
|
s.summary = "define ActiveRecord constants with DSL."
|
45
45
|
|
46
46
|
if s.respond_to? :specification_version then
|
@@ -18,18 +18,19 @@ module ConstEnum
|
|
18
18
|
# :scope named_scopeを定義します。default: true
|
19
19
|
# :predicate 属性値の検証メソッドを定義します。default: true
|
20
20
|
# :prefix scope, predicate を作成する際のprefixを指定します。default: "#{mod_name.downcase}_"
|
21
|
-
#
|
21
|
+
# :i18n ラベル名にi18nを利用しない
|
22
|
+
# extensions: ブロック内でメソッド定義を行うことで、定数オブジェクトに対してメソッドを定義することが出来ます。
|
22
23
|
# = exapmle
|
23
24
|
#
|
24
|
-
#
|
25
|
-
#
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
#
|
25
|
+
# class Hoge < ActiveRecord::Base
|
26
|
+
# const :STATUS do
|
27
|
+
# ENABLE 1, '有効'
|
28
|
+
# DISABLE 0, '無効'
|
29
|
+
# def code
|
30
|
+
# '%05d'%value
|
31
|
+
# end
|
30
32
|
# end
|
31
33
|
# end
|
32
|
-
# end
|
33
34
|
#
|
34
35
|
# Hoge::STATUS::ENABLE # 1
|
35
36
|
# Hoge::STATUS.ENABLE.value # 1
|
@@ -58,8 +59,8 @@ module ConstEnum
|
|
58
59
|
include ConstEnum::WithI18n
|
59
60
|
class_eval(&block)
|
60
61
|
end
|
61
|
-
clazz.i18n_options[:key] = [clazz.i18n_options[:key], self.name.underscore, attr].join('.')
|
62
62
|
clazz.i18n_options.merge!(ConstEnum::ActiveRecord.i18n) if Hash === ConstEnum::ActiveRecord.i18n
|
63
|
+
clazz.i18n_options[:key] = [clazz.i18n_options[:key], self.name.underscore, attr].join('.')
|
63
64
|
clazz.i18n_options.merge!(options[:i18n]) if Hash === options[:i18n]
|
64
65
|
else
|
65
66
|
clazz = const_enum(&block)
|
@@ -108,4 +109,4 @@ end
|
|
108
109
|
|
109
110
|
ActiveSupport.on_load(:active_record) do
|
110
111
|
::ActiveRecord::Base.send :extend, ConstEnum::ActiveRecord::ClassMethods
|
111
|
-
end
|
112
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: const_enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
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:
|
12
|
+
date: 2013-04-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.0.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rspec
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 2.8.0
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.8.0
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rdoc
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '3.12'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.12'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: bundler
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: 1.0.0
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.0.0
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: jeweler
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: 1.8.3
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.8.3
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: simplecov
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: '0'
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: activerecord
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: 3.0.0
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 3.0.0
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: sqlite3-ruby
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: '0'
|
99
134
|
type: :development
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: database_cleaner
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ! '>='
|
@@ -109,7 +149,12 @@ dependencies:
|
|
109
149
|
version: '0'
|
110
150
|
type: :development
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
113
158
|
description: define ActiveRecord constants with DSL.and more!
|
114
159
|
email: info@techscore.com
|
115
160
|
executables: []
|
@@ -152,7 +197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
197
|
version: '0'
|
153
198
|
segments:
|
154
199
|
- 0
|
155
|
-
hash:
|
200
|
+
hash: 77164813152644403
|
156
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
202
|
none: false
|
158
203
|
requirements:
|
@@ -161,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
206
|
version: '0'
|
162
207
|
requirements: []
|
163
208
|
rubyforge_project:
|
164
|
-
rubygems_version: 1.8.
|
209
|
+
rubygems_version: 1.8.25
|
165
210
|
signing_key:
|
166
211
|
specification_version: 3
|
167
212
|
summary: define ActiveRecord constants with DSL.
|