class Arisaid::Faraday::Request

Public Instance Methods

call(env) click to toggle source
# File lib/arisaid/faraday/request.rb, line 38
def call(env)
  show_request(env) if Arisaid.read_only? || Arisaid.debug?

  if requestable?(env)
    @app.call(env)
  else
    stub_out(env)
  end
end
read?(env) click to toggle source
# File lib/arisaid/faraday/request.rb, line 29
def read?(env)
  unread_pattern = /\.(create|disable|enable|update|setActive|setPresence)\?/
  return env.method == :get && unread_pattern !~ env.url.to_s
end
requestable?(env) click to toggle source
# File lib/arisaid/faraday/request.rb, line 34
def requestable?(env)
  !Arisaid.read_only? || read?(env)
end
response_body() click to toggle source
# File lib/arisaid/faraday/request.rb, line 10
def response_body
  Sawyer::Resource.new(Sawyer::Agent.new(Breacan.api_endpoint))
end
response_object() click to toggle source
# File lib/arisaid/faraday/request.rb, line 14
def response_object
  Struct.new(
    :env, :method, :status, :path, :params, :headers, :body, :options)
end
response_status() click to toggle source
# File lib/arisaid/faraday/request.rb, line 6
def response_status
  200
end
show_request(env) click to toggle source
# File lib/arisaid/faraday/request.rb, line 19
def show_request(env)
  unescaped_url = Addressable::URI.encode(env.url.to_s)
  puts "#{env.method}: #{Breacan::Error.new.send(:redact_url, unescaped_url)}#{' dryrun'.colorize(:yellow) unless requestable?(env)}"
end
stub_out(env) click to toggle source
# File lib/arisaid/faraday/request.rb, line 24
def stub_out(env)
  response_object.new(
    env, env.method, response_status, env.url, nil, {}, response_body)
end