active_record_disabler 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.md +0 -5
  2. data/lib/active_record_disabler.rb +18 -5
  3. metadata +1 -1
data/README.md CHANGED
@@ -14,9 +14,4 @@ ActiveRecord.enable
14
14
 
15
15
  User.first
16
16
  #=> #<User id: 1, name: "John Smith">
17
-
18
- ActiveRecord.disable "Can't touch this"
19
-
20
- User.first
21
- # ActiveRecordDisabledError: Can't touch this
22
17
  ```
@@ -4,15 +4,28 @@ class ActiveRecordDisabledError < StandardError; end
4
4
 
5
5
  module ActiveRecord
6
6
  class << self
7
+ def enabled?
8
+ @enabled
9
+ end
10
+
7
11
  def enable
8
- Relation.send(:alias_method, :exec_queries, :ar_enabled)
12
+ @enabled = true
9
13
  end
10
14
 
11
- def disable(message = "Active Record is disabled")
12
- Relation.send(:alias_method, :ar_enabled, :exec_queries)
13
- Relation.send(:define_method, :ar_disabled) { raise ActiveRecordDisabledError, message }
15
+ def disable
16
+ @enabled = false
17
+ end
18
+ end
19
+
20
+ class Relation
21
+ alias_method :_exec_queries, :exec_queries
14
22
 
15
- Relation.send(:alias_method, :exec_queries, :ar_disabled)
23
+ def exec_queries(*args)
24
+ if ActiveRecord.enabled?
25
+ _exec_queries(*args)
26
+ else
27
+ raise ActiveRecordDisabledError, "Active Record is disabled"
28
+ end
16
29
  end
17
30
  end
18
31
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_disabler
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: