class Morito::Processor::UserAgentPermission

Public Class Methods

new(user_agent, whole_permission) click to toggle source
# File lib/morito/processor.rb, line 32
def initialize(user_agent, whole_permission)
  @user_agent = user_agent

  if whole_permission[user_agent].empty?
    @permission = whole_permission['*']
  else
    @permission = whole_permission[user_agent]
  end
end

Public Instance Methods

allowed?(path) click to toggle source
# File lib/morito/processor.rb, line 42
def allowed?(path)
  return true if disallow_unavailable?

  if !allow_unavailable? && regexp(:allow) =~ path
    true
  else
    regexp(:disallow) !~ path
  end
end

Private Instance Methods

allow_unavailable?() click to toggle source
# File lib/morito/processor.rb, line 54
def allow_unavailable?
  @permission[:allow].empty?
end
disallow_unavailable?() click to toggle source
# File lib/morito/processor.rb, line 58
def disallow_unavailable?
  @permission[:disallow].empty?
end
regexp(type) click to toggle source
# File lib/morito/processor.rb, line 62
def regexp(type)
  raw_regexps = @permission[type].map do |permission|
    Regexp.escape(permission).gsub('\*', '.*').gsub('\$', '$')
  end

  Regexp.new("\\A(?:#{raw_regexps.join('|')})")
end