constant_table_saver 4.1.1 → 4.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e456bebaba7c8e29e66feb2b63b5626c2bcdaa5f
4
- data.tar.gz: 28bd116590a6d334b5d337e94623b23583d48b34
3
+ metadata.gz: e2578ce8faa60c69b0c71cac907a097168fefcda
4
+ data.tar.gz: 8b53a074ed7d5f9d919de2b0de4e8d1a8cbb8140
5
5
  SHA512:
6
- metadata.gz: a73041f3bf0d46a7dae0ec0f091045ea6abfb84f9c7650dd6ebde9449a8783823e0af1b6b576cbd06e356f07dc26f4abdbab743d62d728bde95ecbc08604930c
7
- data.tar.gz: c863ae2ff77fa78c8e9f68259d54d5b30798e7e12d6385187be42ebd459fcb0b1afde9bcda4badddc7fab303930b513bb15587d3d4e328216da6427c587d8a14
6
+ metadata.gz: ce00c64f33fe8a7aee4291579ecddd24d5d18f0aadaeafbaf4d7cd3b7074f11c8a32e97c154d9e6a769fb7b664e18bb08343bfe72c0dd642b5c1419dfea247ec
7
+ data.tar.gz: bd8e42cdf8dc69619c13b195799fe886c0d41873ed061229c95b37c3ec30fda113ed9964871d5781bf829e0ff3504158a481525253673332bf649774406f7d39
data/README CHANGED
@@ -11,8 +11,10 @@ named after the name field you specify.
11
11
  Compatibility
12
12
  =============
13
13
 
14
- Currently tested against Rails 3.2.13, on Ruby 1.8.7 and 2.0.0p0.
15
- Was also tested compatible with 2.3.14, 3.0.17, and 3.1.8.
14
+ Currently tested against Rails 4.2 (up to 4.2.3), 4.1 (up to 4.1.12), 4.0 (up to 4.0.13), and 3.2 (3.2.18), on Ruby 2.1.5.
15
+
16
+ Was also previously tested compatible with 2.3.14, 3.0.17, and 3.1.8 on Ruby 2.0.0
17
+ or 1.8.7 as appropriate, and may still work for them.
16
18
 
17
19
 
18
20
  Example
@@ -16,19 +16,22 @@ named after the name field you specify.
16
16
  Compatibility
17
17
  =============
18
18
 
19
- Currently tested against Rails 3.2.19, 4.0.8, and 4.1.1, on Ruby 2.0.0.
20
- Previous versions were also tested compatible with 3.0.17 and 3.1.8 and it may still be but they're not supported.
19
+ Currently tested against Rails 4.2 (up to 4.2.3), 4.1 (up to 4.1.12), 4.0 (up to 4.0.13), and 3.2 (3.2.18), on Ruby 2.1.5.
20
+
21
+ Was also previously tested compatible with 2.3.14, 3.0.17, and 3.1.8 on Ruby 2.0.0
22
+ or 1.8.7 as appropriate, and may still work for them.
21
23
  EOF
22
24
  gem.has_rdoc = false
23
25
  gem.author = "Will Bryant"
24
26
  gem.email = "will.bryant@gmail.com"
25
27
  gem.homepage = "http://github.com/willbryant/constant_table_saver"
26
-
28
+ gem.license = "MIT"
29
+
27
30
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
28
31
  gem.files = `git ls-files`.split("\n")
29
32
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
30
33
  gem.require_path = "lib"
31
-
34
+
32
35
  gem.add_dependency "activerecord"
33
36
  gem.add_development_dependency "rake"
34
37
  gem.add_development_dependency "sqlite3"
@@ -1,3 +1,3 @@
1
1
  module ConstantTableSaver
2
- VERSION = '4.1.1'
2
+ VERSION = '4.2.0'
3
3
  end
@@ -53,7 +53,9 @@ module ConstantTableSaver
53
53
  def find_by_sql(sql, binds = [])
54
54
  @find_by_sql ||= {
55
55
  :all => all.to_sql,
56
- :id => relation.where(relation.table[primary_key].eq(connection.substitute_at(columns_hash[primary_key], 1))).limit(1),
56
+ :id => relation.where(relation.table[primary_key].eq(connection.substitute_at(columns_hash[primary_key], 0))).limit(1).
57
+ tap {|r| r.bind_values += [[columns_hash[primary_key], :undefined]]}. # work around AR 4.1.9-4.1.x (but not 4.2.x) calling nil.first if there's no bind_values
58
+ arel,
57
59
  :first => relation.order(relation.table[primary_key].asc).limit(1).to_sql,
58
60
  :last => relation.order(relation.table[primary_key].desc).limit(1).to_sql,
59
61
  }
