dm-adjust 1.1.0 → 1.2.0.rc1

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.
data/Gemfile CHANGED
@@ -5,26 +5,26 @@ source 'http://rubygems.org'
5
5
  SOURCE = ENV.fetch('SOURCE', :git).to_sym
6
6
  REPO_POSTFIX = SOURCE == :path ? '' : '.git'
7
7
  DATAMAPPER = SOURCE == :path ? Pathname(__FILE__).dirname.parent : 'http://github.com/datamapper'
8
- DM_VERSION = '~> 1.1.0'
9
- DO_VERSION = '~> 0.10.2'
8
+ DM_VERSION = '~> 1.2.0.rc1'
9
+ DO_VERSION = '~> 0.10.6'
10
10
  DM_DO_ADAPTERS = %w[ sqlite postgres mysql oracle sqlserver ]
11
11
 
12
12
  gem 'dm-core', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-core#{REPO_POSTFIX}"
13
13
 
14
14
  group :development do
15
15
 
16
- gem 'jeweler', '~> 1.5.2'
17
- gem 'rake', '~> 0.8.7'
18
- gem 'rspec', '~> 1.3.1'
16
+ gem 'jeweler', '~> 1.6.4'
17
+ gem 'rake', '~> 0.9.2'
18
+ gem 'rspec', '~> 1.3.2'
19
19
 
20
20
  end
21
21
 
22
22
  platforms :mri_18 do
23
23
  group :quality do
24
24
 
25
- gem 'rcov', '~> 0.9.9'
26
- gem 'yard', '~> 0.6'
27
- gem 'yardstick', '~> 0.2'
25
+ gem 'rcov', '~> 0.9.10'
26
+ gem 'yard', '~> 0.7.2'
27
+ gem 'yardstick', '~> 0.4'
28
28
 
29
29
  end
30
30
  end
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
 
4
4
  begin
5
- gem 'jeweler', '~> 1.5.2'
5
+ gem 'jeweler', '~> 1.6.4'
6
6
  require 'jeweler'
7
7
 
8
8
  Jeweler::Tasks.new do |gem|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.0.rc1
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{dm-adjust}
8
- s.version = "1.1.0"
7
+ s.name = "dm-adjust"
8
+ s.version = "1.2.0.rc1"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Sindre Aarsaether"]
12
- s.date = %q{2011-03-16}
13
- s.description = %q{DataMapper plugin providing methods to increment and decrement properties}
14
- s.email = %q{sindre [a] identu [d] no}
12
+ s.date = "2011-09-09"
13
+ s.description = "DataMapper plugin providing methods to increment and decrement properties"
14
+ s.email = "sindre [a] identu [d] no"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
17
  "README.rdoc"
@@ -25,6 +25,8 @@ Gem::Specification.new do |s|
25
25
  "dm-adjust.gemspec",
26
26
  "lib/dm-adjust.rb",
27
27
  "lib/dm-adjust/adapters/data_objects_adapter.rb",
28
+ "lib/dm-adjust/adapters/in_memory_adapter.rb",
29
+ "lib/dm-adjust/adapters/yaml_adapter.rb",
28
30
  "lib/dm-adjust/collection.rb",
29
31
  "lib/dm-adjust/model.rb",
30
32
  "lib/dm-adjust/repository.rb",
@@ -37,35 +39,31 @@ Gem::Specification.new do |s|
37
39
  "tasks/yard.rake",
38
40
  "tasks/yardstick.rake"
39
41
  ]
