Sha256: 4fb874f695bced9d6f63e48e24a2367d42c7de09715a29fef9063cdf26023d59
Contents?: true
Size: 1.22 KB
Versions: 2
Compression:
Stored size: 1.22 KB
Contents
# frozen_string_literal: true require "json" module Yattho module ViewComponents # A module for constants that are used in the view components. class Constants CONSTANTS = JSON.parse( File.read( File.join(File.dirname(__FILE__), "../../../static/constants.json") ) ).freeze class << self def get(component:, constant:, invert: true, symbolize: false) values = CONSTANTS.dig(component, constant) case values when Hash format_hash(values, invert, symbolize) when Array format_array(values, symbolize) else values end end private def format_hash(values, invert, symbolize) val = invert ? values.invert : values # remove defaults val = val.except("", nil) return val.transform_values { |v| symbolize_value(v) } if symbolize val end def format_array(values, symbolize) val = values.select(&:present?) return val.map { |v| symbolize_value(v) } if symbolize val end def symbolize_value(value) ":#{value}" end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
yattho_view_components-0.1.1 | lib/yattho/view_components/constants.rb |
yattho_view_components-0.0.1 | lib/yattho/view_components/constants.rb |