rate_limiter 0.0.4 → 0.0.5

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/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## v0.0.5
2
+
3
+ * Enabling/Disabling for individual controllers actually works now.
4
+
5
+ ## v0.0.4
6
+
7
+ * Added dummy Rails application for testing.
8
+ * Updated development dependencies.
9
+
1
10
  ## v0.0.3
2
11
 
3
12
  * Added more if and unless conditions for rate limiting.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rate_limiter (0.0.3)
4
+ rate_limiter (0.0.5)
5
5
  activerecord (~> 3.2)
6
6
  railties (~> 3.2)
7
7
 
@@ -1,3 +1,5 @@
1
+ require 'singleton'
2
+
1
3
  module RateLimiter
2
4
  class Config
3
5
  include Singleton
@@ -1,9 +1,8 @@
1
1
  module RateLimiter
2
2
  module Controller
3
3
  def self.included(base)
4
- base.before_filter :set_rate_limiter_source
5
- base.before_filter :set_rate_limiter_controller_info
6
4
  base.before_filter :set_rate_limiter_enabled_for_controller
5
+ base.before_filter :set_rate_limiter_source, :set_rate_limiter_controller_info
7
6
  end
8
7
 
9
8
  protected
@@ -23,11 +22,11 @@ module RateLimiter
23
22
  private
24
23
 
25
24
  def set_rate_limiter_source
26
- ::RateLimiter.source = user_for_rate_limiter
25
+ ::RateLimiter.source = user_for_rate_limiter if rate_limiter_enabled_for_controller
27
26
  end
28
27
 
29
28
  def set_rate_limiter_controller_info
30
- ::RateLimiter.controller_info = info_for_rate_limiter
29
+ ::RateLimiter.controller_info = info_for_rate_limiter if rate_limiter_enabled_for_controller
31
30
  end
32
31
 
33
32
  def set_rate_limiter_enabled_for_controller
@@ -5,7 +5,7 @@ module RateLimiter
5
5
  end
6
6
 
7
7
  module ClassMethods
8
- def rate_limit options = {}
8
+ def rate_limit(options = {})
9
9
  send :include, InstanceMethods
10
10
 
11
11
  class_attribute :rate_limit_on
@@ -23,15 +23,15 @@ module RateLimiter
23
23
  class_attribute :rate_limit_enabled_for_model
24
24
  self.rate_limit_enabled_for_model = true
25
25
 
26
- def rate_limit_off
27
- self.rate_limit_enabled_for_model = false
28
- end
26
+ self.before_create :check_rate_limit
27
+ end
29
28
 
30
- def rate_limit_on
31
- self.rate_limit_enabled_for_model = true
32
- end
29
+ def rate_limit_off
30
+ self.rate_limit_enabled_for_model = false
31
+ end
33
32
 
34
- self.before_create :check_rate_limit
33
+ def rate_limit_on
34
+ self.rate_limit_enabled_for_model = true
35
35
  end
36
36
  end
37
37
 
@@ -1,3 +1,3 @@
1
1
  module RateLimiter
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.5'
3
3
  end
data/lib/rate_limiter.rb CHANGED
@@ -1,5 +1,3 @@
1
- require 'singleton'
2
-
3
1
  require 'rate_limiter/config'
4
2
  require 'rate_limiter/controller'
5
3
  require 'rate_limiter/model'
@@ -14,11 +12,11 @@ module RateLimiter
14
12
  end
15
13
 
16
14
  def self.enabled_for_controller=(value)
17
- RateLimiter.store[:request_enabled_for_controller] = value
15
+ rate_limiter_store[:request_enabled_for_controller] = value
18
16
  end
19
17
 
20
18
  def self.enabled_for_controller?
21
- !!RateLimiter.store[:request_enabled_for_controller]
19
+ !!rate_limiter_store[:request_enabled_for_controller]
22
20
  end
23
21
 
24
22
  def self.timestamp_field=(field_name)
@@ -30,25 +28,25 @@ module RateLimiter
30
28
  end
31
29
 
32
30
  def self.source=(value)
33
- RateLimiter.store[:source] = value
31
+ rate_limiter_store[:source] = value
34
32
  end
35
33
 
36
34
  def self.source
37
- RateLimiter.store[:source]
35
+ rate_limiter_store[:source]
38
36
  end
39
37
 
40
38
  def self.controller_info=(value)
41
- RateLimiter.store[:controller_info] = value
39
+ rate_limiter_store[:controller_info] = value
42
40
  end
43
41
 
44
42
  def self.controller_info
45
- RateLimiter.store[:controller_info]
43
+ rate_limiter_store[:controller_info]
46
44
  end
47
45
 
48
46
  private
49
47
 
50
- def self.store
51
- Thread.current[:rate_limiter] || { :request_enabled_for_controller => true }
48
+ def self.rate_limiter_store
49
+ Thread.current[:rate_limiter] ||= { :request_enabled_for_controller => true }
52
50
  end
53
51
 
54
52
  def self.config
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rate_limiter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
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: 2012-12-14 00:00:00.000000000 Z
12
+ date: 2012-12-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties