dm-adjust 1.1.0 → 1.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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
+