class LtiTemplateBuilder::Builder
Attributes
after_bundle_commands[RW]
gem_dependencies[RW]
gem_dev_dependencies[RW]
recipes[RW]
Public Class Methods
new()
click to toggle source
# File lib/lti_template_builder/builder.rb, line 5 def initialize @gem_dependencies = [] @gem_dev_dependencies = [] @after_bundle_commands = [] @recipes = [] end
Public Instance Methods
add(name, args={})
click to toggle source
# File lib/lti_template_builder/builder.rb, line 22 def add(name, args={}) klass_name = "LtiTemplateBuilder::#{name.to_s.classify}" recipe_klass = klass_name.constantize recipe = recipe_klass.new recipe.setup(args) recipe.gem_dependencies.each { |dep| @gem_dependencies << dep } recipe.gem_dev_dependencies.each { |dep| @gem_dev_dependencies << dep } recipe.after_bundle_commands.each { |cmd| @after_bundle_commands << cmd } @recipes << { name: name.to_sym, recipe: recipe.render } end
add_gem_recipe()
click to toggle source
# File lib/lti_template_builder/builder.rb, line 12 def add_gem_recipe recipe = LtiTemplateBuilder::Gems.new recipe.setup({ gem_dependencies: @gem_dependencies.uniq, gem_dev_dependencies: @gem_dev_dependencies.uniq, after_bundle_commands: @after_bundle_commands.uniq }) @recipes.unshift({ name: :gems, recipe: recipe.render }) end
render_to_screen()
click to toggle source
# File lib/lti_template_builder/builder.rb, line 43 def render_to_screen puts self.to_script end
save_to_file(path)
click to toggle source
# File lib/lti_template_builder/builder.rb, line 47 def save_to_file(path) File.open(path, "w") { |file| file.write(self.to_script) } end
to_script()
click to toggle source
# File lib/lti_template_builder/builder.rb, line 33 def to_script add_gem_recipe ret = [] @recipes.each do |item| ret << "\n# ---------------------------- Recipe: #{item[:name]} ---------------------------\n\n" ret << item[:recipe] end ret.join("\n\n") end