easy_model 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
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
- データベースのテーブルに関連付いているモデルでも column メソッドを利用したい場合は,
64
- EasyModel::Column モジュールを include します.
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.3
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.3"
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-07-30"
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.15"
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
@@ -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
- # 属性値を保持する Hash.
27
+ # 属性名と属性値を保持する Hash.
21
28
  #
22
29
  def initialize(attributes=nil)
23
- (attributes || {}).each do |name, value|
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
@@ -0,0 +1,10 @@
1
+ ja:
2
+ easy_model:
3
+ models:
4
+ user: ユーザ
5
+ attributes:
6
+ user:
7
+ name: 名前
8
+ email: メールアドレス
9
+ age: 年齢
10
+
@@ -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
- model = Class.new(EasyModel::Base)
9
- model.send(:column, :name, :string)
10
- model.send(:column, :email, :string)
11
- model.send(:column, :age, :integer)
12
-
13
- object = model.new(:name => 'taro', :email => 'taro@example.com', :age => 20)
14
- assert_equal 'taro', object.name
15
- assert_equal 'taro@example.com', object.email
16
- assert_equal 20, object.age
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
- model = Class.new(EasyModel::Base)
21
- object = model.new
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.3
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-07-30 00:00:00.000000000 Z
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: &71228770 !ruby/object:Gem::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: *71228770
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: &71228330 !ruby/object:Gem::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: *71228330
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: &71227660 !ruby/object:Gem::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: *71227660
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: &71226630 !ruby/object:Gem::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: *71226630
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: &71225660 !ruby/object:Gem::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: *71225660
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: &71224630 !ruby/object:Gem::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: *71224630
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: -442526499
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.15
157
+ rubygems_version: 1.8.24
127
158
  signing_key:
128
159
  specification_version: 3
129
160
  summary: データベースに依存しないモデルの基本クラスや, ActiveRecord と同じ型変換を行う属性定義メソッドを提供します.