class Metrux::ConfigBuilders::Common

Constants

ACTIVE_KEY
APP_NAME_KEY
AppNameNotFoundError

Attributes

yaml[R]

Public Class Methods

new(yaml) click to toggle source
# File lib/metrux/config_builders/common.rb, line 9
def initialize(yaml)
  @yaml = yaml
end

Public Instance Methods

build() click to toggle source
# File lib/metrux/config_builders/common.rb, line 13
def build
  { app_name: app_name, active: active, prefix: prefix }
end

Private Instance Methods

active() click to toggle source
# File lib/metrux/config_builders/common.rb, line 25
def active
  return ENV[ACTIVE_KEY] == 'true' if ENV[ACTIVE_KEY].present?

  yaml[:active].presence || false
end
app_name() click to toggle source
# File lib/metrux/config_builders/common.rb, line 21
def app_name
  ENV[APP_NAME_KEY] || yaml[:app_name] || raise(AppNameNotFoundError)
end
prefix() click to toggle source
# File lib/metrux/config_builders/common.rb, line 31
def prefix
  without_accent(app_name.underscore)
    .gsub(/\s/, '_') # {\s,_}
    .gsub(/\W/, '') # non-chars
end
without_accent(text) click to toggle source
# File lib/metrux/config_builders/common.rb, line 37
def without_accent(text)
  # String#parameterize or ActiveSupport::Inflector.transliterate
  # mess with i18n
  #
  # See https://github.com/rails/rails/issues/21939
  text.tr(
    'ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħ' \
    'ÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕ' \
    'ŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž',
    'AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHh' \
    'IIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRr' \
    'RrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz'
  )
end