remockable 0.3.1 → 0.3.2

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: de3199603ae0cbcc6724c562cc3cd30f765c9f91
4
- data.tar.gz: 6f3a4fef9e85c0d7e2aafd582ddfd699c5fefeb8
3
+ metadata.gz: dad8f07d7c08c5c6eed18c23b3c9b0f969ecd05b
4
+ data.tar.gz: 2479532b5c0a6e75736ebfb98145866d17d727ab
5
5
  SHA512:
6
- metadata.gz: e8b6652ff81f5252f8a74a14eb18c27470677bb76a11efc65e3a06fc60812c90cf4b71e95ef33427493905b3ad1c3c7a57219f46febb5ed5447a55893fd6a291
7
- data.tar.gz: d9fb6e23a72385726ab12299550248506e78f24029f53b415cabf29af497d3a0c93de79f9526d2addc8ea56b1b7a9038c0f26ea26389b614a74e02ef8297115b
6
+ metadata.gz: 184bae3a39850bc84632b23aa56f5c75ca7e1fcec943ecdf6949e27924f40d705a6da2bb8e93aa04b8847c2f11a5af32f23e1c8a44f8e8712d6b2a144a74144f
7
+ data.tar.gz: c4c5864043a9a1f5edb30e6bf2a3b17497426337af07ab02fb81aaa37a82e13b57f6f9a1c5cf8abd226c48aa92443a26e98bdbdd42855eb50f8f9392381ccd7d
data/.gitignore CHANGED
@@ -5,3 +5,4 @@
5
5
  Gemfile.lock
6
6
  bin
7
7
  pkg
8
+ spec/examples.txt
data/.travis.yml CHANGED
@@ -1,5 +1,20 @@
1
1
  language: ruby
2
2
  script: bundle exec rspec
3
+
4
+ gemfile:
5
+ - gemfiles/rails_4.2.gemfile
6
+ - gemfiles/rails_5.0.gemfile
7
+
3
8
  rvm:
4
- - 2.0
5
- - 2.1
9
+ - 2.0.0
10
+ - 2.1.10
11
+ - 2.2.6
12
+ - 2.3.3
13
+ - 2.4.0
14
+
15
+ matrix:
16
+ exclude:
17
+ - rvm: 2.0.0
18
+ gemfile: gemfiles/rails_5.0.gemfile
19
+ - rvm: 2.1.10
20
+ gemfile: gemfiles/rails_5.0.gemfile
data/Appraisals ADDED
@@ -0,0 +1,11 @@
1
+ appraise 'rails-4.2' do
2
+ gem 'activemodel', '~> 4.2'
3
+ gem 'activerecord', '~> 4.2'
4
+ gem 'activesupport', '~> 4.2'
5
+ end
6
+
7
+ appraise 'rails-5.0' do
8
+ gem 'activemodel', '~> 5.0'
9
+ gem 'activerecord', '~> 5.0'
10
+ gem 'activesupport', '~> 5.0'
11
+ end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.2 (2017-01-16)
4
+
5
+ * Support Rails 5.0 ([Tyler Hunt][tylerhunt])
6
+
3
7
  ## 0.3.1 (2015-10-09)
4
8
 
5
9
  * Fix circular reference error in Ruby 2.2 ([Nathaniel Bibler][nbibler])
data/README.markdown CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  [![Build Status][travis-image]][travis] [![Dependency Status][gemnasium-image]][gemnasium] [![Gem Version][rubygems-image]][rubygems]
4
4
 
5
- [travis]: http://travis-ci.org/tylerhunt/remockable
6
- [travis-image]: https://secure.travis-ci.org/tylerhunt/remockable.png
7
- [gemnasium]: https://gemnasium.com/tylerhunt/remockable
8
- [gemnasium-image]: https://gemnasium.com/tylerhunt/remockable.png
9
- [rubygems]: http://badge.fury.io/rb/remockable
10
- [rubygems-image]: https://badge.fury.io/rb/remockable.png
5
+ [travis]: https://travis-ci.org/tylerhunt/remockable
6
+ [travis-image]: https://travis-ci.org/tylerhunt/remockable.svg?branch=master
7
+ [gemnasium]: https://gemnasium.com/github.com/tylerhunt/remockable
8
+ [gemnasium-image]: https://gemnasium.com/badges/github.com/tylerhunt/remockable.svg
9
+ [rubygems]: https://badge.fury.io/rb/remockable
10
+ [rubygems-image]: https://badge.fury.io/rb/remockable.svg
11
11
 
12
12
  A collection of RSpec 3 matchers to simplify your web app specs.
