Sha256: 3376bd4d2949349eaf3315b1410e381560724fb070153c37db8e5afc2459eee4

Contents?: true

Size: 1.54 KB

Versions: 2

Compression:

Stored size: 1.54 KB

Contents

require 'rails/generators/rails/resource/resource_generator'
require File.join(File.dirname(__FILE__), '../../base')

module Rails
  module Generators
    class LeoscaGenerator < ResourceGenerator #metagenerator
      include ::Leonardo::Nested
      #puts 'rails:leosca'

      remove_hook_for :resource_controller
      remove_class_option :actions

      class_option :stylesheets, :type => :boolean, :default => false, :desc => "Generate Stylesheets"
      class_option :stylesheet_engine, :desc => "Engine for Stylesheets"
      class_option :under, :type => :string, :default => "", :banner => "brand/category", :desc => "Choose namespace(s) if resource must be nested"

      hook_for :leosca_controller, :required => true

      hook_for :assets do |assets|
        invoke assets, [controller_name]
      end

      hook_for :stylesheet_engine do |stylesheet_engine|
        invoke stylesheet_engine, [controller_name] if options[:stylesheets] && behavior == :invoke
      end

      #Override resource def
      def add_resource_route
        return if options[:actions].present?

        if options[:under].present?
          route_resources = plural_parent_resources
          route_map = "resources"
        else
          route_resources = regular_class_path
          route_map = "namespace"
        end

        route_config =  route_resources.collect{|m| "#{route_map} :#{m} do " }.join(" ")
        route_config << "resources :#{file_name.pluralize}"
        route_config << " end" * route_resources.size
        route route_config
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
leonardo-1.6.1 lib/generators/rails/leosca/leosca_generator.rb
leonardo-1.6.0 lib/generators/rails/leosca/leosca_generator.rb