class MiniCheck::VersionRackApp

Constants

APP_KEY
CONTENT_TYPE_HEADER
JSON_MIME_TYPE
PATH_INFO
REQUEST_METHOD
TEXT_MIME_TYPE

Attributes

build_file[RW]
host_app[RW]
path[RW]

Public Class Methods

new(args = {}) click to toggle source
# File lib/mini_check/version_rack_app.rb, line 14
def initialize args = {}
  set_attributes args
end

Private Class Methods

file_content(build_file) click to toggle source
# File lib/mini_check/version_rack_app.rb, line 67
def self.file_content(build_file)
  @file_content ||= YAML.load_file(build_file)
end
raw_file_content(build_file) click to toggle source
# File lib/mini_check/version_rack_app.rb, line 71
def self.raw_file_content(build_file)
  @raw_file_content ||= IO.read(build_file)
end

Public Instance Methods

call(env) click to toggle source
# File lib/mini_check/version_rack_app.rb, line 22
def call env
  case "#{env[REQUEST_METHOD]} #{env[PATH_INFO]}"
  when "GET #{path}.json"
    JsonResponse.render(output_hash)
  when "GET #{path}"
    PlainTextResponse.render(output_hash)
  else
    host_app.call(env)
  end
end
metadata() click to toggle source
# File lib/mini_check/version_rack_app.rb, line 18
def metadata
  @metadata ||= Hash.new
end
new(app) click to toggle source
# File lib/mini_check/version_rack_app.rb, line 33
def new(app)
  copy = self.dup
  copy.host_app = app
  copy
end

Private Instance Methods

file_content(build_file) click to toggle source
# File lib/mini_check/version_rack_app.rb, line 75
def file_content(build_file)
  self.class.file_content(build_file)
end
file_hash() click to toggle source
# File lib/mini_check/version_rack_app.rb, line 56
def file_hash
  if (content = file_content(build_file)).instance_of?(Hash)
    content
  else
    content = raw_file_content(build_file).split("\n")
    Hash[content.map{ |pair| pair.split("=") }]
  end
rescue => ex
  { error: ex.message }
end
name=(name) click to toggle source
# File lib/mini_check/version_rack_app.rb, line 42
def name= name
  metadata[APP_KEY] = name
end
output_hash() click to toggle source
# File lib/mini_check/version_rack_app.rb, line 52
def output_hash
  metadata.merge(file_hash)
end
raw_file_content(build_file) click to toggle source
# File lib/mini_check/version_rack_app.rb, line 79
def raw_file_content(build_file)
  self.class.raw_file_content(build_file)
end
set_attributes(args = {}) click to toggle source
# File lib/mini_check/version_rack_app.rb, line 46
def set_attributes args = {}
  args.each do |k,v|
    send("#{k}=", v)
  end
end