40
- s.homepage = %q{http://github.com/datamapper/dm-adjust}
42
+ s.homepage = "http://github.com/datamapper/dm-adjust"
41
43
  s.require_paths = ["lib"]
42
- s.rubyforge_project = %q{datamapper}
43
- s.rubygems_version = %q{1.6.2}
44
- s.summary = %q{DataMapper plugin providing methods to increment and decrement properties}
45
- s.test_files = [
46
- "spec/integration/adjust_spec.rb",
47
- "spec/spec_helper.rb"
48
- ]
44
+ s.rubyforge_project = "datamapper"
45
+ s.rubygems_version = "1.8.10"
46
+ s.summary = "DataMapper plugin providing methods to increment and decrement properties"
49
47
 
50
48
  if s.respond_to? :specification_version then
51
49
  s.specification_version = 3
52
50
 
53
51
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
54
- s.add_runtime_dependency(%q<dm-core>, ["~> 1.1.0"])
55
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
56
- s.add_development_dependency(%q<rake>, ["~> 0.8.7"])
57
- s.add_development_dependency(%q<rspec>, ["~> 1.3.1"])
52
+ s.add_runtime_dependency(%q<dm-core>, ["~> 1.2.0.rc1"])
53
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
54
+ s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
55
+ s.add_development_dependency(%q<rspec>, ["~> 1.3.2"])
58
56
  else
59
- s.add_dependency(%q<dm-core>, ["~> 1.1.0"])
60
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
61
- s.add_dependency(%q<rake>, ["~> 0.8.7"])
62
- s.add_dependency(%q<rspec>, ["~> 1.3.1"])
57
+ s.add_dependency(%q<dm-core>, ["~> 1.2.0.rc1"])
58
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
59
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
60
+ s.add_dependency(%q<rspec>, ["~> 1.3.2"])
63
61
  end
64
62
  else
65
- s.add_dependency(%q<dm-core>, ["~> 1.1.0"])
66
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
67
- s.add_dependency(%q<rake>, ["~> 0.8.7"])
68
- s.add_dependency(%q<rspec>, ["~> 1.3.1"])
63
+ s.add_dependency(%q<dm-core>, ["~> 1.2.0.rc1"])
64
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
65
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
66
+ s.add_dependency(%q<rspec>, ["~> 1.3.2"])
69
67
  end
70
68
  end
71
69
 
@@ -1,6 +1,8 @@
1
1
  require 'dm-core'
2
2
 
3
3
  require 'dm-adjust/adapters/data_objects_adapter'
4
+ require 'dm-adjust/adapters/in_memory_adapter'
5
+ require 'dm-adjust/adapters/yaml_adapter'
4
6
  require 'dm-adjust/collection'
5
7
  require 'dm-adjust/model'
6
8
  require 'dm-adjust/repository'
@@ -1,6 +1,6 @@
1
1
  module DataMapper
2
2
  module Adapters
3
- class DataObjectsAdapter < AbstractAdapter
3
+ module DataObjectsAdapterAdjust
4
4
  def adjust(attributes, collection)
5
5
  query = collection.query
6
6
 
@@ -38,12 +38,24 @@ module DataMapper
38
38
  end
39
39
 
40
40
  def set_adjustment_statement(properties)
41
- properties.map { |p| "#{quote_name(p.field)} = #{quote_name(p.field)} + ?" }.join(', ')
41
+ properties.map { |p| "#{quote_name(p.field)} = COALESCE(#{quote_name(p.field)}, 0) + ?" }.join(', ')
42
42
  end
43
43
 
44
44
  end # module SQL
45
45
 
46
46
  include SQL
47
- end # class DataObjectsAdapter
47
+ end # module DataObjectsAdapterAdjust
48
+
49
+ extendable do
50
+ # @api private
51
+ def const_added(const_name)
52
+ if const_name == :DataObjectsAdapter
53
+ DataObjectsAdapter.send(:include, DataObjectsAdapterAdjust)
54
+ end
55
+
56
+ super
57
+ end
58
+ end
59
+
48
60
  end # module Adapters
49
61
  end # module DataMapper
@@ -0,0 +1,26 @@
1
+ module DataMapper
2
+ module Adapters
3
+ module InMemoryAdapterAdjust
4
+ def adjust(attributes, collection)
5
+ attributes = attributes_as_fields(attributes)
6
+ read(collection.query).each do |record|
7
+ record.update(attributes) do |key, oldvalue, newvalue|
8
+ (oldvalue || 0) + newvalue
9
+ end
10
+ end.size
11
+ end
12
+ end # module InMemoryAdapterAdjust
13
+
14
+ extendable do
15
+ # @api private
16
+ def const_added(const_name)
17
+ if const_name == :InMemoryAdapter
18
+ InMemoryAdapter.send(:include, InMemoryAdapterAdjust)
19
+ end
20
+
21
+ super
22
+ end
23
+ end
24
+
25
+ end # module Adapters
26
+ end # module DataMapper
@@ -0,0 +1,30 @@
1
+ module DataMapper
2
+ module Adapters
3
+ module YamlAdapterAdjust
4
+ def adjust(attributes, collection)
5
+ attributes = attributes_as_fields(attributes)
6
+
7
+ update_records(collection.model) do |records|
8
+ records_to_update = collection.query.filter_records(records.dup)
9
+ records_to_update.each do |record|
10
+ record.update(attributes) do |key, oldvalue, newvalue|
11
+ (oldvalue || 0) + newvalue
12
+ end
13
+ end.size
14
+ end
15
+ end
16
+ end # module YamlAdapterAdjust
17
+
18
+ extendable do
19
+ # @api private
20
+ def const_added(const_name)
21
+ if const_name == :YamlAdapter
22
+ YamlAdapter.send(:include, YamlAdapterAdjust)
23
+ end
24
+
25
+ super
26
+ end
27
+ end
28
+
29
+ end # module Adapters
30
+ end # module DataMapper
@@ -14,12 +14,13 @@ describe 'dm-adjust' do
14
14
 
15
15
  end
16
16
 
17
- supported_by :sqlite, :mysql, :postgres do
17
+ supported_by :in_memory, :yaml, :sqlite, :mysql, :postgres do
18
18
 
19
19
  describe 'Adjust' do
20
20
 
21
21
  before do
22
22
  Person.auto_migrate!(:default)
23
+ Person.all.destroy
23
24
  Person.create(:name => 'George', :age => 15)
24
25
  Person.create(:name => 'Puff', :age => 18)
25
26
  Person.create(:name => 'Danny', :age => 26)
metadata CHANGED
@@ -1,8 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm-adjust
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.1.0
4
+ hash: 15424023
5
+ prerelease: 6
6
+ segments:
7
+ - 1
8
+ - 2
9
+ - 0
10
+ - rc
11
+ - 1
12
+ version: 1.2.0.rc1
6
13
  platform: ruby
7
14
  authors:
8
15
  - Sindre Aarsaether
@@ -10,53 +17,74 @@ autorequire:
10
17
  bindir: bin
11
18
  cert_chain: []
12
19
 
13
- date: 2011-03-16 00:00:00 -07:00
14
- default_executable:
20
+ date: 2011-09-09 00:00:00 Z
15
21
  dependencies:
16
22
  - !ruby/object:Gem::Dependency
17
- name: dm-core
18
- requirement: &id001 !ruby/object:Gem::Requirement
23
+ type: :runtime
24
+ version_requirements: &id001 !ruby/object:Gem::Requirement
19
25
  none: false
20
26
  requirements:
21
27
  - - ~>
22
28
  - !ruby/object:Gem::Version
23
- version: 1.1.0
24
- type: :runtime
29
+ hash: 15424023
30
+ segments:
31
+ - 1
32
+ - 2
33
+ - 0
34
+ - rc
35
+ - 1
36
+ version: 1.2.0.rc1
25
37
  prerelease: false
26
- version_requirements: *id001
38
+ requirement: *id001
39
+ name: dm-core
27
40
  - !ruby/object:Gem::Dependency
28
- name: jeweler
29
- requirement: &id002 !ruby/object:Gem::Requirement
41
+ type: :development
42
+ version_requirements: &id002 !ruby/object:Gem::Requirement
30
43
  none: false
31
44
  requirements:
32
45
  - - ~>
33
46
  - !ruby/object:Gem::Version
34
- version: 1.5.2
35
- type: :development
47
+ hash: 7
48
+ segments:
49
+ - 1
50
+ - 6
51
+ - 4
52
+ version: 1.6.4
36
53
  prerelease: false
37
- version_requirements: *id002
54
+ requirement: *id002
55
+ name: jeweler
38
56
  - !ruby/object:Gem::Dependency
39
- name: rake
40
- requirement: &id003 !ruby/object:Gem::Requirement
57
+ type: :development
58
+ version_requirements: &id003 !ruby/object:Gem::Requirement
41
59
  none: false
42
60
  requirements:
43
61
  - - ~>
44
62
  - !ruby/object:Gem::Version
45
- version: 0.8.7
46
- type: :development
63
+ hash: 63
64
+ segments:
65
+ - 0
66
+ - 9
67
+ - 2
68
+ version: 0.9.2
47
69
  prerelease: false
48
- version_requirements: *id003
70
+ requirement: *id003
71
+ name: rake
49
72
  - !ruby/object:Gem::Dependency
50
- name: rspec
51
- requirement: &id004 !ruby/object:Gem::Requirement
73
+ type: :development
74
+ version_requirements: &id004 !ruby/object:Gem::Requirement
52
75
  none: false
53
76
  requirements:
54
77
  - - ~>
55
78
  - !ruby/object:Gem::Version
56
- version: 1.3.1
57
- type: :development
79
+ hash: 31
80
+ segments:
81
+ - 1
82
+ - 3
83
+ - 2
84
+ version: 1.3.2
58
85
  prerelease: false
59
- version_requirements: *id004
86
+ requirement: *id004
87
+ name: rspec
60
88
  description: DataMapper plugin providing methods to increment and decrement properties
61
89
  email: sindre [a] identu [d] no
62
90
  executables: []
@@ -75,6 +103,8 @@ files:
75
103
  - dm-adjust.gemspec
76
104
  - lib/dm-adjust.rb
77
105
  - lib/dm-adjust/adapters/data_objects_adapter.rb
106
+ - lib/dm-adjust/adapters/in_memory_adapter.rb
107
+ - lib/dm-adjust/adapters/yaml_adapter.rb
78
108
  - lib/dm-adjust/collection.rb
79
109
  - lib/dm-adjust/model.rb
80
110
  - lib/dm-adjust/repository.rb
@@ -86,7 +116,6 @@ files:
86
116
  - tasks/spec.rake
87
117
  - tasks/yard.rake
88
118
  - tasks/yardstick.rake
89
- has_rdoc: true
90
119
  homepage: http://github.com/datamapper/dm-adjust
91
120
  licenses: []
92
121
 
@@ -100,20 +129,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
100
129
  requirements:
101
130
  - - ">="
102
131
  - !ruby/object:Gem::Version
132
+ hash: 3
133
+ segments:
134
+ - 0
103
135
  version: "0"
104
136
  required_rubygems_version: !ruby/object:Gem::Requirement
105
137
  none: false
106
138
  requirements:
107
- - - ">="
139
+ - - ">"
108
140
  - !ruby/object:Gem::Version
109
- version: "0"
141
+ hash: 25
142
+ segments:
143
+ - 1
144
+ - 3
145
+ - 1
146
+ version: 1.3.1
110
147
  requirements: []
111
148
 
112
149
  rubyforge_project: datamapper
113
- rubygems_version: 1.6.2
150
+ rubygems_version: 1.8.10
114
151
  signing_key:
115
152
  specification_version: 3
116
153
  summary: DataMapper plugin providing methods to increment and decrement properties
117
- test_files:
118
- - spec/integration/adjust_spec.rb
119
- - spec/spec_helper.rb
154
+ test_files: []
155
+