ardm-types 1.2.2 → 1.2.3
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 +4 -4
- data/.travis.yml +0 -1
- data/Gemfile +1 -1
- data/README.md +10 -0
- data/ardm-types.gemspec +1 -1
- data/lib/dm-types/support/dirty_minder.rb +4 -1
- data/lib/dm-types/version.rb +1 -1
- data/spec/integration/yaml_spec.rb +18 -0
- data/spec/unit/dirty_minder_spec.rb +64 -0
- metadata +6 -5
- data/README.rdoc +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3bf1eab52fe398667a3f2665a8c3f954dc330e3
|
4
|
+
data.tar.gz: 3210487984089459beae24f5ec224851e86bdea5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7aebe5e21e47ef53179805a70701846ebb553a8ab6ab6cea2f5907229c23a1f55d1c9d0c77e933180c068ac2395768dc6a63618c6f29e0183dbb739d2b29cd87
|
7
|
+
data.tar.gz: 3029238bbfa1ce468165fced1e0ea5394d940d4824be163c9013fa3177dabb1f1f13378b4b7684c22df0ce01c0e2ffea6e201ad4803fe144c78cbb19a53f87ce
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -7,7 +7,7 @@ gemspec
|
|
7
7
|
SOURCE = ENV.fetch('SOURCE', :git).to_sym
|
8
8
|
REPO_POSTFIX = SOURCE == :path ? '' : '.git'
|
9
9
|
DATAMAPPER = SOURCE == :path ? Pathname(__FILE__).dirname.parent : 'http://github.com/ar-dm'
|
10
|
-
DM_VERSION = '~> 1.2
|
10
|
+
DM_VERSION = '~> 1.2'
|
11
11
|
DO_VERSION = '~> 0.10.6'
|
12
12
|
DM_DO_ADAPTERS = %w[ sqlite postgres mysql oracle sqlserver ]
|
13
13
|
CURRENT_BRANCH = ENV.fetch('GIT_BRANCH', 'master')
|
data/README.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# ardm-types
|
2
|
+
|
3
|
+
A fork of [`dm-types`](https://github.com/datamapper/dm-types).
|
4
|
+
|
5
|
+
## Install
|
6
|
+
|
7
|
+
See [ardm-core](https://github.com/ar-dm/ardm-core) for more information.
|
8
|
+
|
9
|
+
Unless they are specific to this gem, please ask general `ardm-` questions
|
10
|
+
and open issues on `ardm-core`.
|
data/ardm-types.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |gem|
|
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split("\n")
|
16
16
|
gem.test_files = `git ls-files -- {spec}/*`.split("\n")
|
17
|
-
gem.extra_rdoc_files = %w[LICENSE README.
|
17
|
+
gem.extra_rdoc_files = %w[LICENSE README.md]
|
18
18
|
gem.require_paths = [ "lib" ]
|
19
19
|
|
20
20
|
gem.add_runtime_dependency 'ardm-core', '~> 1.2'
|
@@ -148,7 +148,10 @@ module DataMapper
|
|
148
148
|
|
149
149
|
# Catch any direct assignment (#set), and any Resource#reload (set!).
|
150
150
|
def set!(resource, value)
|
151
|
-
|
151
|
+
# Do not extend non observed value classes
|
152
|
+
if Hooker::MUTATION_METHODS.keys.detect { |klass| value.kind_of?(klass) }
|
153
|
+
hook_value(resource, value) unless value.kind_of? Hooker
|
154
|
+
end
|
152
155
|
super
|
153
156
|
end
|
154
157
|
|
data/lib/dm-types/version.rb
CHANGED
@@ -64,6 +64,24 @@ try_spec do
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
67
|
+
|
68
|
+
describe 'with inventions as a string' do
|
69
|
+
before :all do
|
70
|
+
object = "Foo and Bar" #.freeze
|
71
|
+
@resource.inventions = object
|
72
|
+
end
|
73
|
+
|
74
|
+
describe 'when dumped and loaded again' do
|
75
|
+
before :all do
|
76
|
+
@resource.save.should be(true)
|
77
|
+
@resource.reload
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'has correct inventions' do
|
81
|
+
@resource.inventions.should == 'Foo and Bar'
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
67
85
|
end
|
68
86
|
end
|
69
87
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'dm-types/support/dirty_minder'
|
3
|
+
|
4
|
+
describe DataMapper::Property::DirtyMinder,'set!' do
|
5
|
+
|
6
|
+
let(:property_class) do
|
7
|
+
Class.new(DataMapper::Property::Object) do
|
8
|
+
include DataMapper::Property::DirtyMinder
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
let(:model) do
|
13
|
+
property_class = self.property_class
|
14
|
+
Class.new do
|
15
|
+
include DataMapper::Resource
|
16
|
+
property :id,DataMapper::Property::Serial
|
17
|
+
property :name,property_class
|
18
|
+
|
19
|
+
def self.name; 'FredsClass'; end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
let(:resource) { model.new }
|
24
|
+
|
25
|
+
let(:object) { model.properties[:name] }
|
26
|
+
|
27
|
+
subject { object.set!(resource,value) }
|
28
|
+
|
29
|
+
shared_examples_for 'a non hooked value' do
|
30
|
+
it 'should not extend value with hook' do
|
31
|
+
value.should_not be_kind_of(DataMapper::Property::DirtyMinder::Hooker)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
shared_examples_for 'a hooked value' do
|
36
|
+
it 'should extend value with hook' do
|
37
|
+
value.should be_kind_of(DataMapper::Property::DirtyMinder::Hooker)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
before do
|
42
|
+
subject
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'when setting nil' do
|
46
|
+
let(:value) { nil }
|
47
|
+
it_should_behave_like 'a non hooked value'
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'when setting a String' do
|
51
|
+
let(:value) { "The fred" }
|
52
|
+
it_should_behave_like 'a non hooked value'
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'when setting an Array' do
|
56
|
+
let(:value) { ["The fred"] }
|
57
|
+
it_should_behave_like 'a hooked value'
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'when setting a Hash' do
|
61
|
+
let(:value) { {"The" => "fred"} }
|
62
|
+
it_should_behave_like 'a hooked value'
|
63
|
+
end
|
64
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ardm-types
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Emde
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-06-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ardm-core
|
@@ -131,13 +131,13 @@ executables: []
|
|
131
131
|
extensions: []
|
132
132
|
extra_rdoc_files:
|
133
133
|
- LICENSE
|
134
|
-
- README.
|
134
|
+
- README.md
|
135
135
|
files:
|
136
136
|
- ".gitignore"
|
137
137
|
- ".travis.yml"
|
138
138
|
- Gemfile
|
139
139
|
- LICENSE
|
140
|
-
- README.
|
140
|
+
- README.md
|
141
141
|
- Rakefile
|
142
142
|
- ardm-types.gemspec
|
143
143
|
- lib/ardm-types.rb
|
@@ -193,6 +193,7 @@ files:
|
|
193
193
|
- spec/spec_helper.rb
|
194
194
|
- spec/unit/bcrypt_hash_spec.rb
|
195
195
|
- spec/unit/csv_spec.rb
|
196
|
+
- spec/unit/dirty_minder_spec.rb
|
196
197
|
- spec/unit/enum_spec.rb
|
197
198
|
- spec/unit/epoch_time_spec.rb
|
198
199
|
- spec/unit/file_path_spec.rb
|
@@ -228,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
228
229
|
version: '0'
|
229
230
|
requirements: []
|
230
231
|
rubyforge_project:
|
231
|
-
rubygems_version: 2.
|
232
|
+
rubygems_version: 2.4.5
|
232
233
|
signing_key:
|
233
234
|
specification_version: 4
|
234
235
|
summary: Ardm fork of dm-types
|
data/README.rdoc
DELETED