Sha256: 99eeb4250dd74777957b551b8218f52ec2170748dfcb487b12ad375d481210c7

Contents?: true

Size: 841 Bytes

Versions: 1

Compression:

Stored size: 841 Bytes

Contents

# The base class for katapult element generators

require 'rails/generators'
require 'katapult/support/generator_goodies'

module Katapult
  class Generator < Rails::Generators::NamedBase
    include Katapult::GeneratorGoodies

    attr_accessor :element

    # @option :force (from Thor): Overwrite on conflict
    def initialize(element, options = {})
      self.element = element
      args = [element.name]
      config = {}

      super args, options, config
    end

    private

    def render_partial(template_path, given_binding = nil)
      path = File.join(self.class.source_root, template_path)
      ERB.new(::File.binread(path), nil, '%').result(given_binding || binding)
    end

    def generate(generator_name)
      args = []
      args << '--force' if options[:force]

      super generator_name, *args
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
katapult-0.5.0 lib/katapult/generator.rb