Sha256: 5c7a8d1a1b3630799c62a338cac3939c9d0c0a37f04e6fef42005f32d59bbb22

Contents?: true

Size: 943 Bytes

Versions: 5

Compression:

Stored size: 943 Bytes

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 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
        attributes.reject { |a| %w(id created_at updated_at).include? a }.map { |a| form_input(a) }.join("\n")
      end

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
activeadmin-2.2.0 lib/active_admin/generators/boilerplate.rb
activeadmin-2.1.0 lib/active_admin/generators/boilerplate.rb
activeadmin-2.0.0 lib/active_admin/generators/boilerplate.rb
activeadmin-2.0.0.rc2 lib/active_admin/generators/boilerplate.rb
activeadmin-2.0.0.rc1 lib/active_admin/generators/boilerplate.rb