active_record_block_matchers 0.1.0 → 0.1.1

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: 699fefdd842a22464b8b9b2a1c0e993915105a37
4
- data.tar.gz: d49c20719ea62e4a90b993d0c164c720bf788c40
3
+ metadata.gz: 76aa63f8b10ab12208d486f38962b648d49c8789
4
+ data.tar.gz: a2d7d99eb3bb735bbfabd2a1192b0fc54e2f2194
5
5
  SHA512:
6
- metadata.gz: 9809a07a608e39c2a693316fb53433f70424940b3a81d287209b63a0bfe10cc1e74ba737bcf0c9792b9f36c0e5cf7d93ed0eb90e0d7076b905cf17c30a087e5c
7
- data.tar.gz: 584e1aef5720c1ea61066ade5bcc0d0e43b85f6624b7cfa467614cd7e3211e9f45c3dd8655c6d99bc498a5535a01d8229728f9fddc8c2fda29ca96834334ef62
6
+ metadata.gz: 9b8832aeb00039b04ca2a8897d5507d3bbac87352ed13bc08ec3846472297a5045097d073bdbd23728849fe022b38bde9feaba247ae2eec6b6f52371355519e2
7
+ data.tar.gz: 9e94d9770a73a56401bbb8f7334328fd8eb67c241c0400093eaa8d051bdb49605b65046892ac6f4f9ad27c937bc5ce9c774149761eb704e644fc21794ebf8d36
data/README.md CHANGED
@@ -22,8 +22,30 @@ Or install it yourself as:
22
22
 
23
23
  #### `create_a_new`
24
24
 
25
+ aliases: `create_a`, `create_an`
26
+
25
27
  Example:
26
28
 
29
+ ```ruby
30
+ expect { User.create! }.to create_a_new(User)
31
+ ```
32
+
33
+ This can be very useful for controller tests:
34
+
35
+ ```ruby
36
+ expect { post :create, user: user_params }.to create_a_new(User)
37
+ ```
38
+
39
+ You can chain `.with_attributes` as well to define a list of values you expect the new object to have. This works with both database attributes and computed values.
40
+
41
+ ```ruby
42
+ expect { User.create!(username: "bob") }
43
+ .to create_a_new(User)
44
+ .with_attributes(username: "bob")
45
+ ```
46
+
47
+ This is a great way to test ActiveReocrd hooks on your model. For example, if your User model downcases all usernames before saving them to the database, you can test it like this:
48
+
27
49
  ```ruby
28
50
  expect { User.create!(username: "BOB") }
29
51
  .to create_a_new(User)
@@ -21,10 +21,11 @@ Gem::Specification.new do |spec|
21
21
  spec.required_ruby_version = ">= 1.9.3"
22
22
 
23
23
  spec.add_dependency "activerecord", ">= 3.2.0"
24
- spec.add_dependency "rspec", ">= 3.0.0"
24
+ spec.add_dependency "rspec-expectations", ">= 3.0.0"
25
25
 
26
26
  spec.add_development_dependency "bundler", "~> 1.8"
27
27
  spec.add_development_dependency "rake", "~> 10.0"
28
+ spec.add_development_dependency "rspec", "~> 3.2"
28
29
  spec.add_development_dependency "pry", "~> 0.10.1"
29
30
  spec.add_development_dependency "sqlite3", "~> 1.3.10"
30
31
  spec.add_development_dependency "standalone_migrations", "~> 2.1.5"
@@ -1,5 +1,5 @@
1
1
  require "active_record_block_matchers/version"
2
- require "rspec"
2
+ require "rspec/expectations"
3
3
  require "active_record"
4
4
  require "active_record_block_matchers/config"
5
5
  require "active_record_block_matchers/create_a_matcher"
@@ -9,7 +9,8 @@ RSpec::Matchers.define :create_a_new do |klass|
9
9
  @attributes ||= {}
10
10
  time_before = Time.current
11
11
  block.call
12
- @created_records = klass.where("? > ?", ActiveRecordBlockMatchers::Config.created_at_column_name, time_before)
12
+ column_name = ActiveRecordBlockMatchers::Config.created_at_column_name
13
+ @created_records = klass.where("#{column_name} > ?", time_before)
13
14
  return false unless @created_records.count == 1
14
15
 
15
16
  @failures = []
@@ -1,3 +1,3 @@
1
1
  module ActiveRecordBlockMatchers
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_block_matchers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Wallace
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-02-25 00:00:00.000000000 Z
11
+ date: 2015-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.2.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: rspec-expectations
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.2'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.2'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: pry
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -153,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
167
  version: '0'
154
168
  requirements: []
155
169
  rubyforge_project:
156
- rubygems_version: 2.4.5
170
+ rubygems_version: 2.4.3
157
171
  signing_key:
158
172
  specification_version: 4
159
173
  summary: Additional RSpec custom matchers for ActiveRecord