activerecord-update 0.0.2 → 0.1.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 +13 -5
- data/.gitignore +2 -1
- data/.rubocop.yml +11 -0
- data/.travis.yml +10 -0
- data/Appraisals +18 -0
- data/README.md +5 -0
- data/activerecord-update.gemspec +7 -4
- data/before_script2.3.sh +8 -0
- data/gemfiles/2.3.gemfile +13 -0
- data/gemfiles/4.1.gemfile +12 -0
- data/lib/activerecord-update.rb +12 -1
- data/lib/activerecord-update/active_record/base.rb +36 -6
- data/lib/activerecord-update/core_ext/hash/slice.rb +48 -0
- data/lib/activerecord-update/core_ext/string/strip.rb +23 -0
- data/lib/activerecord-update/version.rb +1 -1
- metadata +89 -43
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ODNmMzBiN2U0NmY1YmNkMmE5NzgwZWVkMDUyYTUyYmZlNjljMWRmMA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
N2VhOTRjYjJiN2FjNjk0MjAyZWIwMTk4NTUwNmI0M2M2MDJiODU0MA==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NTg3YjE2NjIwNDRmNTgzYmIzYmQzNTZhNDdkZDM4YmNiMjk3Mzg3NDYyNDg2
|
10
|
+
NTJkOWFkOWQzNGU2YjNiYjA0MGY5MmMyMTE5ZDYzNjM2ZDdhOTE4YzM0NWFk
|
11
|
+
ODk4YmJiODc1OTA2NTlmZmE5NjFiZmJiYTRlM2Q4MTZiOGNlY2M=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YjRjMzBmMmFjNjA5ZDM1NmQ4YjljZDUxYWQzYjMyZTgyNWMxZDEyODljZjgw
|
14
|
+
ZjlkMTQwMzJlMzVkZTEzN2M2NTViYTkxMmJkMjIxYWZlOWNkOWE2YWFjNjNj
|
15
|
+
OWJiNTQ0ZTc5ZmM4NjY1ZDRmMjMwNDgxOTJkYjI4N2E1MTQ4MDg=
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -17,3 +17,14 @@ Metrics/BlockLength:
|
|
17
17
|
|
18
18
|
Style/AlignParameters:
|
19
19
|
EnforcedStyle: with_fixed_indentation
|
20
|
+
|
21
|
+
Style/EmptyMethod:
|
22
|
+
EnforcedStyle: expanded
|
23
|
+
|
24
|
+
AllCops:
|
25
|
+
Exclude:
|
26
|
+
# Ignore what's in core_ext since those files are copied directly from
|
27
|
+
# ActiveSupport
|
28
|
+
- 'lib/activerecord-update/core_ext/**/*'
|
29
|
+
# Everything in this directory is automatically generated
|
30
|
+
- 'gemfiles/**/*'
|
data/.travis.yml
CHANGED
@@ -5,6 +5,16 @@ rvm:
|
|
5
5
|
- 2.3.3
|
6
6
|
- 2.1.5
|
7
7
|
|
8
|
+
gemfile:
|
9
|
+
- gemfiles/4.1.gemfile
|
10
|
+
|
11
|
+
matrix:
|
12
|
+
include:
|
13
|
+
- rvm: 1.9.3
|
14
|
+
gemfile: gemfiles/2.3.gemfile
|
15
|
+
before_script:
|
16
|
+
- ./before_script2.3.sh
|
17
|
+
|
8
18
|
cache: bundler
|
9
19
|
before_install: gem install bundler -v 1.13.6
|
10
20
|
|
data/Appraisals
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
appraise '2.3' do
|
2
|
+
gem 'activerecord', '2.3.5'
|
3
|
+
|
4
|
+
group :development, :test do
|
5
|
+
gem 'database_cleaner', '1.4.1'
|
6
|
+
gem 'rubocop', '0.41.2'
|
7
|
+
gem 'rb-readline'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
appraise '4.1' do
|
12
|
+
gem 'activerecord', '4.1.9'
|
13
|
+
|
14
|
+
group :development, :test do
|
15
|
+
gem 'database_cleaner', '~> 1.5.3'
|
16
|
+
gem 'rubocop', '0.46.0'
|
17
|
+
end
|
18
|
+
end
|
data/README.md
CHANGED
@@ -40,6 +40,11 @@ books.each { |book| book.title = nil }
|
|
40
40
|
Book.update_records!(books) # will raise an ActiveRecord::RecordInvalid error
|
41
41
|
```
|
42
42
|
|
43
|
+
## Supported Versions
|
44
|
+
|
45
|
+
* Ruby 1.9.3 or later
|
46
|
+
* ActiveRecord 2.3.x and 4.1.x
|
47
|
+
|
43
48
|
## Development
|
44
49
|
|
45
50
|
After checking out the repo, run `bin/setup` to install dependencies. Then,
|
data/activerecord-update.gemspec
CHANGED
@@ -31,18 +31,21 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
32
32
|
spec.require_paths = ['lib']
|
33
33
|
|
34
|
-
spec.
|
35
|
-
spec.add_dependency 'activesupport', '4.1.9'
|
34
|
+
spec.required_ruby_version = '>= 1.9.3'
|
36
35
|
|
37
|
-
spec.
|
36
|
+
spec.add_dependency 'activerecord', '>= 2.3.5', '<= 4.1.9'
|
37
|
+
spec.add_dependency 'activesupport', '>= 2.3.5', '<= 4.1.9'
|
38
|
+
|
39
|
+
spec.add_development_dependency 'appraisal', '~> 2.2'
|
38
40
|
spec.add_development_dependency 'bundler', '~> 1.13'
|
41
|
+
spec.add_development_dependency 'database_cleaner', '>= 1.4.1', '< 1.6'
|
39
42
|
spec.add_development_dependency 'pg', '0.18.2'
|
40
43
|
spec.add_development_dependency 'pry-rescue', '~> 1.4'
|
41
44
|
spec.add_development_dependency 'pry-stack_explorer', '~> 0.4.9'
|
42
45
|
spec.add_development_dependency 'rake', '~> 10.0'
|
43
46
|
spec.add_development_dependency 'redcarpet', '~> 3.3'
|
44
47
|
spec.add_development_dependency 'rspec', '~> 3.5'
|
45
|
-
spec.add_development_dependency 'rubocop', '0.46.0'
|
48
|
+
spec.add_development_dependency 'rubocop', '>= 0.41.2', '<= 0.46.0'
|
46
49
|
spec.add_development_dependency 'ruby-prof', '~> 0.16'
|
47
50
|
spec.add_development_dependency 'simplecov', '~> 0.12'
|
48
51
|
spec.add_development_dependency 'timecop', '~> 0.8'
|
data/before_script2.3.sh
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
set -ex
|
4
|
+
|
5
|
+
# The Psych YAML parser has a bug where `[:foo]` fails to parse
|
6
|
+
sed -Ei $'s/ order: \[ :year, :month, :day \]/ order:\\\n - :year\\\n - :month\\\n - :day/g' "$(bundle show activesupport)"/lib/active_support/locale/en.yml
|
7
|
+
bundle exec rake db:create
|
8
|
+
bundle exec rake db:migrate
|
data/lib/activerecord-update.rb
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
# rubocop:disable Style/FileName
|
2
2
|
|
3
|
-
|
3
|
+
begin
|
4
|
+
require 'active_support/core_ext/string/strip'
|
5
|
+
rescue LoadError
|
6
|
+
require 'activerecord-update/core_ext/string/strip'
|
7
|
+
end
|
8
|
+
|
9
|
+
begin
|
10
|
+
require 'active_support/core_ext/hash/slice'
|
11
|
+
rescue LoadError
|
12
|
+
require 'activerecord-update/core_ext/hash/slice'
|
13
|
+
end
|
14
|
+
|
4
15
|
require 'active_record'
|
5
16
|
|
6
17
|
require 'activerecord-update/version'
|
@@ -111,10 +111,12 @@ module ActiveRecord
|
|
111
111
|
# @see .update_records
|
112
112
|
def _update_records(
|
113
113
|
records,
|
114
|
-
|
115
|
-
raise_on_stale_objects:
|
114
|
+
options
|
116
115
|
)
|
117
116
|
|
117
|
+
raise_on_validation_failure = options[:raise_on_validation_failure]
|
118
|
+
raise_on_stale_objects = options[:raise_on_stale_objects]
|
119
|
+
|
118
120
|
changed = changed_records(records)
|
119
121
|
valid, failed = validate_records(changed, raise_on_validation_failure)
|
120
122
|
return build_result(valid, failed, []) if valid.empty?
|
@@ -275,7 +277,13 @@ module ActiveRecord
|
|
275
277
|
# @return [String] the table alias quoted.
|
276
278
|
def quoted_table_alias
|
277
279
|
@quoted_table_alias ||=
|
278
|
-
connection.quote_table_name(
|
280
|
+
connection.quote_table_name(table_name + '_2')
|
281
|
+
end
|
282
|
+
|
283
|
+
unless defined?(quoted_primary_key)
|
284
|
+
def quoted_primary_key
|
285
|
+
@quoted_primary_key ||= connection.quote_column_name(primary_key)
|
286
|
+
end
|
279
287
|
end
|
280
288
|
|
281
289
|
# Quotes/escapes the given column value to prevent SQL injection attacks.
|
@@ -443,8 +451,7 @@ module ActiveRecord
|
|
443
451
|
# We're using `slice` instead of `changed_attributes` because we need
|
444
452
|
# to include all the changed attributes from all the changed records
|
445
453
|
# and not just the changed attributes for a given record.
|
446
|
-
values = record
|
447
|
-
.slice(*changed_attributes)
|
454
|
+
values = slice(record, *changed_attributes)
|
448
455
|
.merge('updated_at' => updated_at)
|
449
456
|
.values
|
450
457
|
|
@@ -456,6 +463,17 @@ module ActiveRecord
|
|
456
463
|
# rubocop:enable Metrics/AbcSize
|
457
464
|
# rubocop:enable Metrics/MethodLength
|
458
465
|
|
466
|
+
# Returns a hash of the given methods with their names as keys and
|
467
|
+
# returned values as values.
|
468
|
+
def slice(record, *methods)
|
469
|
+
if record.respond_to?(:slice)
|
470
|
+
record.slice(*methods)
|
471
|
+
else
|
472
|
+
result = methods.map! { |m| [m, record.public_send(m)] }
|
473
|
+
Hash[result].with_indifferent_access
|
474
|
+
end
|
475
|
+
end
|
476
|
+
|
459
477
|
# Increments the lock column of the given record if locking is enabled.
|
460
478
|
#
|
461
479
|
# @param record [ActiveRecord::Base] the record to update the lock column
|
@@ -613,6 +631,12 @@ module ActiveRecord
|
|
613
631
|
return unless result.stale_objects?
|
614
632
|
record = result.stale_objects.first
|
615
633
|
return unless raise_on_stale_objects
|
634
|
+
|
635
|
+
if ActiveRecord::VERSION::MAJOR == 2
|
636
|
+
message = "Attempted to update a stale object: #{record.class.name}"
|
637
|
+
raise ActiveRecord::StaleObjectError, message
|
638
|
+
end
|
639
|
+
|
616
640
|
raise ActiveRecord::StaleObjectError.new(record, 'update')
|
617
641
|
end
|
618
642
|
|
@@ -670,7 +694,13 @@ module ActiveRecord
|
|
670
694
|
#
|
671
695
|
# @return [void]
|
672
696
|
def mark_changes_applied(records)
|
673
|
-
records.
|
697
|
+
if records.first.respond_to?(:changes_applied, true)
|
698
|
+
records.each { |e| e.send(:changes_applied) }
|
699
|
+
else # ActiveRecord 3.2
|
700
|
+
records.each do |e|
|
701
|
+
e.instance_variable_get(:@changed_attributes).clear
|
702
|
+
end
|
703
|
+
end
|
674
704
|
end
|
675
705
|
end
|
676
706
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
class Hash
|
2
|
+
# Slices a hash to include only the given keys. Returns a hash containing
|
3
|
+
# the given keys.
|
4
|
+
#
|
5
|
+
# { a: 1, b: 2, c: 3, d: 4 }.slice(:a, :b)
|
6
|
+
# # => {:a=>1, :b=>2}
|
7
|
+
#
|
8
|
+
# This is useful for limiting an options hash to valid keys before
|
9
|
+
# passing to a method:
|
10
|
+
#
|
11
|
+
# def search(criteria = {})
|
12
|
+
# criteria.assert_valid_keys(:mass, :velocity, :time)
|
13
|
+
# end
|
14
|
+
#
|
15
|
+
# search(options.slice(:mass, :velocity, :time))
|
16
|
+
#
|
17
|
+
# If you have an array of keys you want to limit to, you should splat them:
|
18
|
+
#
|
19
|
+
# valid_keys = [:mass, :velocity, :time]
|
20
|
+
# search(options.slice(*valid_keys))
|
21
|
+
def slice(*keys)
|
22
|
+
keys.map! { |key| convert_key(key) } if respond_to?(:convert_key, true)
|
23
|
+
keys.each_with_object(self.class.new) { |k, hash| hash[k] = self[k] if has_key?(k) }
|
24
|
+
end
|
25
|
+
|
26
|
+
# Replaces the hash with only the given keys.
|
27
|
+
# Returns a hash containing the removed key/value pairs.
|
28
|
+
#
|
29
|
+
# { a: 1, b: 2, c: 3, d: 4 }.slice!(:a, :b)
|
30
|
+
# # => {:c=>3, :d=>4}
|
31
|
+
def slice!(*keys)
|
32
|
+
keys.map! { |key| convert_key(key) } if respond_to?(:convert_key, true)
|
33
|
+
omit = slice(*self.keys - keys)
|
34
|
+
hash = slice(*keys)
|
35
|
+
hash.default = default
|
36
|
+
hash.default_proc = default_proc if default_proc
|
37
|
+
replace(hash)
|
38
|
+
omit
|
39
|
+
end
|
40
|
+
|
41
|
+
# Removes and returns the key/value pairs matching the given keys.
|
42
|
+
#
|
43
|
+
# { a: 1, b: 2, c: 3, d: 4 }.extract!(:a, :b) # => {:a=>1, :b=>2}
|
44
|
+
# { a: 1, b: 2 }.extract!(:a, :x) # => {:a=>1}
|
45
|
+
def extract!(*keys)
|
46
|
+
keys.each_with_object(self.class.new) { |key, result| result[key] = delete(key) if has_key?(key) }
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class String
|
2
|
+
# Strips indentation in heredocs.
|
3
|
+
#
|
4
|
+
# For example in
|
5
|
+
#
|
6
|
+
# if options[:usage]
|
7
|
+
# puts <<-USAGE.strip_heredoc
|
8
|
+
# This command does such and such.
|
9
|
+
#
|
10
|
+
# Supported options are:
|
11
|
+
# -h This message
|
12
|
+
# ...
|
13
|
+
# USAGE
|
14
|
+
# end
|
15
|
+
#
|
16
|
+
# the user would see the usage message aligned against the left margin.
|
17
|
+
#
|
18
|
+
# Technically, it looks for the least indented non-empty line
|
19
|
+
# in the whole string, and removes that amount of leading whitespace.
|
20
|
+
def strip_heredoc
|
21
|
+
gsub(/^#{scan(/^[ \t]*(?=\S)/).min}/, "".freeze)
|
22
|
+
end
|
23
|
+
end
|
metadata
CHANGED
@@ -1,71 +1,103 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacob Carlborg
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - '
|
17
|
+
- - ! '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.3.5
|
20
|
+
- - <=
|
18
21
|
- !ruby/object:Gem::Version
|
19
22
|
version: 4.1.9
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - '
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 2.3.5
|
30
|
+
- - <=
|
25
31
|
- !ruby/object:Gem::Version
|
26
32
|
version: 4.1.9
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: activesupport
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- - '
|
37
|
+
- - ! '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 2.3.5
|
40
|
+
- - <=
|
32
41
|
- !ruby/object:Gem::Version
|
33
42
|
version: 4.1.9
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
|
-
- - '
|
47
|
+
- - ! '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 2.3.5
|
50
|
+
- - <=
|
39
51
|
- !ruby/object:Gem::Version
|
40
52
|
version: 4.1.9
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
54
|
+
name: appraisal
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
44
56
|
requirements:
|
45
|
-
- -
|
57
|
+
- - ~>
|
46
58
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
59
|
+
version: '2.2'
|
48
60
|
type: :development
|
49
61
|
prerelease: false
|
50
62
|
version_requirements: !ruby/object:Gem::Requirement
|
51
63
|
requirements:
|
52
|
-
- -
|
64
|
+
- - ~>
|
53
65
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
66
|
+
version: '2.2'
|
55
67
|
- !ruby/object:Gem::Dependency
|
56
68
|
name: bundler
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|
58
70
|
requirements:
|
59
|
-
- -
|
71
|
+
- - ~>
|
60
72
|
- !ruby/object:Gem::Version
|
61
73
|
version: '1.13'
|
62
74
|
type: :development
|
63
75
|
prerelease: false
|
64
76
|
version_requirements: !ruby/object:Gem::Requirement
|
65
77
|
requirements:
|
66
|
-
- -
|
78
|
+
- - ~>
|
67
79
|
- !ruby/object:Gem::Version
|
68
80
|
version: '1.13'
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: database_cleaner
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 1.4.1
|
88
|
+
- - <
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '1.6'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ! '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 1.4.1
|
98
|
+
- - <
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '1.6'
|
69
101
|
- !ruby/object:Gem::Dependency
|
70
102
|
name: pg
|
71
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,140 +116,146 @@ dependencies:
|
|
84
116
|
name: pry-rescue
|
85
117
|
requirement: !ruby/object:Gem::Requirement
|
86
118
|
requirements:
|
87
|
-
- -
|
119
|
+
- - ~>
|
88
120
|
- !ruby/object:Gem::Version
|
89
121
|
version: '1.4'
|
90
122
|
type: :development
|
91
123
|
prerelease: false
|
92
124
|
version_requirements: !ruby/object:Gem::Requirement
|
93
125
|
requirements:
|
94
|
-
- -
|
126
|
+
- - ~>
|
95
127
|
- !ruby/object:Gem::Version
|
96
128
|
version: '1.4'
|
97
129
|
- !ruby/object:Gem::Dependency
|
98
130
|
name: pry-stack_explorer
|
99
131
|
requirement: !ruby/object:Gem::Requirement
|
100
132
|
requirements:
|
101
|
-
- -
|
133
|
+
- - ~>
|
102
134
|
- !ruby/object:Gem::Version
|
103
135
|
version: 0.4.9
|
104
136
|
type: :development
|
105
137
|
prerelease: false
|
106
138
|
version_requirements: !ruby/object:Gem::Requirement
|
107
139
|
requirements:
|
108
|
-
- -
|
140
|
+
- - ~>
|
109
141
|
- !ruby/object:Gem::Version
|
110
142
|
version: 0.4.9
|
111
143
|
- !ruby/object:Gem::Dependency
|
112
144
|
name: rake
|
113
145
|
requirement: !ruby/object:Gem::Requirement
|
114
146
|
requirements:
|
115
|
-
- -
|
147
|
+
- - ~>
|
116
148
|
- !ruby/object:Gem::Version
|
117
149
|
version: '10.0'
|
118
150
|
type: :development
|
119
151
|
prerelease: false
|
120
152
|
version_requirements: !ruby/object:Gem::Requirement
|
121
153
|
requirements:
|
122
|
-
- -
|
154
|
+
- - ~>
|
123
155
|
- !ruby/object:Gem::Version
|
124
156
|
version: '10.0'
|
125
157
|
- !ruby/object:Gem::Dependency
|
126
158
|
name: redcarpet
|
127
159
|
requirement: !ruby/object:Gem::Requirement
|
128
160
|
requirements:
|
129
|
-
- -
|
161
|
+
- - ~>
|
130
162
|
- !ruby/object:Gem::Version
|
131
163
|
version: '3.3'
|
132
164
|
type: :development
|
133
165
|
prerelease: false
|
134
166
|
version_requirements: !ruby/object:Gem::Requirement
|
135
167
|
requirements:
|
136
|
-
- -
|
168
|
+
- - ~>
|
137
169
|
- !ruby/object:Gem::Version
|
138
170
|
version: '3.3'
|
139
171
|
- !ruby/object:Gem::Dependency
|
140
172
|
name: rspec
|
141
173
|
requirement: !ruby/object:Gem::Requirement
|
142
174
|
requirements:
|
143
|
-
- -
|
175
|
+
- - ~>
|
144
176
|
- !ruby/object:Gem::Version
|
145
177
|
version: '3.5'
|
146
178
|
type: :development
|
147
179
|
prerelease: false
|
148
180
|
version_requirements: !ruby/object:Gem::Requirement
|
149
181
|
requirements:
|
150
|
-
- -
|
182
|
+
- - ~>
|
151
183
|
- !ruby/object:Gem::Version
|
152
184
|
version: '3.5'
|
153
185
|
- !ruby/object:Gem::Dependency
|
154
186
|
name: rubocop
|
155
187
|
requirement: !ruby/object:Gem::Requirement
|
156
188
|
requirements:
|
157
|
-
- - '
|
189
|
+
- - ! '>='
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: 0.41.2
|
192
|
+
- - <=
|
158
193
|
- !ruby/object:Gem::Version
|
159
194
|
version: 0.46.0
|
160
195
|
type: :development
|
161
196
|
prerelease: false
|
162
197
|
version_requirements: !ruby/object:Gem::Requirement
|
163
198
|
requirements:
|
164
|
-
- - '
|
199
|
+
- - ! '>='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 0.41.2
|
202
|
+
- - <=
|
165
203
|
- !ruby/object:Gem::Version
|
166
204
|
version: 0.46.0
|
167
205
|
- !ruby/object:Gem::Dependency
|
168
206
|
name: ruby-prof
|
169
207
|
requirement: !ruby/object:Gem::Requirement
|
170
208
|
requirements:
|
171
|
-
- -
|
209
|
+
- - ~>
|
172
210
|
- !ruby/object:Gem::Version
|
173
211
|
version: '0.16'
|
174
212
|
type: :development
|
175
213
|
prerelease: false
|
176
214
|
version_requirements: !ruby/object:Gem::Requirement
|
177
215
|
requirements:
|
178
|
-
- -
|
216
|
+
- - ~>
|
179
217
|
- !ruby/object:Gem::Version
|
180
218
|
version: '0.16'
|
181
219
|
- !ruby/object:Gem::Dependency
|
182
220
|
name: simplecov
|
183
221
|
requirement: !ruby/object:Gem::Requirement
|
184
222
|
requirements:
|
185
|
-
- -
|
223
|
+
- - ~>
|
186
224
|
- !ruby/object:Gem::Version
|
187
225
|
version: '0.12'
|
188
226
|
type: :development
|
189
227
|
prerelease: false
|
190
228
|
version_requirements: !ruby/object:Gem::Requirement
|
191
229
|
requirements:
|
192
|
-
- -
|
230
|
+
- - ~>
|
193
231
|
- !ruby/object:Gem::Version
|
194
232
|
version: '0.12'
|
195
233
|
- !ruby/object:Gem::Dependency
|
196
234
|
name: timecop
|
197
235
|
requirement: !ruby/object:Gem::Requirement
|
198
236
|
requirements:
|
199
|
-
- -
|
237
|
+
- - ~>
|
200
238
|
- !ruby/object:Gem::Version
|
201
239
|
version: '0.8'
|
202
240
|
type: :development
|
203
241
|
prerelease: false
|
204
242
|
version_requirements: !ruby/object:Gem::Requirement
|
205
243
|
requirements:
|
206
|
-
- -
|
244
|
+
- - ~>
|
207
245
|
- !ruby/object:Gem::Version
|
208
246
|
version: '0.8'
|
209
247
|
- !ruby/object:Gem::Dependency
|
210
248
|
name: yard
|
211
249
|
requirement: !ruby/object:Gem::Requirement
|
212
250
|
requirements:
|
213
|
-
- -
|
251
|
+
- - ~>
|
214
252
|
- !ruby/object:Gem::Version
|
215
253
|
version: '0.9'
|
216
254
|
type: :development
|
217
255
|
prerelease: false
|
218
256
|
version_requirements: !ruby/object:Gem::Requirement
|
219
257
|
requirements:
|
220
|
-
- -
|
258
|
+
- - ~>
|
221
259
|
- !ruby/object:Gem::Version
|
222
260
|
version: '0.9'
|
223
261
|
description: Batch updating for ActiveRecord models
|
@@ -227,21 +265,29 @@ executables: []
|
|
227
265
|
extensions: []
|
228
266
|
extra_rdoc_files: []
|
229
267
|
files:
|
230
|
-
-
|
231
|
-
-
|
232
|
-
-
|
233
|
-
-
|
234
|
-
-
|
235
|
-
-
|
268
|
+
- .gitignore
|
269
|
+
- .rspec
|
270
|
+
- .rubocop.yml
|
271
|
+
- .ruby-gemset
|
272
|
+
- .ruby-version
|
273
|
+
- .travis.yml
|
274
|
+
- Appraisals
|
236
275
|
- Gemfile
|
237
276
|
- README.md
|
238
277
|
- Rakefile
|
239
278
|
- activerecord-update.gemspec
|
279
|
+
- before_script2.3.sh
|
240
280
|
- bin/console
|
241
281
|
- bin/setup
|
282
|
+
- gemfiles/2.3.gemfile
|
283
|
+
- gemfiles/4.1.gemfile
|
284
|
+
- gemfiles/activerecord_2.3.gemfile.lock
|
285
|
+
- gemfiles/activerecord_4.1.gemfile.lock
|
242
286
|
- lib/activerecord-update.rb
|
243
287
|
- lib/activerecord-update/active_record/base.rb
|
244
288
|
- lib/activerecord-update/active_record/update/result.rb
|
289
|
+
- lib/activerecord-update/core_ext/hash/slice.rb
|
290
|
+
- lib/activerecord-update/core_ext/string/strip.rb
|
245
291
|
- lib/activerecord-update/version.rb
|
246
292
|
homepage: https://github.com/jacob-carlborg/activerecord-update
|
247
293
|
licenses: []
|
@@ -253,17 +299,17 @@ require_paths:
|
|
253
299
|
- lib
|
254
300
|
required_ruby_version: !ruby/object:Gem::Requirement
|
255
301
|
requirements:
|
256
|
-
- -
|
302
|
+
- - ! '>='
|
257
303
|
- !ruby/object:Gem::Version
|
258
|
-
version:
|
304
|
+
version: 1.9.3
|
259
305
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
260
306
|
requirements:
|
261
|
-
- -
|
307
|
+
- - ! '>='
|
262
308
|
- !ruby/object:Gem::Version
|
263
309
|
version: '0'
|
264
310
|
requirements: []
|
265
311
|
rubyforge_project:
|
266
|
-
rubygems_version: 2.
|
312
|
+
rubygems_version: 2.1.11
|
267
313
|
signing_key:
|
268
314
|
specification_version: 4
|
269
315
|
summary: Batch updating for ActiveRecord models
|