Sha256: dcf21eafaab36e4b5a9153aaf09dcbc53b7996ab16629de2d86f5ac5d2871737

Contents?: true

Size: 1.08 KB

Versions: 8

Compression:

Stored size: 1.08 KB

Contents

module ActiveAdmin
  module Generators
    class Boilerplate
      def initialize(class_name)
        @class_name = class_name
      end

      def attributes
        @class_name.constantize.new.attributes.keys
      end

      def assignable_attributes
        attributes - %w(id created_at updated_at)
      end

      def permit_params
        assignable_attributes.map { |a| a.to_sym.inspect }.join(', ')
      end

      def rows
        attributes.map { |a| row(a) }.join("\n  ")
      end

      def row(name)
        "#   row :#{name.gsub(/_id$/, '')}"
      end

      def columns
        attributes.map { |a| column(a) }.join("\n  ")
      end

      def column(name)
        "#   column :#{name.gsub(/_id$/, '')}"
      end

      def filters
        attributes.map { |a| filter(a) }.join("\n  ")
      end

      def filter(name)
        "# filter :#{name.gsub(/_id$/, '')}"
      end

      def form_inputs
        assignable_attributes.map { |a| form_input(a) }.join("\n  ")
      end

      def form_input(name)
        "#     f.input :#{name.gsub(/_id$/, '')}"
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
activeadmin-2.8.0 lib/active_admin/generators/boilerplate.rb
activeadmin-2.7.0 lib/active_admin/generators/boilerplate.rb
activeadmin-2.6.1 lib/active_admin/generators/boilerplate.rb
activeadmin-2.6.0 lib/active_admin/generators/boilerplate.rb
activeadmin-2.5.0 lib/active_admin/generators/boilerplate.rb
activeadmin-2.4.0 lib/active_admin/generators/boilerplate.rb
activeadmin-2.3.1 lib/active_admin/generators/boilerplate.rb
activeadmin-2.3.0 lib/active_admin/generators/boilerplate.rb