easy_model 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 +27 -4
- data/VERSION +1 -1
- data/easy_model.gemspec +4 -3
- data/lib/easy_model/base.rb +31 -2
- data/test/easy_model/ja.yml +10 -0
- data/test/easy_model/test_base.rb +33 -12
- metadata +47 -16
data/README.rdoc
CHANGED
@@ -21,8 +21,8 @@ EasyModel::Base はデータベースに関連付かないモデルの基本ク
|
|
21
21
|
|
22
22
|
end
|
23
23
|
|
24
|
-
属性を定義する場合は, 以下のように attr_accessor ではなく column
|
25
|
-
column
|
24
|
+
属性を定義する場合は, 以下のように attr_accessor ではなく column メソッドを使用します.
|
25
|
+
column メソッドを使用すると, 属性の型とデフォルト値を指定することができます.
|
26
26
|
|
27
27
|
#
|
28
28
|
# ログインフォーム.
|
@@ -60,8 +60,8 @@ column メソッドで定義した属性は, 代入時に ActiveRecord と同様
|
|
60
60
|
login_form.remember # => false
|
61
61
|
login_form.remember_before_type_cast # => 'false'
|
62
62
|
|
63
|
-
|
64
|
-
EasyModel::
|
63
|
+
EasyModel::Column モジュールを include することで,
|
64
|
+
EasyModel::Base を継承しないモデルでも column メソッドを使用することができます.
|
65
65
|
|
66
66
|
class User < ActiveRecord::Base
|
67
67
|
|
@@ -71,7 +71,30 @@ EasyModel::Column モジュールを include します.
|
|
71
71
|
|
72
72
|
end
|
73
73
|
|
74
|
+
== 国際化
|
74
75
|
|
76
|
+
国際化は I18n で行われます.
|
77
|
+
デフォルトでは '<locale>.easy_model' 以下がルックアップされます.
|
78
|
+
|
79
|
+
ja:
|
80
|
+
easy_model:
|
81
|
+
models:
|
82
|
+
user_search_form: 会員検索フォーム
|
83
|
+
attributes:
|
84
|
+
user:
|
85
|
+
name: 会員名
|
86
|
+
status: ステータス
|
87
|
+
|
88
|
+
EasyModel::Base.i18n_scope を上書きすることで, ルックアップされるキーを変更することができます.
|
89
|
+
例えば, ActiveRecord と同じキーを参照させたい場合は, 以下のように上書きします.
|
90
|
+
|
91
|
+
class UserSearchForm < EasyModel::Base
|
92
|
+
|
93
|
+
def self.i18n_scope
|
94
|
+
:activerecord
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
75
98
|
|
76
99
|
== 検索フォーム
|
77
100
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.4
|
data/easy_model.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "easy_model"
|
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 = ["SUZUKI Kei"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-09-10"
|
13
13
|
s.description = "\u{30c7}\u{30fc}\u{30bf}\u{30d9}\u{30fc}\u{30b9}\u{306b}\u{4f9d}\u{5b58}\u{3057}\u{306a}\u{3044}\u{30e2}\u{30c7}\u{30eb}\u{306e}\u{57fa}\u{672c}\u{30af}\u{30e9}\u{30b9}\u{3084}, ActiveRecord \u{3068}\u{540c}\u{3058}\u{578b}\u{5909}\u{63db}\u{3092}\u{884c}\u{3046}\u{5c5e}\u{6027}\u{5b9a}\u{7fa9}\u{30e1}\u{30bd}\u{30c3}\u{30c9}\u{3092}\u{63d0}\u{4f9b}\u{3057}\u{307e}\u{3059}."
|
14
14
|
s.email = "info-techscore@synergy101.jp"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
"lib/easy_model/base.rb",
|
28
28
|
"lib/easy_model/column.rb",
|
29
29
|
"lib/easy_model/search_form.rb",
|
30
|
+
"test/easy_model/ja.yml",
|
30
31
|
"test/easy_model/test_base.rb",
|
31
32
|
"test/easy_model/test_column.rb",
|
32
33
|
"test/easy_model/test_search_form.rb",
|
@@ -35,7 +36,7 @@ Gem::Specification.new do |s|
|
|
35
36
|
s.homepage = "http://github.com/techscore/easy_model"
|
36
37
|
s.licenses = ["BSD"]
|
37
38
|
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = "1.8.
|
39
|
+
s.rubygems_version = "1.8.24"
|
39
40
|
s.summary = "\u{30c7}\u{30fc}\u{30bf}\u{30d9}\u{30fc}\u{30b9}\u{306b}\u{4f9d}\u{5b58}\u{3057}\u{306a}\u{3044}\u{30e2}\u{30c7}\u{30eb}\u{306e}\u{57fa}\u{672c}\u{30af}\u{30e9}\u{30b9}\u{3084}, ActiveRecord \u{3068}\u{540c}\u{3058}\u{578b}\u{5909}\u{63db}\u{3092}\u{884c}\u{3046}\u{5c5e}\u{6027}\u{5b9a}\u{7fa9}\u{30e1}\u{30bd}\u{30c3}\u{30c9}\u{3092}\u{63d0}\u{4f9b}\u{3057}\u{307e}\u{3059}."
|
40
41
|
|
41
42
|
if s.respond_to? :specification_version then
|
data/lib/easy_model/base.rb
CHANGED
@@ -12,15 +12,44 @@ class EasyModel::Base
|
|
12
12
|
include ActiveModel::Validations
|
13
13
|
include EasyModel::Column
|
14
14
|
|
15
|
+
#
|
16
|
+
# ロケールファイルからルックアップするときのキー.
|
17
|
+
#
|
18
|
+
def self.i18n_scope
|
19
|
+
:easy_model
|
20
|
+
end
|
21
|
+
|
15
22
|
#
|
16
23
|
# 指定された属性値で初期化する.
|
17
24
|
#
|
18
25
|
# ==== 引数
|
19
26
|
# attributes::
|
20
|
-
#
|
27
|
+
# 属性名と属性値を保持する Hash.
|
21
28
|
#
|
22
29
|
def initialize(attributes=nil)
|
23
|
-
(attributes
|
30
|
+
assign_attributes(attributes)
|
31
|
+
end
|
32
|
+
|
33
|
+
#
|
34
|
+
# 属性を一括代入する.
|
35
|
+
#
|
36
|
+
# ==== 引数
|
37
|
+
# new_attributes::
|
38
|
+
# 属性名と属性値を保持する Hash.
|
39
|
+
#
|
40
|
+
def attributes=(new_attributes)
|
41
|
+
assign_attributes(new_attributes)
|
42
|
+
end
|
43
|
+
|
44
|
+
#
|
45
|
+
# 属性を一括代入する.
|
46
|
+
#
|
47
|
+
# ==== 引数
|
48
|
+
# new_attributes::
|
49
|
+
# 属性名と属性値を保持する Hash.
|
50
|
+
#
|
51
|
+
def assign_attributes(new_attributes)
|
52
|
+
(new_attributes || {}).each do |name, value|
|
24
53
|
send("#{name}=", value)
|
25
54
|
end
|
26
55
|
end
|
@@ -2,24 +2,45 @@
|
|
2
2
|
|
3
3
|
require File.join(File.dirname(__FILE__), '..', 'helper')
|
4
4
|
|
5
|
+
class User < EasyModel::Base
|
6
|
+
column :name, :string
|
7
|
+
column :email, :string
|
8
|
+
column :age, :integer
|
9
|
+
end
|
10
|
+
|
5
11
|
class EasyModel::TestBase < Test::Unit::TestCase
|
6
12
|
|
13
|
+
def setup
|
14
|
+
I18n.load_path = [File.join(File.dirname(__FILE__), 'ja.yml')]
|
15
|
+
I18n.default_locale = :ja
|
16
|
+
end
|
17
|
+
|
7
18
|
def test_initialize
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
19
|
+
user = User.new(:name => 'taro', :email => 'taro@example.com', :age => 20)
|
20
|
+
assert_equal 'taro', user.name
|
21
|
+
assert_equal 'taro@example.com', user.email
|
22
|
+
assert_equal 20, user.age
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_attributes=
|
26
|
+
user = User.new
|
27
|
+
user.attributes = {:name => 'taro', :email => 'taro@example.com', :age => 20}
|
28
|
+
assert_equal 'taro', user.name
|
29
|
+
assert_equal 'taro@example.com', user.email
|
30
|
+
assert_equal 20, user.age
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_i18n_scope
|
34
|
+
assert_equal :easy_model, User.i18n_scope
|
35
|
+
assert_equal 'ユーザ', User.model_name.human
|
36
|
+
assert_equal '名前', User.human_attribute_name(:name)
|
37
|
+
assert_equal 'メールアドレス', User.human_attribute_name(:email)
|
38
|
+
assert_equal '年齢', User.human_attribute_name(:age)
|
17
39
|
end
|
18
40
|
|
19
41
|
def test_persisted?
|
20
|
-
|
21
|
-
|
22
|
-
assert_equal false, object.persisted?
|
42
|
+
user = User.new
|
43
|
+
assert_equal false, user.persisted?
|
23
44
|
end
|
24
45
|
|
25
46
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_model
|
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: 2012-
|
12
|
+
date: 2012-09-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
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: activerecord
|
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: 3.0.0
|
33
38
|
type: :runtime
|
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: 3.0.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.4
|
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.4
|
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,7 +101,12 @@ 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
|
description: データベースに依存しないモデルの基本クラスや, ActiveRecord と同じ型変換を行う属性定義メソッドを提供します.
|
81
111
|
email: info-techscore@synergy101.jp
|
82
112
|
executables: []
|
@@ -95,6 +125,7 @@ files:
|
|
95
125
|
- lib/easy_model/base.rb
|
96
126
|
- lib/easy_model/column.rb
|
97
127
|
- lib/easy_model/search_form.rb
|
128
|
+
- test/easy_model/ja.yml
|
98
129
|
- test/easy_model/test_base.rb
|
99
130
|
- test/easy_model/test_column.rb
|
100
131
|
- test/easy_model/test_search_form.rb
|
@@ -114,7 +145,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
114
145
|
version: '0'
|
115
146
|
segments:
|
116
147
|
- 0
|
117
|
-
hash: -
|
148
|
+
hash: -208701485
|
118
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
150
|
none: false
|
120
151
|
requirements:
|
@@ -123,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
154
|
version: '0'
|
124
155
|
requirements: []
|
125
156
|
rubyforge_project:
|
126
|
-
rubygems_version: 1.8.
|
157
|
+
rubygems_version: 1.8.24
|
127
158
|
signing_key:
|
128
159
|
specification_version: 3
|
129
160
|
summary: データベースに依存しないモデルの基本クラスや, ActiveRecord と同じ型変換を行う属性定義メソッドを提供します.
|