13
13
 
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org/"
4
+
5
+ gem "activemodel", "~> 4.2"
6
+ gem "activerecord", "~> 4.2"
7
+ gem "activesupport", "~> 4.2"
8
+
9
+ gemspec :path => "../"
@@ -0,0 +1,67 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ remockable (0.3.1)
5
+ activemodel (>= 4.0, < 5.1)
6
+ activerecord (>= 4.0, < 5.1)
7
+ activesupport (>= 4.0, < 5.1)
8
+ rspec-core (~> 3.0)
9
+ rspec-expectations (~> 3.0)
10
+ rspec-mocks (~> 3.0)
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ activemodel (4.2.7.1)
16
+ activesupport (= 4.2.7.1)
17
+ builder (~> 3.1)
18
+ activerecord (4.2.7.1)
19
+ activemodel (= 4.2.7.1)
20
+ activesupport (= 4.2.7.1)
21
+ arel (~> 6.0)
22
+ activesupport (4.2.7.1)
23
+ i18n (~> 0.7)
24
+ json (~> 1.7, >= 1.7.7)
25
+ minitest (~> 5.1)
26
+ thread_safe (~> 0.3, >= 0.3.4)
27
+ tzinfo (~> 1.1)
28
+ appraisal (2.1.0)
29
+ bundler
30
+ rake
31
+ thor (>= 0.14.0)
32
+ arel (6.0.4)
33
+ builder (3.2.3)
34
+ diff-lcs (1.2.5)
35
+ i18n (0.7.0)
36
+ json (1.8.6)
37
+ minitest (5.10.1)
38
+ rake (12.0.0)
39
+ rspec-core (3.5.4)
40
+ rspec-support (~> 3.5.0)
41
+ rspec-expectations (3.5.0)
42
+ diff-lcs (>= 1.2.0, < 2.0)
43
+ rspec-support (~> 3.5.0)
44
+ rspec-mocks (3.5.0)
45
+ diff-lcs (>= 1.2.0, < 2.0)
46
+ rspec-support (~> 3.5.0)
47
+ rspec-support (3.5.0)
48
+ sqlite3 (1.3.13)
49
+ thor (0.19.4)
50
+ thread_safe (0.3.5)
51
+ tzinfo (1.2.2)
52
+ thread_safe (~> 0.1)
53
+
54
+ PLATFORMS
55
+ ruby
56
+
57
+ DEPENDENCIES
58
+ activemodel (~> 4.2)
59
+ activerecord (~> 4.2)
60
+ activesupport (~> 4.2)
61
+ appraisal (~> 2.1)
62
+ rake
63
+ remockable!
64
+ sqlite3 (~> 1.3.4)
65
+
66
+ BUNDLED WITH
67
+ 1.13.7
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org/"
4
+
5
+ gem "activemodel", "~> 5.0"
6
+ gem "activerecord", "~> 5.0"
7
+ gem "activesupport", "~> 5.0"
8
+
9
+ gemspec :path => "../"
@@ -0,0 +1,64 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ remockable (0.3.1)
5
+ activemodel (>= 4.0, < 5.1)
6
+ activerecord (>= 4.0, < 5.1)
7
+ activesupport (>= 4.0, < 5.1)
8
+ rspec-core (~> 3.0)
9
+ rspec-expectations (~> 3.0)
10
+ rspec-mocks (~> 3.0)
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ activemodel (5.0.1)
16
+ activesupport (= 5.0.1)
17
+ activerecord (5.0.1)
18
+ activemodel (= 5.0.1)
19
+ activesupport (= 5.0.1)
20
+ arel (~> 7.0)
21
+ activesupport (5.0.1)
22
+ concurrent-ruby (~> 1.0, >= 1.0.2)
23
+ i18n (~> 0.7)
24
+ minitest (~> 5.1)
25
+ tzinfo (~> 1.1)
26
+ appraisal (2.1.0)
27
+ bundler
28
+ rake
29
+ thor (>= 0.14.0)
30
+ arel (7.1.4)
31
+ concurrent-ruby (1.0.4)
32
+ diff-lcs (1.2.5)
33
+ i18n (0.7.0)
34
+ minitest (5.10.1)
35
+ rake (12.0.0)
36
+ rspec-core (3.5.4)
37
+ rspec-support (~> 3.5.0)
38
+ rspec-expectations (3.5.0)
39
+ diff-lcs (>= 1.2.0, < 2.0)
40
+ rspec-support (~> 3.5.0)
41
+ rspec-mocks (3.5.0)
42
+ diff-lcs (>= 1.2.0, < 2.0)
43
+ rspec-support (~> 3.5.0)
44
+ rspec-support (3.5.0)
45
+ sqlite3 (1.3.13)
46
+ thor (0.19.4)
47
+ thread_safe (0.3.5)
48
+ tzinfo (1.2.2)
49
+ thread_safe (~> 0.1)
50
+
51
+ PLATFORMS
52
+ ruby
53
+
54
+ DEPENDENCIES
55
+ activemodel (~> 5.0)
56
+ activerecord (~> 5.0)
57
+ activesupport (~> 5.0)
58
+ appraisal (~> 2.1)
59
+ rake
60
+ remockable!
61
+ sqlite3 (~> 1.3.4)
62
+
63
+ BUNDLED WITH
64
+ 1.13.7
@@ -11,7 +11,13 @@ RSpec::Matchers.define(:have_column) do
11
11
 
