Sha256: 4cc0133e1de0421286234fecfcc8b24c8ba9c238cec0a9a3e15bc2c8b92696fa

Contents?: true

Size: 877 Bytes

Versions: 15

Compression:

Stored size: 877 Bytes

Contents

require 'data_maker/utilities/array_utilities'

module DataMaker
  module ModuleUtilities
    def k(arg)
      DataMaker::ArrayUtilities.const_array(arg)
    end

    def const_missing(const_name)
      if const_name =~ /[a-z]/ # Not a constant, probably a class/module name.
        super const_name
      else
        locale = ancestors.first.to_s.split("::")[-2]
        mod_name = ancestors.first.to_s.split("::").last
        data_path = "#{DataMaker::BASE_LIB_PATH}/data_maker/data/#{underscore(locale)}/#{underscore(mod_name)}/#{underscore(const_name.to_s)}"
        data = k File.read(data_path).split("\n")
        const_set const_name, data
        data
      end
    end

    def underscore(string)
      string.gsub(/::/, '/').
      gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
      gsub(/([a-z\d])([A-Z])/,'\1_\2').
      tr("-", "_").
      downcase
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
data_maker-2.5.5 lib/data_maker/utilities/module_utilities.rb
data_maker-2.5.4 lib/data_maker/utilities/module_utilities.rb
data_maker-2.5.3 lib/data_maker/utilities/module_utilities.rb
data_maker-2.5.2 lib/data_maker/utilities/module_utilities.rb
data_maker-2.4.2 lib/data_maker/utilities/module_utilities.rb
data_maker-2.4.1 lib/data_maker/utilities/module_utilities.rb
data_maker-2.3.5 lib/data_maker/utilities/module_utilities.rb
data_maker-2.3.4 lib/data_maker/utilities/module_utilities.rb
data_maker-2.3.3 lib/data_maker/utilities/module_utilities.rb
data_maker-2.2.3 lib/data_maker/utilities/module_utilities.rb
data_maker-2.1.3 lib/data_maker/utilities/module_utilities.rb
data_maker-2.1.2 lib/data_maker/utilities/module_utilities.rb
data_maker-2.1.1 lib/data_maker/utilities/module_utilities.rb
data_maker-2.0.1 lib/data_maker/utilities/module_utilities.rb
data_maker-2.0.0 lib/data_maker/utilities/module_utilities.rb