Skip to content

Instantly share code, notes, and snippets.

@bbenezech
Created January 17, 2012 13:23
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save bbenezech/1626605 to your computer and use it in GitHub Desktop.
Save bbenezech/1626605 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"
@deiga
Copy link

deiga commented Mar 11, 2013

This doesn't seem to work with rails 3.2.12 and ruby 2.0.0.
When running this command I get the following error Method Rails::Generators::PluginNewGenerator#name should be public, not private

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment