Sha256: 8384d9cdb9e91a962961d2a1cf31b082b3f31486861e3a4ae6f0fda20b34a2f2

Contents?: true

Size: 760 Bytes

Versions: 141

Compression:

Stored size: 760 Bytes

Contents

# encoding: utf-8
require 'erb'
require 'active_support/concern'

module Templatable
  extend ActiveSupport::Concern

  module ClassMethods
    def template(template)
      define_method :get_template do
        template
      end

      define_method :get_placeholders do
        ret = template.scan /<%=placeholders\[:(.*)\]%>/
        ret_hash = {}
        ret.each { |v| ret_hash[v.first.to_sym] = v.first }
        ret_hash
      end
    end
  end

  def initialize(materials)
    @materials = materials
  end

  def result
    placeholders = get_placeholders
    placeholders.each do |key, value|
      placeholders[key] = method("manufactured_#{value}").call
    end
    ERB.new(get_template).result(binding)
  end
end

Version data entries

141 entries across 141 versions & 1 rubygems

Version Path
tbpgr_utils-0.0.30 lib/templatable.rb
tbpgr_utils-0.0.29 lib/templatable.rb
tbpgr_utils-0.0.28 lib/templatable.rb
tbpgr_utils-0.0.27 lib/templatable.rb
tbpgr_utils-0.0.26 lib/templatable.rb
tbpgr_utils-0.0.25 lib/templatable.rb
tbpgr_utils-0.0.24 lib/templatable.rb
tbpgr_utils-0.0.23 lib/templatable.rb
tbpgr_utils-0.0.22 lib/templatable.rb
tbpgr_utils-0.0.21 lib/templatable.rb
tbpgr_utils-0.0.20 lib/templatable.rb
tbpgr_utils-0.0.19 lib/templatable.rb
tbpgr_utils-0.0.18 lib/templatable.rb
tbpgr_utils-0.0.17 lib/templatable.rb
tbpgr_utils-0.0.16 lib/templatable.rb
tbpgr_utils-0.0.15 lib/templatable.rb
tbpgr_utils-0.0.14 lib/templatable.rb
tbpgr_utils-0.0.13 lib/templatable.rb
tbpgr_utils-0.0.12 lib/templatable.rb
tbpgr_utils-0.0.11 lib/templatable.rb