12
12
  match do |actual|
13
13
  if column
14
- options.all? { |key, value| column.send(key) == value }
14
+ options.all? { |key, value|
15
+ if key == :default
16
+ column.send(key) == value.to_s # SQLite3 uses string for default
17
+ else
18
+ column.send(key) == value
19
+ end
20
+ }
15
21
  end
16
22
  end
17
23
 
@@ -11,7 +11,7 @@ RSpec::Matchers.define(:have_default_scope) do
11
11
 
12
12
  if scope.is_a?(ActiveRecord::Relation)
13
13
  if relation
14
- query_matches = scope.arel.to_sql == relation.arel.to_sql
14
+ query_matches = scope.to_sql == relation.to_sql
15
15
  eager_load_matches = scope.eager_load_values == relation.eager_load_values
16
16
  includes_matches = scope.includes_values == relation.includes_values
17
17
  lock_matches = scope.lock_value == relation.lock_value
@@ -16,7 +16,7 @@ RSpec::Matchers.define(:have_scope) do |*name|
16
16
 
17
17
  if scope.is_a?(ActiveRecord::Relation)
18
18
  if relation
19
- query_matches = scope.arel.to_sql == relation.arel.to_sql
19
+ query_matches = scope.to_sql == relation.to_sql
20
20
  eager_load_matches = scope.eager_load_values == relation.eager_load_values
21
21
  includes_matches = scope.includes_values == relation.includes_values
22
22
  lock_matches = scope.lock_value == relation.lock_value
@@ -1,3 +1,3 @@
1
1
  module Remockable
2
- VERSION = '0.3.1'
2
+ VERSION = '0.3.2'
3
3
  end
data/remockable.gemspec CHANGED
@@ -8,12 +8,13 @@ Gem::Specification.new do |spec|
8
8
  spec.homepage = 'http://github.com/tylerhunt/remockable'
9
9
  spec.license = 'MIT'
10
10
 
11
- spec.add_dependency 'activemodel', '~> 4.0'
12
- spec.add_dependency 'activerecord', '~> 4.0'
13
- spec.add_dependency 'activesupport', '~> 4.0'
11
+ spec.add_dependency 'activemodel', '>= 4.0', '< 5.1'
12
+ spec.add_dependency 'activerecord', '>= 4.0', '< 5.1'
13
+ spec.add_dependency 'activesupport', '>= 4.0', '< 5.1'
14
14
  spec.add_dependency 'rspec-core', '~> 3.0'
15
15
  spec.add_dependency 'rspec-expectations', '~> 3.0'
16
16
  spec.add_dependency 'rspec-mocks', '~> 3.0'
17
+ spec.add_development_dependency 'appraisal', '~> 2.1'
17
18
  spec.add_development_dependency 'rake'
18
19
  spec.add_development_dependency 'sqlite3', '~> 1.3.4'
19
20
 
@@ -6,6 +6,8 @@ describe :allow_values_for do
6
6
  let(:model) {
7
7
  build_class :User do
8
8
  include ActiveModel::Validations
9
+
10
+ attr_accessor :one
9
11
  end
10
12
  }
11
13
 
@@ -35,14 +35,30 @@ describe :have_scope do
35
35
  end
36
36
 
37
37
  context 'with an eager_load value' do
38
+ let(:comment_model) { build_class(:Comment, ActiveRecord::Base) }
39
+ let(:post_model) { build_class(:Post, ActiveRecord::Base) }
40
+
41
+ before do
42
+ create_table :comments do |table|
43
+ table.integer :user_id
44
+ end
45
+
46
+ create_table :posts do |table|
47
+ table.integer :user_id
48
+ end
49
+
50
+ model.has_many :comments, anonymous_class: comment_model
51
+ model.has_many :posts, anonymous_class: post_model
52
+ end
53
+
38
54
  it 'matches if the scope exists and the query matches' do
