Sha256: 9806d36de80d3112d6f5afabaccfedb69ef2308db3abd327b1962af7553351e9

Contents?: true

Size: 1.1 KB

Versions: 8

Compression:

Stored size: 1.1 KB

Contents

# encoding: utf-8

require_relative '../config/config'

require_relative '../helpers/helpers'
require_relative '../loaders/loaders'

require 'erb'
require 'i18n'
require 'ostruct'

module Jetel
  module Helper
    class << self
      def target_dir(modul, dir, source)
        klass = modul.class.name.split('::').last
        source_name = Helper.sanitize(source[:name])
        File.join(dir || Config[:DATA_DIRECTORY], klass, source_name)
      end

      def get_loader(uri)
        loaders = Loaders.loaders
        loader_schema = uri.split(':/').first.downcase
        res = loaders.find do |loader|
          loader[:class_name].downcase === loader_schema
        end

        res[:klass].new(uri)
      end

      def erb(template, vars)
        ERB.new(template).result(OpenStruct.new(vars).instance_eval { binding })
      end

      def erb_template(file, vars)
        template = File.open(file, 'r').read
        ERB.new(template).result(OpenStruct.new(vars).instance_eval { binding })
      end

      def sanitize(str)
        I18n.transliterate(str).gsub(/[^0-9a-z_\-]/i, '_')
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
jetel-0.0.15 lib/jetel/helpers/general_helper.rb
jetel-0.0.14 lib/jetel/helpers/general_helper.rb
jetel-0.0.12 lib/jetel/helpers/general_helper.rb
jetel-0.0.11 lib/jetel/helpers/general_helper.rb
jetel-0.0.10 lib/jetel/helpers/general_helper.rb
jetel-0.0.9 lib/jetel/helpers/general_helper.rb
jetel-0.0.8 lib/jetel/helpers/general_helper.rb
jetel-0.0.7 lib/jetel/helpers/general_helper.rb