easy_model 2.1.0 → 2.2.0
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.
- checksums.yaml +5 -13
- data/Gemfile +1 -0
- data/VERSION +1 -1
- data/easy_model.gemspec +5 -5
- data/lib/easy_model/column_for_active_model.rb +6 -2
- data/lib/easy_model/column_for_active_record.rb +6 -2
- data/test/easy_model/ja.yml +8 -0
- data/test/easy_model/test_column_for_active_model.rb +3 -3
- data/test/easy_model/test_column_for_active_record.rb +7 -7
- data/test/easy_model/test_search_form.rb +2 -2
- data/test/helper.rb +1 -0
- metadata +30 -38
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YTZkMDc0NTk4NjA1ZjM2NGRmNGJiODk2ZTZlNDUwNjEzYzYzNTRmYQ==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8bddfb8931b1b9a7f22b5e8c5806a21d04aa77d1
|
4
|
+
data.tar.gz: 5bce9b606406c713d321028442700ff8648a63f5
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NjYxNTNiZDEwYWM5YjcyNjMyODk3OGNjYTc5NWVjNjVjMzQ1ZWNlMmY4M2Y3
|
11
|
-
YWJkNzAyMTJhMjc0Mjk4YzBiMmMwOWRmZTcwZDI2N2VlMjMwNTM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NjBiMDFlNTkwYzg2NDMzZTYzMWVhMzAzNGUyMGIzNmQ4NDAzMWY5MDQ1MTBj
|
14
|
-
NmIyNzM0OTlkZDM4ZDhhOWE5ZWY4MWFmYTkzYjhkNGZlODI3YzFiYjVkMjli
|
15
|
-
YWQzZjlkOTFmYmZjMDIwNTU3NDEwMTg2ZDVjYjZiZDZhMTI4Nzk=
|
6
|
+
metadata.gz: 122b6cf89a442dff48203803821659e57b45502e1df4fa6a8e6199d7b105c4f4212fa927c83ab27bf8ff140758e0e3883ea9110f0c8dcf382daf0ec831fd40e2
|
7
|
+
data.tar.gz: 9ac907994a1d7c4308f9bfb5cf503c251d7d454f5577d6aea08362476a0f43a40b5556f303c27f04ecb8e5316f8e88e83c36dd8a21eb5209533cee971ae85b85
|
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.2.0
|
data/easy_model.gemspec
CHANGED
@@ -2,15 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: easy_model 2.
|
5
|
+
# stub: easy_model 2.2.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "easy_model"
|
9
|
-
s.version = "2.
|
9
|
+
s.version = "2.2.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
12
13
|
s.authors = ["SUZUKI Kei"]
|
13
|
-
s.date = "
|
14
|
+
s.date = "2015-05-12"
|
14
15
|
s.description = " EasyModel provides features of database independent attribute.\n You can define the attribute like ActiveRecord that perform data conversion during assignment.\n \u{30c7}\u{30fc}\u{30bf}\u{30d9}\u{30fc}\u{30b9}\u{306b}\u{95a2}\u{9023}\u{4ed8}\u{304b}\u{306a}\u{3044}\u{5c5e}\u{6027}\u{3092}\u{5b9a}\u{7fa9}\u{3059}\u{308b}\u{6a5f}\u{80fd}\u{3092}\u{63d0}\u{4f9b}\u{3057}\u{307e}\u{3059}.\n \u{4ee3}\u{5165}\u{6642}\u{306b} ActiveRecord \u{3068}\u{540c}\u{69d8}\u{306e}\u{578b}\u{5909}\u{63db}\u{304c}\u{884c}\u{308f}\u{308c}\u{308b}\u{5c5e}\u{6027}\u{3092}\u{5b9a}\u{7fa9}\u{3059}\u{308b}\u{3053}\u{3068}\u{304c}\u{3067}\u{304d}\u{307e}\u{3059}.\n"
|
15
16
|
s.email = "info-techscore@synergy101.jp"
|
16
17
|
s.extra_rdoc_files = [
|
@@ -40,8 +41,7 @@ Gem::Specification.new do |s|
|
|
40
41
|
]
|
41
42
|
s.homepage = "http://github.com/techscore/easy_model"
|
42
43
|
s.licenses = ["BSD"]
|
43
|
-
s.
|
44
|
-
s.rubygems_version = "2.1.11"
|
44
|
+
s.rubygems_version = "2.4.5"
|
45
45
|
s.summary = "EasyModel provides features of database independent attribute. \u{30c7}\u{30fc}\u{30bf}\u{30d9}\u{30fc}\u{30b9}\u{306b}\u{95a2}\u{9023}\u{4ed8}\u{304b}\u{306a}\u{3044}\u{5c5e}\u{6027}\u{3092}\u{5b9a}\u{7fa9}\u{3059}\u{308b}\u{6a5f}\u{80fd}\u{3092}\u{63d0}\u{4f9b}\u{3057}\u{307e}\u{3059}."
|
46
46
|
|
47
47
|
if s.respond_to? :specification_version then
|
@@ -90,16 +90,20 @@ module EasyModel::ColumnForActiveModel::ClassMethods
|
|
90
90
|
# 定義したカラムを表す ActiveRecord::ConnectionAdapters::Column オブジェクト.
|
91
91
|
#
|
92
92
|
def column(name, type, options={})
|
93
|
+
cast_type = "ActiveRecord::Type::#{type.to_s.capitalize}"
|
94
|
+
cast_type = "ActiveRecord::Type::DateTime" if type.to_s == "datetime"
|
95
|
+
cast_type = "ActiveRecord::Type::Time" if type.to_s == "timestamp"
|
96
|
+
|
93
97
|
define_attribute_method(name)
|
94
98
|
(@easy_model_attribute_names ||= []) << name.to_s
|
95
99
|
|
96
|
-
ActiveRecord::ConnectionAdapters::Column.new(name, options[:default], type, true).tap do |column|
|
100
|
+
ActiveRecord::ConnectionAdapters::Column.new(name, options[:default], cast_type.classify.constantize.new, type, true).tap do |column|
|
97
101
|
define_method("#{name}=") do |value|
|
98
102
|
value = nil if column.number? and value.kind_of?(String) and value.blank?
|
99
103
|
return if value == send(name)
|
100
104
|
send("#{name}_will_change!")
|
101
105
|
instance_variable_set("@#{name}_before_type_cast", value)
|
102
|
-
instance_variable_set("@#{name}", column.
|
106
|
+
instance_variable_set("@#{name}", column.cast_type.type_cast_from_user(value))
|
103
107
|
end
|
104
108
|
define_method("#{name}_before_type_cast") do
|
105
109
|
instance_variable_set("@#{name}_before_type_cast", column.default) unless instance_variable_defined?("@#{name}_before_type_cast")
|
@@ -64,14 +64,18 @@ module EasyModel::ColumnForActiveRecord::ClassMethods
|
|
64
64
|
# 定義したカラムを表す ActiveRecord::ConnectionAdapters::Column オブジェクト.
|
65
65
|
#
|
66
66
|
def column(name, type, options={})
|
67
|
+
cast_type = "ActiveRecord::Type::#{type.to_s.capitalize}"
|
68
|
+
cast_type = "ActiveRecord::Type::DateTime" if type.to_s == "datetime"
|
69
|
+
cast_type = "ActiveRecord::Type::Time" if type.to_s == "timestamp"
|
70
|
+
|
67
71
|
(@easy_model_attribute_names ||= []) << name.to_s
|
68
72
|
|
69
|
-
ActiveRecord::ConnectionAdapters::Column.new(name, options[:default], type, true).tap do |column|
|
73
|
+
ActiveRecord::ConnectionAdapters::Column.new(name, options[:default], cast_type.classify.constantize.new, type, true).tap do |column|
|
70
74
|
define_method("#{name}=") do |value|
|
71
75
|
value = nil if column.number? and value.kind_of?(String) and value.blank?
|
72
76
|
return if value == send(name)
|
73
77
|
instance_variable_set("@#{name}_before_type_cast", value)
|
74
|
-
instance_variable_set("@#{name}", column.
|
78
|
+
instance_variable_set("@#{name}", column.cast_type.type_cast_from_user(value))
|
75
79
|
end
|
76
80
|
define_method("#{name}_before_type_cast") do
|
77
81
|
instance_variable_set("@#{name}_before_type_cast", column.default) unless instance_variable_defined?("@#{name}_before_type_cast")
|
data/test/easy_model/ja.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', 'helper')
|
2
|
+
require File.join(Dir::pwd, 'test', 'helper.rb')
|
3
|
+
# require File.join(File.dirname(__FILE__), '..', 'helper')
|
4
4
|
|
5
5
|
class EasyModel::TestColumnForActiveModel < Test::Unit::TestCase
|
6
6
|
|
@@ -82,7 +82,7 @@ class EasyModel::TestColumnForActiveModel < Test::Unit::TestCase
|
|
82
82
|
assert_equal nil, object.age_was
|
83
83
|
assert_equal [nil, 20], object.age_change
|
84
84
|
|
85
|
-
object.
|
85
|
+
object.send(:clear_changes_information)
|
86
86
|
assert_equal false, object.changed?
|
87
87
|
|
88
88
|
object.age = 21
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
|
3
|
-
require File.join(File.dirname(__FILE__), '..', 'helper')
|
2
|
+
require File.join(Dir::pwd, 'test', 'helper.rb')
|
3
|
+
# require File.join(File.dirname(__FILE__), '..', 'helper')
|
4
4
|
|
5
5
|
class EasyModel::TestColumnForActiveRecord < Test::Unit::TestCase
|
6
6
|
|
@@ -72,11 +72,11 @@ class EasyModel::TestColumnForActiveRecord < Test::Unit::TestCase
|
|
72
72
|
|
73
73
|
def test_i18n_scope
|
74
74
|
model = new_model
|
75
|
-
assert_equal :
|
76
|
-
assert_equal '
|
77
|
-
assert_equal '
|
78
|
-
assert_equal '
|
79
|
-
assert_equal '
|
75
|
+
assert_equal :activerecord, model.i18n_scope
|
76
|
+
assert_equal 'ゆーざー', model.model_name.human
|
77
|
+
assert_equal 'なまえ', model.human_attribute_name(:name)
|
78
|
+
assert_equal 'めーるあどれす', model.human_attribute_name(:email)
|
79
|
+
assert_equal 'ねんれい', model.human_attribute_name(:age)
|
80
80
|
end
|
81
81
|
|
82
82
|
def test_persisted?
|
data/test/helper.rb
CHANGED
metadata
CHANGED
@@ -1,98 +1,90 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SUZUKI Kei
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
NC4w
|
19
|
+
version: '4.0'
|
21
20
|
type: :runtime
|
22
21
|
prerelease: false
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
24
23
|
requirements:
|
25
|
-
- - ~>
|
24
|
+
- - "~>"
|
26
25
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
28
|
-
NC4w
|
26
|
+
version: '4.0'
|
29
27
|
- !ruby/object:Gem::Dependency
|
30
28
|
name: activerecord
|
31
29
|
requirement: !ruby/object:Gem::Requirement
|
32
30
|
requirements:
|
33
|
-
- - ~>
|
31
|
+
- - "~>"
|
34
32
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
36
|
-
NC4w
|
33
|
+
version: '4.0'
|
37
34
|
type: :runtime
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
|
-
- - ~>
|
38
|
+
- - "~>"
|
42
39
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
44
|
-
NC4w
|
40
|
+
version: '4.0'
|
45
41
|
- !ruby/object:Gem::Dependency
|
46
42
|
name: rdoc
|
47
43
|
requirement: !ruby/object:Gem::Requirement
|
48
44
|
requirements:
|
49
|
-
- -
|
45
|
+
- - ">="
|
50
46
|
- !ruby/object:Gem::Version
|
51
|
-
version:
|
52
|
-
My4xMg==
|
47
|
+
version: '3.12'
|
53
48
|
type: :development
|
54
49
|
prerelease: false
|
55
50
|
version_requirements: !ruby/object:Gem::Requirement
|
56
51
|
requirements:
|
57
|
-
- -
|
52
|
+
- - ">="
|
58
53
|
- !ruby/object:Gem::Version
|
59
|
-
version:
|
60
|
-
My4xMg==
|
54
|
+
version: '3.12'
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
56
|
name: bundler
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
64
58
|
requirements:
|
65
|
-
- -
|
59
|
+
- - ">="
|
66
60
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
68
|
-
MS4wLjA=
|
61
|
+
version: 1.0.0
|
69
62
|
type: :development
|
70
63
|
prerelease: false
|
71
64
|
version_requirements: !ruby/object:Gem::Requirement
|
72
65
|
requirements:
|
73
|
-
- -
|
66
|
+
- - ">="
|
74
67
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
76
|
-
MS4wLjA=
|
68
|
+
version: 1.0.0
|
77
69
|
- !ruby/object:Gem::Dependency
|
78
70
|
name: jeweler
|
79
71
|
requirement: !ruby/object:Gem::Requirement
|
80
72
|
requirements:
|
81
|
-
- -
|
73
|
+
- - ">="
|
82
74
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
84
|
-
MS44LjQ=
|
75
|
+
version: 1.8.4
|
85
76
|
type: :development
|
86
77
|
prerelease: false
|
87
78
|
version_requirements: !ruby/object:Gem::Requirement
|
88
79
|
requirements:
|
89
|
-
- -
|
80
|
+
- - ">="
|
90
81
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
82
|
+
version: 1.8.4
|
83
|
+
description: |2
|
84
|
+
EasyModel provides features of database independent attribute.
|
85
|
+
You can define the attribute like ActiveRecord that perform data conversion during assignment.
|
86
|
+
データベースに関連付かない属性を定義する機能を提供します.
|
87
|
+
代入時に ActiveRecord と同様の型変換が行われる属性を定義することができます.
|
96
88
|
email: info-techscore@synergy101.jp
|
97
89
|
executables: []
|
98
90
|
extensions: []
|
@@ -129,17 +121,17 @@ require_paths:
|
|
129
121
|
- lib
|
130
122
|
required_ruby_version: !ruby/object:Gem::Requirement
|
131
123
|
requirements:
|
132
|
-
- -
|
124
|
+
- - ">="
|
133
125
|
- !ruby/object:Gem::Version
|
134
126
|
version: '0'
|
135
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
128
|
requirements:
|
137
|
-
- -
|
129
|
+
- - ">="
|
138
130
|
- !ruby/object:Gem::Version
|
139
131
|
version: '0'
|
140
132
|
requirements: []
|
141
133
|
rubyforge_project:
|
142
|
-
rubygems_version: 2.
|
134
|
+
rubygems_version: 2.4.5
|
143
135
|
signing_key:
|
144
136
|
specification_version: 4
|
145
137
|
summary: EasyModel provides features of database independent attribute. データベースに関連付かない属性を定義する機能を提供します.
|