39
- model.instance_eval { scope :loaded, -> { eager_load :order } }
40
- expect(model).to have_scope(:loaded).eager_load(:order)
55
+ model.instance_eval { scope :loaded, -> { eager_load :posts } }
56
+ expect(model).to have_scope(:loaded).eager_load(:posts)
41
57
  end
42
58
 
43
59
  it 'does not match if the query does not match' do
44
- model.instance_eval { scope :loaded, -> { eager_load :order } }
45
- expect(model).to_not have_scope(:loaded).eager_load(:from)
60
+ model.instance_eval { scope :loaded, -> { eager_load :posts } }
61
+ expect(model).to_not have_scope(:loaded).eager_load(:comments)
46
62
  end
47
63
  end
48
64
 
data/spec/spec_helper.rb CHANGED
@@ -4,12 +4,27 @@ require 'active_record'
4
4
  require 'remockable'
5
5
 
6
6
  # Require supporting files with custom matchers and macros, etc.
7
- Dir[File.expand_path('../support/**/*.rb', __FILE__)].each do |file|
8
- require(file)
9
- end
7
+ Dir[File.expand_path('support/**/*.rb', __dir__)].each { |file| require file }
10
8
 
11
9
  RSpec.configure do |config|
12
- config.mock_with :rspec
13
- config.filter_run focus: true
10
+ config.filter_run :focus
14
11
  config.run_all_when_everything_filtered = true
12
+ config.example_status_persistence_file_path = 'spec/examples.txt'
13
+
14
+ if config.files_to_run.one?
15
+ config.default_formatter = 'doc'
16
+ end
17
+
18
+ config.order = :random
19
+ Kernel.srand config.seed
20
+
21
+ config.expect_with :rspec do |expectations|
22
+ expectations.syntax = :expect
23
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
24
+ end
25
+
26
+ config.mock_with :rspec do |mocks|
27
+ mocks.syntax = :expect
28
+ mocks.verify_partial_doubles = true
29
+ end
15
30
  end
@@ -54,6 +54,12 @@ shared_examples_for 'a validation matcher' do
54
54
  end
55
55
 
56
56
  context "with option #{option_name.inspect} with a procedure" do
57
+ before do
58
+ model.class_eval do
59
+ define_method(:skip_validations) {}
60
+ end
61
+ end
62
+
57
63
  let(:procedure) { ->(record) { record.skip_validations } }
58
64
 
59
65
  let(:options) {
metadata CHANGED
@@ -1,57 +1,75 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remockable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Hunt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-09 00:00:00.000000000 Z
11
+ date: 2017-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.1'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '4.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.1'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: activerecord
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - "~>"
37
+ - - ">="
32
38
  - !ruby/object:Gem::Version
33
39
  version: '4.0'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '5.1'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
- - - "~>"
47
+ - - ">="
39
48
  - !ruby/object:Gem::Version
40
49
  version: '4.0'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '5.1'
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: activesupport
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
- - - "~>"
57
+ - - ">="
46
58
  - !ruby/object:Gem::Version
47
59
  version: '4.0'
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '5.1'
48
63
  type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
52
- - - "~>"
67
+ - - ">="
53
68
  - !ruby/object:Gem::Version
54
69
  version: '4.0'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '5.1'
55
73
  - !ruby/object:Gem::Dependency
56
74
  name: rspec-core
57
75
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +112,20 @@ dependencies:
94
112
  - - "~>"
95
113
  - !ruby/object:Gem::Version
96
114
  version: '3.0'
115
+ - !ruby/object:Gem::Dependency
116
+ name: appraisal
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '2.1'
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '2.1'
97
129
  - !ruby/object:Gem::Dependency
98
130
  name: rake
99
131
  requirement: !ruby/object:Gem::Requirement
@@ -131,11 +163,16 @@ files:
131
163
  - ".gitignore"
132
164
  - ".rspec"
133
165
  - ".travis.yml"
166
+ - Appraisals
134
167
  - CHANGELOG.md
135
168
  - Gemfile
136
169
  - LICENSE
137
170
  - README.markdown
138
171
  - Rakefile
172
+ - gemfiles/rails_4.2.gemfile
173
+ - gemfiles/rails_4.2.gemfile.lock
174
+ - gemfiles/rails_5.0.gemfile
175
+ - gemfiles/rails_5.0.gemfile.lock
139
176
  - lib/remockable.rb
140
177
  - lib/remockable/active_model.rb
141
178
  - lib/remockable/active_model/allow_values_for.rb
@@ -209,7 +246,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
246
  version: '0'
210
247
  requirements: []
211
248
  rubyforge_project:
212
- rubygems_version: 2.4.5
249
+ rubygems_version: 2.5.2
213
250
  signing_key:
214
251
  specification_version: 4
215
252
  summary: A collection of RSpec matchers for web apps.