class MrMongo::Loader

Public Class Methods

new(context) click to toggle source
# File lib/mr_mongo/loader.rb, line 5
def initialize(context)
  @context = context
end

Public Instance Methods

load(file) click to toggle source
# File lib/mr_mongo/loader.rb, line 9
def load(file)
  dsl_script = ::File.read(file).sub!(/^__END__\n.*\Z/m, '')

  map_reduce = load_from_string(dsl_script, file)

  InlineTemplateLoader.load(file).each do |key, val|
    map_reduce.send("#{key}=".to_sym, val)
  end

  map_reduce
end
load_from_string(dsl_script, file = "(Mr. Mongo DSL)") click to toggle source
# File lib/mr_mongo/loader.rb, line 21
def load_from_string(dsl_script, file = "(Mr. Mongo DSL)")
  dsl = Dsl.new(@context)

  eval "dsl.parse {\n" + dsl_script + "\n}.map_reduce", binding, file, 0
end