once-ler 1.2.0 → 2.0.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
  SHA256:
3
- metadata.gz: 494ac049dd247bc5578276f65940cc08171bf71002937bfe3c8f14514433bdc5
4
- data.tar.gz: 701e2e2d48d4243ea0d6ddc43f94f870d9ae36b8ec61330f17e45e8e47b0cdf8
3
+ metadata.gz: cd1f2be3add85a6cc1457b6c839adb76fbeb2f61269cfe1b4235824f0a93261d
4
+ data.tar.gz: 8b843468d5fcd8706126e2471865c438df311942aa438b26b263361f9eace2d3
5
5
  SHA512:
6
- metadata.gz: 6fa2391255b52c952b8fe9976310f937b2bf79a3e69836b2d10948faadee764ca9e92efa5d42aa14a31eee5b9b0a83cf7ee1c340caad79846f20cd321c937447
7
- data.tar.gz: 6758091868cddcb4bf47d1e8122440e11ece9b58cb022e586dc142f9bcd629a4354645f71d102d9247c83dba27b22dce4abbc1b18ce37ac9f4d6af50a363c5c1
6
+ metadata.gz: 9fb8e9cd8a0186d980b0679609457c621fdca31018ced649fa0ae685cf2a9de5df1e0233ff4ed420aee873bc2f61b827d763a7eb45d0203d289a5039d0e61fd8
7
+ data.tar.gz: 0d2b59543918dfa2bda68a96a81ee68e9aab2f97ce74d7911a00a59e53eefaf2de87ec59f4cb6895015bd5ae5aefb57027e0b4058bfaa1bfb8c1e7f294a5b9c0
data/README.md CHANGED
@@ -129,8 +129,7 @@ of activerecord callbacks/inserts/updates.
129
129
  ## Caveats
130
130
 
131
131
  * If you are doing anything database-y, you need to use transactional
132
- tests (either via `use_transactional_fixtures=true`, or something like
133
- [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner))
132
+ test via `use_transactional_fixtures=true`
134
133
  * Your once'd blocks should have no side effects other than database
135
134
  statements, return values, and instance variables.
136
135
  * Your return values and instance variables:
@@ -113,21 +113,6 @@ module Onceler
113
113
  superclass.onceler
114
114
  end
115
115
 
116
- # Set this if you have multiple (or different) conns you will be
117
- # once-ler'ing. Can either be an enumerable, or a proc that returns
118
- # one. Note that if given a proc, it will only be called once (the
119
- # first time it's needed) and cached after that.
120
- #
121
- # context "Foo" do
122
- # self.onceler_connections = -> { [Foo.connection] }
123
- # ...
124
- attr_writer :onceler_connections
125
- def onceler_connections
126
- @onceler_connections ||= [ActiveRecord::Base.connection]
127
- @onceler_connections = instance_eval(&@onceler_connections) if @onceler_connections.respond_to?(:call)
128
- @onceler_connections
129
- end
130
-
131
116
  private
132
117
 
133
118
  def add_onceler_hooks!
@@ -1,16 +1,7 @@
1
1
  require "onceler/recordable"
2
- require "onceler/transactions"
3
2
 
4
3
  module Onceler
5
4
  class << self
6
- def open_transactions
7
- @open_transactions ||= 0
8
- end
9
-
10
- def open_transactions=(val)
11
- @open_transactions = val
12
- end
13
-
14
5
  attr_accessor :recording
15
6
 
16
7
  def recording?
@@ -19,8 +10,6 @@ module Onceler
19
10
  end
20
11
 
21
12
  class Recorder
22
- include Transactions
23
-
24
13
  attr_accessor :tape
25
14
 
26
15
  def initialize(group_class)
@@ -61,8 +50,8 @@ module Onceler
61
50
 
62
51
  def record!
63
52
  Onceler.recording = true
64
- begin_transactions!
65
53
  @tape = @group_class.new
54
+ @tape.setup_fixtures
66
55
  @tape.send :extend, Recordable
67
56
  @tape.copy_from(parent_tape) if parent_tape
68
57
 
@@ -92,7 +81,7 @@ module Onceler
92
81
 
93
82
  def reset!
94
83
  run_before_hooks(:reset)
95
- rollback_transactions!
84
+ @tape&.teardown_fixtures
96
85
  run_after_hooks(:reset)
97
86
  end
98
87
 
@@ -135,25 +124,6 @@ module Onceler
135
124
  instance.instance_variable_set(key, value)
136
125
  end
137
126
  end
138
-
139
- def transactional_connections
140
- @group_class.onceler_connections
141
- end
142
-
143
- def begin_transactions!
144
- Onceler.open_transactions += 1
145
- transactional_connections.each do |connection|
146
- begin_transaction(connection)
147
- end
148
- end
149
-
150
- def rollback_transactions!
151
- transactional_connections.each do |connection|
152
- rollback_transaction(connection)
153
- end
154
- ensure
155
- Onceler.open_transactions -= 1
156
- end
157
127
  end
158
128
 
159
129
  class Recording
data/lib/onceler.rb CHANGED
@@ -4,11 +4,3 @@ require "rubygems"
4
4
  require "onceler/basic_helpers"
5
5
  require "onceler/configuration"
6
6
  require "onceler/extensions/active_record"
7
-
8
- if defined?(DatabaseCleaner)
9
- unless !DatabaseCleaner.const_defined?("VERSION") ||
10
- Gem::Requirement.new(">= 1.7").satisfied_by?(Gem::Version.new(DatabaseCleaner::VERSION))
11
- raise "Onceler in only compatible with DatabaseCleaner >= 1.7."
12
- end
13
- require "onceler/extensions/database_cleaner"
14
- end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: once-ler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Jensen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-13 00:00:00.000000000 Z
11
+ date: 2022-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
19
+ version: '6.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '6.2'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '5.2'
29
+ version: '6.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '6.2'
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '3.6'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec-rails
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '4.0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '4.0'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: appraisal
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -86,11 +100,8 @@ files:
86
100
  - lib/onceler/basic_helpers.rb
87
101
  - lib/onceler/configuration.rb
88
102
  - lib/onceler/extensions/active_record.rb
89
- - lib/onceler/extensions/database_cleaner.rb
90
103
  - lib/onceler/recordable.rb
91
104
  - lib/onceler/recorder.rb
92
- - lib/onceler/transactions.rb
93
- - lib/onceler/transactions/active_record.rb
94
105
  homepage: http://github.com/instructure/once-ler
95
106
  licenses:
96
107
  - MIT
@@ -110,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
121
  - !ruby/object:Gem::Version
111
122
  version: 2.6.0
112
123
  requirements: []
113
- rubygems_version: 3.2.15
124
+ rubygems_version: 3.1.4
114
125
  signing_key:
115
126
  specification_version: 4
116
127
  summary: rspec supercharger
@@ -1,13 +0,0 @@
1
- require "database_cleaner/active_record/transaction"
2
-
3
- class DatabaseCleaner::ActiveRecord::Transaction
4
- include ::Onceler::Transactions
5
-
6
- def start
7
- begin_transaction(connection_class.connection)
8
- end
9
-
10
- def clean
11
- rollback_transaction(connection_class.connection)
12
- end
13
- end
@@ -1,11 +0,0 @@
1
- module Onceler
2
- module Transactions
3
- def begin_transaction(conn)
4
- conn.begin_transaction joinable: false
5
- end
6
-
7
- def rollback_transaction(conn)
8
- conn.rollback_transaction
9
- end
10
- end
11
- end
@@ -1,2 +0,0 @@
1
- require "active_record"
2
- require "onceler/transactions/active_record"