class Dustcart::Group

resource group

Constants

INPUT_RESOURCES
OUTPUT_RESOURCES

Public Class Methods

new(group_class, dir) click to toggle source
# File lib/dustcart/group.rb, line 17
def initialize(group_class, dir)
  print_initialize_comment(group_class)

  @temp_dir = dir
  initialize_classes(group_class)
end

Public Instance Methods

method_missing(method, *args, &block) click to toggle source
Calls superclass method
# File lib/dustcart/group.rb, line 24
def method_missing(method, *args, &block)
  super unless args.size == 1
  name = args[0]

  begin
    klass = get_class(method)
  rescue NameError
    super
  end

  resource = klass.new(@temp_dir, name, &block)
  resource.precheck
  resource.run
end
respond_to_missing?(method, *) click to toggle source

ignore :reek:UtilityFunction

# File lib/dustcart/group.rb, line 40
def respond_to_missing?(method, *)
  get_class(method)
  true
rescue NameError
  false
end

Private Instance Methods

get_class(method) click to toggle source
# File lib/dustcart/group.rb, line 54
def get_class(method)
  @group_type.const_get(to_camel_case(method.to_s))
end
initialize_classes(group_class) click to toggle source
# File lib/dustcart/group.rb, line 58
def initialize_classes(group_class)
  case group_class
  when :input
    require_files(INPUT_RESOURCES)
    @group_type = Resource::Input
  when :output
    require_files(OUTPUT_RESOURCES)
    @group_type = Resource::Output
  else
    raise "invalid group type (#{group_class})"
  end
end
print_initialize_comment(group_class) click to toggle source
require_files(files) click to toggle source
# File lib/dustcart/group.rb, line 71
def require_files(files)
  files.each { |file| require file }
end
to_camel_case(str) click to toggle source

ignore :reek:UtilityFunction

# File lib/dustcart/group.rb, line 50
def to_camel_case(str)
  str.split('_').map(&:capitalize).join
end