Sha256: 584c1dab7b08778a3fe7331059ed4c7d354278d67c96ed8aa8d2971ada5d08f4

Contents?: true

Size: 1.28 KB

Versions: 15

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module BaseEditingBootstrap
  module Generators
    class FieldOverrideGenerator < ::Rails::Generators::Base
      source_root File.expand_path("../../../../app/views/base_editing", __dir__)
      argument :name, type: :string, banner: "Post", required: true
      argument :attributes, type: :array, default: [], banner: "field field:type"

      TYPES = %i[base date datetime decimal integer enum boolean]

      desc <<-DESCRIPTION.strip_heredoc
             Description:   
                Copy partial files for a defined fields, 
                the possible types are #{TYPES}
                Default to base
      DESCRIPTION

      def copy_form_partials
        if attributes.empty?
          say "Need one field"
        else
          singular_name = name.underscore.downcase.singularize
          plural_name = singular_name.pluralize
          attributes.each do |a|
            attr_name, type = a.split(":")

            type = :base if type.nil?
            type = type.to_sym
            raise "Type #{type} not found in #{TYPES}" unless TYPES.include?(type)
            copy_file "form_field/_#{type}.html.erb", File.join("app/views", plural_name, singular_name, 'form_field', "_#{attr_name}.html.erb")
          end
        end

      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
base_editing_bootstrap-1.7.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-1.6.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-1.5.1 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-1.5.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-1.4.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-1.3.2 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-1.3.1 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-1.3.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-1.2.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-1.1.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-1.0.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-0.16.1 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-0.16.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-0.15.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb
base_editing_bootstrap-0.14.0 lib/generators/base_editing_bootstrap/field_override/field_override_generator.rb