Sha256: 696b07d405efbe97a9789f33e1ac14489261301e0c9cc8c82a9cebc6ebad726a

Contents?: true

Size: 1.25 KB

Versions: 17

Compression:

Stored size: 1.25 KB

Contents

# rails generate effective:model NAME [field[:type] field[:type]] [options]

# Generates a model
# rails generate effective:model Thing
# rails generate effective:model Thing name:string description:text

module Effective
  module Generators
    class ModelGenerator < Rails::Generators::NamedBase
      include Helpers

      source_root File.expand_path(('../' * 4) + 'lib/scaffolds', __FILE__)

      desc 'Creates a model in your app/models folder.'

      argument :attributes, type: :array, default: [], banner: 'field[:type] field[:type]'

      def invoke_model
        say_status :invoke, :model, :white
      end

      def create_model
        template 'models/model.rb', resource.model_file
      end

      protected

      def parent_class_name
        options[:parent] || (Rails::VERSION::MAJOR > 4 ? 'ApplicationRecord' : 'ActiveRecord::Base')
      end

      def to_s_attribute
        attributes.find { |att| ['display_name', 'name', 'title', 'subject'].include?(att.name) }
      end

      def archived_attribute
        attributes.find { |att| att.name == 'archived' && att.type == :boolean }
      end

      def max_attribute_name_length
        @max_attribute_name_length ||= (attributes.map { |att| att.name.length }.max || 0)
      end

    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
effective_developer-0.3.0 lib/generators/effective/model_generator.rb
effective_developer-0.2.14 lib/generators/effective/model_generator.rb
effective_developer-0.2.13 lib/generators/effective/model_generator.rb
effective_developer-0.2.12 lib/generators/effective/model_generator.rb
effective_developer-0.2.11 lib/generators/effective/model_generator.rb
effective_developer-0.2.10 lib/generators/effective/model_generator.rb
effective_developer-0.2.9 lib/generators/effective/model_generator.rb
effective_developer-0.2.8 lib/generators/effective/model_generator.rb
effective_developer-0.2.7 lib/generators/effective/model_generator.rb
effective_developer-0.2.6 lib/generators/effective/model_generator.rb
effective_developer-0.2.5 lib/generators/effective/model_generator.rb
effective_developer-0.2.4 lib/generators/effective/model_generator.rb
effective_developer-0.2.3 lib/generators/effective/model_generator.rb
effective_developer-0.2.2 lib/generators/effective/model_generator.rb
effective_developer-0.2.1 lib/generators/effective/model_generator.rb
effective_developer-0.2 lib/generators/effective/model_generator.rb
effective_developer-0.1.1 lib/generators/effective/model_generator.rb