Sha256: 87a6694bb8ff66070592ba55a5c075bbcae4b7291c9991d68dca82f5a104eaeb

Contents?: true

Size: 1.13 KB

Versions: 16

Compression:

Stored size: 1.13 KB

Contents

require "rails/generators/base"

module MountainView
  module Generators
    class ComponentGenerator < Rails::Generators::Base
      desc "Generates all files needed for a component"

      argument :component, required: true,
                           desc: "Component name, e.g: header, widget"

      def create_view_file
        create_file "app/components/#{component}/_#{component}.html.#{template_engine}"
      end

      def create_css_file
        create_file "app/components/#{component}/#{component}.#{stylesheet_engine}"
      end

      def create_js_file
        create_file "app/components/#{component}/#{component}.#{javascript_engine}"
      end

      def create_stubs_file
        create_file "app/components/#{component}/#{component}.yml"
      end

      private

      def template_engine
        app_generators[:template_engine] || "erb"
      end

      def stylesheet_engine
        app_generators[:stylesheet_engine] || "css"
      end

      def javascript_engine
        app_generators[:javascript_engine] || "js"
      end

      def app_generators
        Rails.application.config.generators.rails
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
mountain_view-0.11.0 lib/generators/mountain_view/component_generator.rb
mountain_view-0.10.0 lib/generators/mountain_view/component_generator.rb
mountain_view-0.9.1 lib/generators/mountain_view/component_generator.rb
mountain_view-0.9.0 lib/generators/mountain_view/component_generator.rb
mountain_view-0.8.1 lib/generators/mountain_view/component_generator.rb
mountain_view-0.8.0 lib/generators/mountain_view/component_generator.rb
mountain_view-0.7.1 lib/generators/mountain_view/component_generator.rb
mountain_view-0.7.0 lib/generators/mountain_view/component_generator.rb
mountain_view-0.6.0 lib/generators/mountain_view/component_generator.rb
mountain_view-0.5.0 lib/generators/mountain_view/component_generator.rb
mountain_view-0.4.3 lib/generators/mountain_view/component_generator.rb
mountain_view-0.4.2 lib/generators/mountain_view/component_generator.rb
mountain_view-0.4.1 lib/generators/mountain_view/component_generator.rb
mountain_view-0.4.0 lib/generators/mountain_view/component_generator.rb
mountain_view-0.3.3 lib/generators/mountain_view/component_generator.rb
mountain_view-0.3.2 lib/generators/mountain_view/component_generator.rb