easy_model 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
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. データベースに関連付かない属性を定義する機能を提供します.