class Kamaze::Project::Helper

Provides access to helper classes

Attributes

ns[R]
items[R]

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/kamaze/project/helper.rb, line 42
def initialize
  @items = {
    inflector: proc do
      require "#{self.class.ns}/inflector"

      Inflector.new
    end.call
  }

  super
end

Public Instance Methods

get(name) click to toggle source

@param [String|Symbol] name @return [Object]

@raise [NotImplementedError]

# File lib/kamaze/project/helper.rb, line 26
def get(name)
  name = name.to_sym

  return items[name] if items[name]

  begin
    @items[name] = inflector.resolve("#{self.class.ns}/#{name}").new
  rescue LoadError
    raise NotImplementedError, "helper not loadable: #{name}"
  end
end

Protected Instance Methods

inflector() click to toggle source

@return [Sys::Proc::Helper::Inflector]

# File lib/kamaze/project/helper.rb, line 60
def inflector
  to_h.fetch(:inflector)
end
to_h() click to toggle source

@return [Hash]

# File lib/kamaze/project/helper.rb, line 55
def to_h
  items
end