Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save jc00ke/2352906 to your computer and use it in GitHub Desktop.

Select an option

Save jc00ke/2352906 to your computer and use it in GitHub Desktop.
Create a RailsAdmin custom field
say "Create stub for '#{field_name = name.sub('rails_admin_', '')}' in gem '#{name}'. This may take a while"
run "rm -rf script/ config/ lib/tasks/"
run "rm -rf app/assets app/controllers app/helpers app/mailers app/models"
run "mkdir -p app/views/rails_admin/main"
inside "app/views/rails_admin/main" do
create_file "_form_#{field_name}.html.haml", <<-END
= form.send field.view_helper, field.method_name, field._html_attributes
END
end
inside "lib" do
append_file "#{name}.rb", <<-END
require 'rails_admin/config/fields'
require 'rails_admin/config/fields/base'
module RailsAdmin
module Config
module Fields
module Types
class #{field_name.camelize} < RailsAdmin::Config::Fields::Base
RailsAdmin::Config::Fields::Types::register(self)
end
end
end
end
end
RailsAdmin::Config::Fields.register_factory do |parent, properties, fields|
if properties[:name] == :#{field_name}
fields << RailsAdmin::Config::Fields::Types::#{field_name.camelize}.new(parent, properties[:name], properties)
true
else
false
end
end
END
end
say "RailsAdmin field stub generator is done"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment