class Himeko::App
Constants
- CONTEXT_RACK_ENV_NAME
- USER_RACK_ENV_NAME
Public Class Methods
initialize_context(config)
click to toggle source
# File lib/himeko/app.rb, line 23 def self.initialize_context(config) { config: config, } end
rack(config={})
click to toggle source
# File lib/himeko/app.rb, line 29 def self.rack(config={}) klass = App context = initialize_context(config) lambda { |env| env[CONTEXT_RACK_ENV_NAME] = context klass.call(env) } end
Public Instance Methods
conf()
click to toggle source
# File lib/himeko/app.rb, line 54 def conf context[:config] end
console_session_duration()
click to toggle source
# File lib/himeko/app.rb, line 86 def console_session_duration conf.fetch(:session_duration, 3600) end
context()
click to toggle source
# File lib/himeko/app.rb, line 50 def context request.env[CONTEXT_RACK_ENV_NAME] end
current_username()
click to toggle source
# File lib/himeko/app.rb, line 58 def current_username name = request.env[USER_RACK_ENV_NAME] halt 401, "request.env[#{USER_RACK_ENV_NAME}] is missing (maybe a configuration bug!)" unless name name end
dynamodb_table()
click to toggle source
# File lib/himeko/app.rb, line 72 def dynamodb_table @dynamodb_table ||= context[:dynamodb_table] ||= conf[:dynamodb_table] ||= Aws::DynamoDB::Resource.new().table(conf.fetch(:dynamodb_table_name)) end
iam()
click to toggle source
# File lib/himeko/app.rb, line 68 def iam @iam ||= context[:iam] ||= conf[:iam] || Aws::IAM::Client.new(logger: env['rack.logger']) end
render_no_user_error()
click to toggle source
# File lib/himeko/app.rb, line 90 def render_no_user_error status 403 erb :no_user_error end
role_manager()
click to toggle source
# File lib/himeko/app.rb, line 76 def role_manager @role_manager ||= context[:role_manager] ||= RoleManager.new( iam: iam, prefix: conf.fetch(:role_prefix), path: conf.fetch(:role_path), ttl: conf.fetch(:role_ttl, 86400), dynamodb_table: dynamodb_table, ) end
sts()
click to toggle source
# File lib/himeko/app.rb, line 64 def sts @sts ||= context[:sts] ||= conf[:sts] || Aws::STS::Client.new(logger: env['rack.logger']) end