active_record_block_matchers 0.1.0 → 0.1.1

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