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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NjM0YjExM2QwNzQ4NjcyM2VjNGZmZjM1Yzc1OWM2NTc0ZTY5ZjE1ZQ==
5
- data.tar.gz: !binary |-
6
- YTZkMDc0NTk4NjA1ZjM2NGRmNGJiODk2ZTZlNDUwNjEzYzYzNTRmYQ==
2
+ SHA1:
3
+ metadata.gz: 8bddfb8931b1b9a7f22b5e8c5806a21d04aa77d1
4
+ data.tar.gz: 5bce9b606406c713d321028442700ff8648a63f5
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NDFkMjlmM2FjZDllY2RmNzQ2MzRhNmY4YjU2YmQwYzQ3N2RiYmQ3MmE4MTNh
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
@@ -12,5 +12,6 @@ end
12
12
  group :test do
13
13
  gem 'simplecov', '>= 0'
14
14
  gem 'sqlite3'
15
+ gem 'test-unit'
15
16
  end
16
17
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.0
1
+ 2.2.0
@@ -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.1.0 ruby lib
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.1.0"
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 = "2013-12-12"
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.require_paths = ["lib"]
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.type_cast(value))
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.type_cast(value))
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")
@@ -7,4 +7,12 @@ ja:
7
7
  name: 名前
8
8
  email: メールアドレス
9
9
  age: 年齢
10
+ activerecord:
11
+ models:
12
+ user: ゆーざー
13
+ attributes:
14
+ user:
15
+ name: なまえ
16
+ email: めーるあどれす
17
+ age: ねんれい
10
18
 
@@ -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.reset_changes
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 :easy_model, 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)
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?
@@ -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::TestSearchForm < Test::Unit::TestCase
6
6
 
@@ -9,6 +9,7 @@ end
9
9
 
10
10
  require 'rubygems'
11
11
  require 'bundler'
12
+ require "minitest/autorun"
12
13
  begin
13
14
  Bundler.setup(:default, :development)
14
15
  rescue Bundler::BundlerError => e
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.1.0
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: 2013-12-12 00:00:00.000000000 Z
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: !binary |-
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: !binary |-
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: !binary |-
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: !binary |-
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: !binary |-
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: !binary |-
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: !binary |-
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: !binary |-
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: !binary |-
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: !binary |-
92
- MS44LjQ=
93
- description: ! " EasyModel provides features of database independent attribute.\n
94
- \ You can define the attribute like ActiveRecord that perform data conversion
95
- during assignment.\n データベースに関連付かない属性を定義する機能を提供します.\n 代入時に ActiveRecord と同様の型変換が行われる属性を定義することができます.\n"
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.1.11
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. データベースに関連付かない属性を定義する機能を提供します.