acts_as_enum 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +5 -1
- data/README.rdoc +5 -13
- data/VERSION +1 -1
- data/lib/acts_as_enum.rb +16 -13
- metadata +5 -7
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
@@ -4,17 +4,15 @@
|
|
4
4
|
|
5
5
|
如:枚举数组常量,每个元素的常量和布尔方法,属性的名字,Named scope方法
|
6
6
|
|
7
|
-
Support rails 3
|
8
|
-
|
9
7
|
|
10
8
|
== Usage
|
11
9
|
|
12
10
|
class User < ActiveRecord::Base
|
13
|
-
acts_as_enum :status, :
|
11
|
+
acts_as_enum :status, :in => [ ['disable', 0, '冻结'], ['enable', 1, '激活'] ]
|
14
12
|
end
|
15
13
|
|
16
14
|
Also can usage alias enum_attr
|
17
|
-
enum_attr :status, :
|
15
|
+
enum_attr :status, :in => [ ['disable', 0, '冻结'], ['enable', 1, '激活'] ]
|
18
16
|
|
19
17
|
|
20
18
|
Will generate bellow:
|
@@ -29,7 +27,7 @@ Support rails 3
|
|
29
27
|
|
30
28
|
|
31
29
|
If with option prefix is true:
|
32
|
-
acts_as_enum :status, :
|
30
|
+
acts_as_enum :status, :in => [ ['disable', 0, '冻结'], ['enable', 1, '激活'] ], :prefix => true
|
33
31
|
|
34
32
|
Will generate bellow:
|
35
33
|
|
@@ -38,15 +36,9 @@ Support rails 3
|
|
38
36
|
|
39
37
|
== Install
|
40
38
|
|
41
|
-
git clone git://github.com/
|
42
|
-
|
43
|
-
rails 2
|
44
|
-
./script/plugin install git://github.com/wenke/acts_as_enum.git
|
45
|
-
|
46
|
-
rails 3
|
47
|
-
rails plugin install git://github.com/wenke/acts_as_enum.git
|
39
|
+
git clone git://github.com/liangwenke/acts_as_enum.git
|
48
40
|
|
49
41
|
|
50
42
|
== Note
|
51
43
|
|
52
|
-
Copyright (c) 2010
|
44
|
+
Copyright (c) 2010 liangwenke.com@gmail.com, released under the MIT license
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/acts_as_enum.rb
CHANGED
@@ -1,25 +1,29 @@
|
|
1
1
|
# EnumAttr# == Example
|
2
|
-
#
|
2
|
+
#
|
3
|
+
# acts_as_enum(attr, options)
|
4
|
+
# attr is model attribute
|
5
|
+
# options incldue :in, :prefix
|
6
|
+
#
|
3
7
|
# class User < ActiveRecord::Base
|
4
|
-
# acts_as_enum :status, :
|
8
|
+
# acts_as_enum :status, :in => [ ['disable', 0, '冻结'], ['enable', 1, '激活'] ]
|
5
9
|
# end
|
6
|
-
#
|
10
|
+
#
|
7
11
|
# Also can usage alias enum_attr
|
8
|
-
# enum_attr :status, :
|
12
|
+
# enum_attr :status, :in => [ ['disable', 0, '冻结'], ['enable', 1, '激活'] ]
|
9
13
|
#
|
10
14
|
# Will generate bellow:
|
11
15
|
#
|
12
16
|
# Constants: User::STATUSES(return hash { 0 => "冻结", 1 => "激活" }), User::DISABLE, User::ENABLE
|
13
17
|
#
|
14
18
|
# Named scopes: User.enable, User.disable
|
15
|
-
#
|
19
|
+
#
|
16
20
|
# Class methods: User.status_options => [["冻结", 0], ["激活", 1]]
|
17
|
-
#
|
21
|
+
#
|
18
22
|
# Instance methods: user.status_name, user.enable?, user.disable?
|
19
23
|
#
|
20
24
|
#
|
21
25
|
# If with option prefix is true:
|
22
|
-
# acts_as_enum :status, :
|
26
|
+
# acts_as_enum :status, :in => [ ['disable', 0, '冻结'], ['enable', 1, '激活'] ], :prefix => true
|
23
27
|
#
|
24
28
|
# Will generate bellow:
|
25
29
|
# User::STATUS_DISABLE, User::STATUS_ENABLE, User.status_enable, User.status_disable, user.status_enable?, user.status_disable?
|
@@ -30,14 +34,14 @@ module ActsAsEnum
|
|
30
34
|
end
|
31
35
|
|
32
36
|
module ClassMethods
|
33
|
-
def acts_as_enum(attr, opts = { :
|
37
|
+
def acts_as_enum(attr, opts = { :in => [], :prefix => false })
|
34
38
|
attr = attr.to_s
|
35
39
|
plural_upcase_attr = attr.pluralize.upcase
|
36
|
-
enum = opts[:
|
40
|
+
enum = opts[:in]
|
37
41
|
|
38
42
|
rails "Can not load Rails" unless defined?(Rails)
|
39
|
-
rails "Options
|
40
|
-
rails "Options
|
43
|
+
rails "Options in can not be empty" if enum.blank?
|
44
|
+
rails "Options in must be an array object" unless enum.is_a?(Array)
|
41
45
|
|
42
46
|
# validates_inclusion_of attr, :in => enum.collect { |arr| arr[1] }, :allow_blank => true
|
43
47
|
|
@@ -74,9 +78,8 @@ module ActsAsEnum
|
|
74
78
|
})
|
75
79
|
end
|
76
80
|
|
77
|
-
|
81
|
+
alias enum_attr acts_as_enum
|
78
82
|
end
|
79
|
-
|
80
83
|
end
|
81
84
|
|
82
85
|
ActiveRecord::Base.send(:include, ActsAsEnum)
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: acts_as_enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- LiangWenKe
|
@@ -10,12 +10,11 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
14
|
-
default_executable:
|
13
|
+
date: 2011-06-01 00:00:00 Z
|
15
14
|
dependencies: []
|
16
15
|
|
17
16
|
description: "\xE4\xB8\xBB\xE8\xA6\x81\xE5\xBA\x94\xE7\x94\xA8\xE4\xBA\x8E\xE6\x9C\x89\xE6\x9E\x9A\xE4\xB8\xBE\xE7\xB1\xBB\xE5\x9E\x8B\xE5\xB1\x9E\xE6\x80\xA7\xE7\x9A\x84Model\xEF\xBC\x8C\xE8\xBF\x99\xE4\xB8\xAA\xE6\x8F\x92\xE4\xBB\xB6\xE4\xBC\x9A\xE5\xB8\xAE\xE6\x88\x91\xE4\xBB\xAC\xE7\x94\x9F\xE6\x88\x90\xE4\xB8\x80\xE4\xBA\x9B\xE5\xB8\xB8\xE7\x94\xA8\xE5\x88\xB0\xE7\x9A\x84\xE6\x96\xB9\xE6\xB3\x95\xE3\x80\x82"
|
18
|
-
email:
|
17
|
+
email: liangwenke.com@gmail.com
|
19
18
|
executables: []
|
20
19
|
|
21
20
|
extensions: []
|
@@ -31,8 +30,7 @@ files:
|
|
31
30
|
- README.rdoc
|
32
31
|
- VERSION
|
33
32
|
- init.rb
|
34
|
-
|
35
|
-
homepage: http://github.com/wenke/acts_as_enum
|
33
|
+
homepage: http://github.com/liangwenke/acts_as_enum
|
36
34
|
licenses: []
|
37
35
|
|
38
36
|
post_install_message:
|
@@ -55,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
53
|
requirements: []
|
56
54
|
|
57
55
|
rubyforge_project: acts_as_enum
|
58
|
-
rubygems_version: 1.
|
56
|
+
rubygems_version: 1.8.5
|
59
57
|
signing_key:
|
60
58
|
specification_version: 3
|
61
59
|
summary: Enum Attribute for Rails ActiveRecord
|