nosql 0.0.2 → 0.0.3

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.
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # Nosql
2
2
 
3
- TODO: Write a gem description
3
+ A simple ActiveRecord 'adapter' that raises an exception whenever the database is used. This is to ensure unit tests do not integrate with a database.
4
+
5
+ When testing scopes and complex queries, applying a tag can disable this gem and replace the normal adapter implementation.
6
+
7
+ [Write up on usage](http://pivotallabs.com/testing-strategies-rspec-nulldb-nosql)
4
8
 
5
9
  ## Installation
6
10
 
@@ -18,7 +22,18 @@ Or install it yourself as:
18
22
 
19
23
  ## Usage
20
24
 
21
- TODO: Write usage instructions here
25
+ If you were using RSpec and tagged tests which did hit the datbase with ':db', then you could use the following.
26
+
27
+ config.around(:each, type: :model) do |example|
28
+ if example.metadata[:db]
29
+ Nosql::Connection.disable!
30
+ example.run
31
+ else
32
+ Nosql::Connection.enable!
33
+ example.run
34
+ Nosql::Connection.disable!
35
+ end
36
+ end
22
37
 
23
38
  ## Contributing
24
39
 
@@ -27,3 +42,8 @@ TODO: Write usage instructions here
27
42
  3. Commit your changes (`git commit -am 'Add some feature'`)
28
43
  4. Push to the branch (`git push origin my-new-feature`)
29
44
  5. Create new Pull Request
45
+
46
+ ## Authors
47
+
48
+ * [Robbie](https://github.com/robb1e)
49
+ * [JT](https://github.com/jtarchie)
data/lib/nosql.rb CHANGED
@@ -15,7 +15,7 @@ module Nosql
15
15
  connection.class_eval do
16
16
  alias_method "original_#{method_name}", method_name
17
17
  define_method(method_name) do |*args|
18
- raise Nosql::Error
18
+ raise Nosql::Error.new(args)
19
19
  end
20
20
  end
21
21
  end
data/lib/nosql/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Nosql
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/spec/nosql_spec.rb CHANGED
@@ -11,17 +11,10 @@ end
11
11
  class Post < ActiveRecord::Base; end
12
12
 
13
13
  describe "With ActiveRecord::Base" do
14
- context "with a real db connection" do
15
- it "can create a record" do
16
- expect {
17
- Post.create
18
- }.to change { Post.count }.by(1)
19
- end
20
- end
21
14
 
22
15
  context "with a null db connection" do
23
16
  before do
24
- ActiveRecord::Base.connection.stub(:exec).and_raise(Nosql::Error)
17
+ Post.first
25
18
  ActiveRecord::Base.connection.stub(:exec).and_raise(Nosql::Error)
26
19
  ActiveRecord::Base.connection.stub(:exec_query).and_raise(Nosql::Error)
27
20
  end
@@ -53,19 +46,20 @@ describe "With ActiveRecord::Base" do
53
46
  it "can new an instance up" do
54
47
  expect {
55
48
  Post.new
56
- }.to_not raise_error(Nosql::Error)
49
+ }.to_not raise_error
57
50
  end
58
51
 
59
- it "can create stub models" do
52
+ xit "can create stub models" do
60
53
  expect {
61
54
  stub_model(:post)
62
- }.to_not raise_error(Nosql::Error)
55
+ }.to_not raise_error
63
56
  end
64
57
 
65
58
  end
66
59
 
67
60
  context "with a nosql adapter connection" do
68
61
  before do
62
+ Post.first
69
63
  Nosql::Connection.enable!
70
64
  end
71
65
 
@@ -100,14 +94,23 @@ describe "With ActiveRecord::Base" do
100
94
  it "can new an instance up" do
101
95
  expect {
102
96
  Post.new
103
- }.to_not raise_error(Nosql::Error)
97
+ }.to_not raise_error
104
98
  end
105
99
 
106
- it "can create stub models" do
100
+ xit "can create stub models" do
107
101
  expect {
108
102
  stub_model(:post)
109
- }.to_not raise_error(Nosql::Error)
103
+ }.to_not raise_error
110
104
  end
111
105
 
112
106
  end
107
+
108
+ context "with a real db connection" do
109
+ it "can create a record" do
110
+ expect {
111
+ Post.create
112
+ }.to change { Post.count }.by(1)
113
+ end
114
+ end
115
+
113
116
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nosql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-02 00:00:00.000000000 Z
12
+ date: 2013-08-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sqlite3
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
97
  version: '0'
98
98
  requirements: []
99
99
  rubyforge_project:
100
- rubygems_version: 1.8.24
100
+ rubygems_version: 1.8.25
101
101
  signing_key:
102
102
  specification_version: 3
103
103
  summary: A simple ActiveRecord 'adapter' that raises on any call