lib/nexaas/throttle/guardian.rb in nexaas-throttle-2.0.1 vs lib/nexaas/throttle/guardian.rb in nexaas-throttle-2.0.2
- old
+ new
@@ -5,10 +5,11 @@
class Guardian
def initialize(request, configuration)
@request = request
@token = configuration.request_identifier.new(request).token
@ignored_user_agents = configuration.ignored_user_agents
+ @assets_extensions = configuration.assets_extensions
end
def throttle!
validate { token }
end
@@ -17,27 +18,25 @@
validate { true }
end
private
- attr_reader :request, :token, :ignored_user_agents
+ attr_reader :request, :token, :ignored_user_agents, :assets_extensions
def validate
- return if ignore_user_agents? || assets? || token.blank?
+ return if ignore_user_agents? || asset_request? || token.blank?
request.env["nexaas.token"] = token
yield if block_given?
end
- def assets?
+ def asset_request?
path = request.path
- path.match(%r{/assets}).present? || path.match(extensions_regexp).present?
+ path.match(%r{/assets}).present? || path.match(assets_extensions_regexp).present?
end
- def extensions_regexp
- @assets_extensions ||= begin
- extensions_group = %w(css js png jpg gif).join("|")
- /\.(#{extensions_group})(\?\S*)?$/
- end
+ def assets_extensions_regexp
+ extensions = assets_extensions.join("|")
+ /\.(#{extensions})$/
end
def ignore_user_agents?
ignored_user_agents && !ignored_user_agents.map { |regexp| regexp.match(request.user_agent) }.compact.blank?
end