Sha256: 36bc4dcf9369836ad7654658497e652ff5201a19a7861d75afcee6853c8fa36e

Contents?: true

Size: 1.6 KB

Versions: 6

Compression:

Stored size: 1.6 KB

Contents

module LookupHelper

  def lookup(code, default = nil, &block)
    _lookup(code, 'string', default, &block)
  end

  def integer_lookup(code, default = nil, &block)
    _lookup(code, 'integer', default, &block).to_i
  end

  def float_lookup(code, default = nil, &block)
    _lookup(code, 'float', default, &block).to_f
  end

  def boolean_lookup(code, default = nil, &block)
    _lookup(code, 'boolean', default, &block) == '1'
  end

  def enum_lookup_value(code, default = nil, &block)
    _lookup(code, 'enum', default, &block).to_sym
  end

  def file_lookup(code)
    Lookup.find_by(code: code, type_code: 'file')
  end

  def enum_lookup_text(code)
    value = enum_lookup_value(code)
    return if value.blank?
    l = Lookup.where(code: code, type_code: 'enum').first
    l.value_options[value]
  end

  def memo_lookup(code, default = nil, &block)
    sf(unsafe_memo_lookup(code, default, &block))
  end

  def unsafe_memo_lookup(code, default = nil, &block)
    _lookup(code, 'memo', default, &block)
  end

  def wysiwyg_lookup(code, default = nil, &block)
    raw(_lookup(code, 'wysiwyg', default, &block))
  end

  def lookup_name(code)
    t("lookups.#{code}")
  end

  def sf(text)
    h(text).gsub("\n", "<br/>").html_safe
  end

  private

  def _lookup(code, type, default, &block)
    l = Lookup.where(code: code, type_code: type).first
    return l.value if l

    value = if block.present?
              capture(self, &block)
            else
              default
            end
    value = value.strip if value

    l = Lookup.create!(code: code, value: value, type_code: type)

    l.reload.value
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
coalla-cms-0.7.0.0 app/helpers/lookup_helper.rb
coalla-cms-0.5.2.4 app/helpers/lookup_helper.rb
coalla-cms-0.6.1.1 app/helpers/lookup_helper.rb
coalla-cms-0.6.0.9 app/helpers/lookup_helper.rb
coalla-cms-0.5.1.9 app/helpers/lookup_helper.rb
coalla-cms-0.5.1.8 app/helpers/lookup_helper.rb