@@ -45,9 +45,9 @@ class ConstantTableSaverTest < ActiveSupport::TestCase
45
45
 
46
46
  def assert_queries(num = 1)
47
47
  ::SQLCounter.clear_log
48
- yield
49
- ensure
48
+ result = yield
50
49
  assert_equal num, ::SQLCounter.log.size, "#{::SQLCounter.log.size} instead of #{num} queries were executed.#{::SQLCounter.log.size == 0 ? '' : "\nQueries:\n#{::SQLCounter.log.join("\n")}"}"
50
+ result
51
51
  end
52
52
 
53
53
  def assert_no_queries(&block)
@@ -78,11 +78,14 @@ class ConstantTableSaverTest < ActiveSupport::TestCase
78
78
 
79
79
  test "it caches find(id) results" do
80
80
  @pie = StandardPie.find(1)
81
+ @other_pie = StandardPie.find(2)
81
82
  assert_queries(1) do
82
83
  assert_equal @pie.attributes, ConstantPie.find(1).attributes
84
+ assert_equal @other_pie.attributes, ConstantPie.find(2).attributes
83
85
  end
84
86
  assert_no_queries do
85
87
  assert_equal @pie.attributes, ConstantPie.find(1).attributes
88
+ assert_equal @other_pie.attributes, ConstantPie.find(2).attributes
86
89
  end
87
90
  end
88
91
 
data/test/test_helper.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require 'rubygems'
2
2
 
3
+ puts "Rails: #{ENV['RAILS_VERSION'] || 'default'}"
4
+ puts "Env: #{ENV['RAILS_ENV'] || 'not set'}"
3
5
  gem 'minitest', (ENV['RAILS_VERSION'] =~ /^(3\.|4\.0)/ ? '~> 4.0' : nil)
4
6
  gem 'activesupport', ENV['RAILS_VERSION']
5
7
  gem 'activerecord', ENV['RAILS_VERSION']
data/test_all.rb ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'yaml'
4
+
5
+ rails_versions = ["4.2.0".."4.2.3", "4.1.07".."4.1.12", "4.0.13", "3.2.18"].flat_map {|spec| Array(spec).collect {|v| v.gsub /.0(\d)/, '.\\1'}}
6
+ rails_envs = YAML.load(File.read("test/database.yml")).keys
7
+
8
+ rails_envs.each do |env|
9
+ rails_versions.each do |version|
10
+ puts "*"*40
11
+ system "RAILS_ENV=#{env} RAILS_VERSION=#{version} rake" or exit(1)
12
+ end
13
+ end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: constant_table_saver
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Will Bryant
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-18 00:00:00.000000000 Z
11
+ date: 2015-07-06 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
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: sqlite3
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description: |
@@ -63,14 +63,16 @@ description: |
63
63
  Compatibility
64
64
  =============
65
65
 
66
- Currently tested against Rails 3.2.19, 4.0.8, and 4.1.1, on Ruby 2.0.0.
67
- Previous versions were also tested compatible with 3.0.17 and 3.1.8 and it may still be but they're not supported.
66
+ Currently tested against Rails 4.2 (up to 4.2.3), 4.1 (up to 4.1.12), 4.0 (up to 4.0.13), and 3.2 (3.2.18), on Ruby 2.1.5.
67
+
68
+ Was also previously tested compatible with 2.3.14, 3.0.17, and 3.1.8 on Ruby 2.0.0
69
+ or 1.8.7 as appropriate, and may still work for them.
68
70
  email: will.bryant@gmail.com
69
71
  executables: []
70
72
  extensions: []
71
73
  extra_rdoc_files: []
72
74
  files:
73
- - .gitignore
75
+ - ".gitignore"
74
76
  - Gemfile
75
77
  - MIT-LICENSE
76
78
  - README
@@ -86,8 +88,10 @@ files:
86
88
  - test/fixtures/pies.yml
87
89
  - test/schema.rb
88
90
  - test/test_helper.rb
91
+ - test_all.rb
89
92
  homepage: http://github.com/willbryant/constant_table_saver
90
- licenses: []
93
+ licenses:
94
+ - MIT
91
95
  metadata: {}
92
96
  post_install_message:
93
97
  rdoc_options: []
@@ -95,12 +99,12 @@ require_paths:
95
99
  - lib
96
100
  required_ruby_version: !ruby/object:Gem::Requirement
97
101
  requirements:
98
- - - '>='
102
+ - - ">="
99
103
  - !ruby/object:Gem::Version
100
104
  version: '0'
101
105
  required_rubygems_version: !ruby/object:Gem::Requirement
102
106
  requirements:
103
- - - '>='
107
+ - - ">="
104
108
  - !ruby/object:Gem::Version
105
109
  version: '0'
106
110
  requirements: []