admin_view 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ *.gem
2
+ *.swp
3
+ .bundle
4
+ Gemfile.lock
5
+ bundle/
6
+ pkg/*
7
+ tmp/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in admin_view.gemspec
4
+ gemspec
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2011 Rendered Text: Darko Fabijan, Marko Anastasov
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # admin_view
2
+
3
+ Rails 3 generator of CRUD admin controllers, views and specs for existing models.
4
+
5
+ It uses [meta_search](https://github.com/ernie/meta_search) for search and [kaminari](https://github.com/amatsuda/kaminari) for pagination.
6
+
7
+ Screenshot:
8
+
9
+ ![admin_view example screenshot](http://renderedtext.com/images/blog/admin_view.png)
10
+
11
+ ## Usage
12
+
13
+ Include it in your Gemfile:
14
+
15
+ gem "admin_view"
16
+
17
+ Run the generator:
18
+
19
+ $ bundle exec admin_view User --search_by name_or_email
20
+
21
+ The `--search_by` option is not required - if you don't pass it, the form template will come out commented out. However, it's useful most of the time, and you can use any meta_search-compatible expression to search in string or text fields.
22
+
23
+ ## Contributing
24
+
25
+ Yes! Feel free to fork the repo, make your changes in a topic branch and send us a pull request.
26
+
27
+ If you're having a problem or found a bug, please open an issue in the GitHub [issue tracker](https://github.com/renderedtext/admin_view/issues).
28
+
29
+ ## License
30
+
31
+ Copyright © 2011 [Rendered Text](http://renderedtext.com). admin_view is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rake/testtask'
5
+
6
+ desc 'Test the admin_view plugin.'
7
+ Rake::TestTask.new(:test) do |test|
8
+ test.libs << 'test'
9
+ test.test_files = FileList['test/*_test.rb']
10
+ test.verbose = true
11
+ end
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "admin_view/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "admin_view"
7
+ s.version = AdminView::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Marko Anastasov", "Darko Fabijan"]
10
+ s.email = ["devs@renderedtext.com"]
11
+ s.homepage = "http://github.com/renderedtext/admin_view"
12
+ s.summary = %q{Rails 3 generator of admin views and controllers for existing models.}
13
+ s.description = %q{Rails 3 generator of admin views and controllers for existing models.}
14
+
15
+ s.rubyforge_project = "admin_view"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.add_dependency("rails", ">= 3.0")
23
+ s.add_dependency("rspec-rails", ">= 2.4.0")
24
+ s.add_dependency("meta_search")
25
+ s.add_dependency("kaminari")
26
+ end
@@ -0,0 +1,3 @@
1
+ module AdminView
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,5 @@
1
+ Description:
2
+ Generates a CRUD admin controller, views and specs for an existing model.
3
+
4
+ Example:
5
+ rails generate admin_view Model [--search_by column_name]
@@ -0,0 +1,65 @@
1
+ require 'rails/generators/resource_helpers'
2
+ require 'rails/generators/named_base'
3
+
4
+ class AdminViewGenerator < Rails::Generators::NamedBase
5
+
6
+ include Rails::Generators::ResourceHelpers
7
+
8
+ source_root File.expand_path('../templates', __FILE__)
9
+
10
+ class_option :search_by, :type => :string, :desc => "The field or criteria to meta_search by (not required, but without a doubt recommended)"
11
+
12
+ def create_base_controller
13
+ empty_directory "app/controllers/admin"
14
+ path = File.join("app/controllers/admin", "base_controller.rb")
15
+ template("base_controller.rb", path) unless File.exists?(path)
16
+ end
17
+
18
+ def create_base_controller_spec
19
+ empty_directory "spec/controllers/admin"
20
+ path = File.join("spec/controllers/admin", "base_controller_spec.rb")
21
+ template("base_controller_spec.rb", path) unless File.exists?(path)
22
+ end
23
+
24
+ def create_controller
25
+ template "controller.rb", File.join("app/controllers/admin", "#{controller_file_name}_controller.rb")
26
+ end
27
+
28
+ def create_controller_rspec
29
+ template "controller_spec.rb", File.join("spec/controllers/admin", "#{controller_file_name}_controller_spec.rb")
30
+ end
31
+
32
+ def create_views
33
+ empty_directory "app/views/admin/#{controller_file_name}"
34
+ if model_exists?(class_name)
35
+ @attributes = class_name.constantize.send(:columns)
36
+ available_views.each do |view|
37
+ template "views/#{view}.html.erb", File.join("app/views/admin", controller_file_name, "#{view}.html.erb")
38
+ end
39
+ end
40
+ end
41
+
42
+ def add_resource_route
43
+ return if not File.exists?("config/routes.rb")
44
+ route_config = "namespace :admin do "
45
+ route_config << "resources :#{file_name.pluralize}"
46
+ route_config << " end"
47
+ route route_config
48
+ end
49
+
50
+ protected
51
+
52
+ def available_views
53
+ ["index", "new", "show", "edit", "_form"]
54
+ end
55
+
56
+ def model_exists?(klass_name)
57
+ begin
58
+ klass = Module.const_get(klass_name)
59
+ return klass.superclass == ActiveRecord::Base
60
+ rescue NameError
61
+ return false
62
+ end
63
+ end
64
+
65
+ end
@@ -0,0 +1,18 @@
1
+ class Admin::BaseController < ApplicationController
2
+
3
+ before_filter :require_admin
4
+
5
+ protected
6
+
7
+ def require_admin
8
+ unless current_user.try(:admin?)
9
+ render404 and return false
10
+ end
11
+ end
12
+
13
+ def render404
14
+ render :file => File.join(Rails.root, 'public', '404.html'), :status => 404
15
+ return true
16
+ end
17
+
18
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe Admin::BaseController do
4
+
5
+ describe "GET 'index'" do
6
+
7
+ context "logged in as admin" do
8
+
9
+ it "renders index page" do
10
+ controller.stub_chain(:current_user, :admin?).and_return(true)
11
+ get :index
12
+ response.should render_template('index')
13
+ end
14
+
15
+ end
16
+
17
+ context "logged in as user" do
18
+
19
+ it "renders 404" do
20
+ controller.stub_chain(:current_user, :admin?).and_return(false)
21
+ get :index
22
+ response.should render_template('404.html')
23
+ response.response_code.should eql(404)
24
+ end
25
+
26
+ end
27
+
28
+ context "not logged in" do
29
+
30
+ it "renders 404" do
31
+ controller.stub(:current_user).and_return(nil)
32
+ get :index
33
+ response.should render_template('404.html')
34
+ response.response_code.should eql(404)
35
+ end
36
+
37
+ end
38
+
39
+ end
40
+
41
+ end
@@ -0,0 +1,67 @@
1
+ class Admin::<%= controller_class_name %>Controller < Admin::BaseController
2
+
3
+ helper_method :sort_column, :sort_direction, :search_params
4
+
5
+ before_filter :find_<%= singular_table_name %>, :only => [:edit, :update, :show, :destroy]
6
+
7
+ def index
8
+ @search = <%= class_name %>.search(params[:search])
9
+ @<%= plural_table_name %> = find_<%= plural_table_name %>
10
+ end
11
+
12
+ def new
13
+ @<%= singular_table_name %> = <%= class_name %>.new
14
+ end
15
+
16
+ def create
17
+ @<%= singular_table_name %> = <%= class_name %>.new(params[:<%= singular_table_name %>])
18
+ if @<%= singular_table_name %>.save
19
+ redirect_to admin_<%= plural_table_name %>_path, :notice => "Successfully created <%= human_name.downcase %>."
20
+ else
21
+ render :new
22
+ end
23
+ end
24
+
25
+ def show
26
+ end
27
+
28
+ def edit
29
+ end
30
+
31
+ def update
32
+ if @<%= singular_table_name %>.update_attributes(params[:<%= singular_table_name %>])
33
+ redirect_to admin_<%= plural_table_name %>_path, :notice => "Successfully updated <%= human_name.downcase %>."
34
+ else
35
+ render :edit
36
+ end
37
+ end
38
+
39
+ def destroy
40
+ @<%= singular_table_name %>.destroy
41
+ redirect_to admin_<%= plural_table_name %>_path, :notice => "<%= human_name %> has been deleted."
42
+ end
43
+
44
+ protected
45
+
46
+ def find_<%= singular_table_name %>
47
+ @<%= singular_table_name %> = <%= class_name %>.find(params[:id])
48
+ end
49
+
50
+ def find_<%= plural_table_name %>
51
+ search_relation = @search.relation
52
+ search_relation.order(sort_column + " " + sort_direction).page params[:page]
53
+ end
54
+
55
+ def sort_column
56
+ <%= class_name %>.column_names.include?(params[:sort]) ? params[:sort] : "created_at"
57
+ end
58
+
59
+ def sort_direction
60
+ %w[asc desc].include?(params[:direction]) ? params[:direction] : "desc"
61
+ end
62
+
63
+ def search_params
64
+ {:search => params[:search]}
65
+ end
66
+
67
+ end
@@ -0,0 +1,130 @@
1
+ require 'spec_helper'
2
+
3
+ describe Admin::<%= controller_class_name %>Controller do
4
+
5
+ def mock_<%= singular_table_name %>(stubs={})
6
+ (@mock_<%= singular_table_name %> ||= mock_model(<%= class_name %>).as_null_object).tap do |<%= singular_table_name %>|
7
+ <%= singular_table_name %>.stub(stubs) unless stubs.empty?
8
+ end
9
+ end
10
+
11
+ before { controller.stub(:require_admin) }
12
+
13
+ describe "GET index" do
14
+ it "assigns all <%= plural_table_name %> as @<%= plural_table_name %>" do
15
+ controller.stub(:find_<%= plural_table_name %>).and_return([mock_<%= singular_table_name %>])
16
+ get :index
17
+ assigns(:<%= plural_table_name %>).should eq([mock_<%= singular_table_name %>])
18
+ end
19
+ end
20
+
21
+ describe "GET show" do
22
+ it "assigns the requested <%= singular_table_name %> as @<%=singular_table_name %>" do
23
+ <%= class_name %>.stub(:find).with("37") { mock_<%= singular_table_name %> }
24
+ get :show, :id => "37"
25
+ assigns(:<%= singular_table_name %>).should be(mock_<%= singular_table_name %>)
26
+ end
27
+ end
28
+
29
+ describe "GET new" do
30
+ it "assigns a new <%= singular_table_name %> as @<%= singular_table_name %>" do
31
+ <%= class_name %>.stub(:new) { mock_<%= singular_table_name %> }
32
+ get :new
33
+ assigns(:<%= singular_table_name %>).should be(mock_<%= singular_table_name %>)
34
+ end
35
+ end
36
+
37
+ describe "GET edit" do
38
+ it "assigns the requested <%= singular_table_name %> as @<%= singular_table_name %>" do
39
+ <%= class_name %>.stub(:find).with("37") { mock_<%= singular_table_name %> }
40
+ get :edit, :id => "37"
41
+ assigns(:<%= singular_table_name %>).should be(mock_<%= singular_table_name %>)
42
+ end
43
+ end
44
+
45
+ describe "POST create" do
46
+
47
+ describe "with valid params" do
48
+ it "assigns a newly created <%= singular_table_name %> as @<%= singular_table_name %>" do
49
+ <%= class_name %>.stub(:new).with({'these' => 'params'}) { mock_<%= singular_table_name %>(:save => true) }
50
+ post :create, :<%= singular_table_name %> => {'these' => 'params'}
51
+ assigns(:<%= singular_table_name %>).should be(mock_<%= singular_table_name %>)
52
+ end
53
+
54
+ it "redirects to the created <%= singular_table_name %>" do
55
+ <%= class_name %>.stub(:new) { mock_<%= singular_table_name %>(:save => true) }
56
+ post :create, :<%= singular_table_name %> => {}
57
+ response.should redirect_to(admin_<%= plural_table_name %>_url)
58
+ end
59
+ end
60
+
61
+ describe "with invalid params" do
62
+ it "assigns a newly created but unsaved <%= singular_table_name %> as @<%= singular_table_name %>" do
63
+ <%= class_name %>.stub(:new).with({'these' => 'params'}) { mock_<%= singular_table_name %>(:save => false) }
64
+ post :create, :<%= singular_table_name %> => {'these' => 'params'}
65
+ assigns(:<%= singular_table_name %>).should be(mock_<%= singular_table_name %>)
66
+ end
67
+
68
+ it "re-renders the 'new' template" do
69
+ <%= class_name %>.stub(:new) { mock_<%= singular_table_name %>(:save => false) }
70
+ post :create, :<%= singular_table_name %> => {}
71
+ response.should render_template("new")
72
+ end
73
+ end
74
+
75
+ end
76
+
77
+ describe "PUT update" do
78
+
79
+ describe "with valid params" do
80
+ it "updates the requested <%= singular_table_name %>" do
81
+ <%= class_name %>.should_receive(:find).with("37") { mock_<%= singular_table_name %> }
82
+ mock_<%= singular_table_name %>.should_receive(:update_attributes).with({'these' => 'params'})
83
+ put :update, :id => "37", :<%= singular_table_name %> => {'these' => 'params'}
84
+ end
85
+
86
+ it "assigns the requested <%= singular_table_name %> as @<%= singular_table_name %>" do
87
+ <%= class_name %>.stub(:find) { mock_<%= singular_table_name %>(:update_attributes => true) }
88
+ put :update, :id => "1"
89
+ assigns(:<%= singular_table_name %>).should be(mock_<%= singular_table_name %>)
90
+ end
91
+
92
+ it "redirects to the <%= singular_table_name %>" do
93
+ <%= class_name %>.stub(:find) { mock_<%= singular_table_name %>(:update_attributes => true) }
94
+ put :update, :id => "1"
95
+ response.should redirect_to(admin_<%= plural_table_name %>_url)
96
+ end
97
+ end
98
+
99
+ describe "with invalid params" do
100
+ it "assigns the <%= singular_table_name %> as @<%= singular_table_name %>" do
101
+ <%= class_name %>.stub(:find) { mock_<%= singular_table_name %>(:update_attributes => false) }
102
+ put :update, :id => "1"
103
+ assigns(:<%= singular_table_name %>).should be(mock_<%= singular_table_name %>)
104
+ end
105
+
106
+ it "re-renders the 'edit' template" do
107
+ <%= class_name %>.stub(:find) { mock_<%= singular_table_name %>(:update_attributes => false) }
108
+ put :update, :id => "1"
109
+ response.should render_template("edit")
110
+ end
111
+ end
112
+
113
+ end
114
+
115
+ describe "DELETE destroy" do
116
+ it "destroys the requested <%= singular_table_name %>" do
117
+ <%= class_name %>.should_receive(:find).with("37") { mock_<%= singular_table_name %> }
118
+ mock_<%= singular_table_name %>.should_receive(:destroy)
119
+ delete :destroy, :id => "37"
120
+ end
121
+
122
+ it "redirects to the <%= plural_table_name %> list" do
123
+ <%= class_name %>.stub(:find) { mock_<%= singular_table_name %> }
124
+ delete :destroy, :id => "1"
125
+ response.should redirect_to(admin_<%= plural_table_name %>_url)
126
+ end
127
+ end
128
+
129
+ end
130
+
@@ -0,0 +1,12 @@
1
+ <%%= f.error_messages %>
2
+
3
+ <% @attributes.each do |attribute| -%>
4
+ <% next if ["id", "created_at", "updated_at"].include?(attribute.name) -%>
5
+ <p>
6
+ <%%= f.label :<%= attribute.name %> %><br />
7
+ <%%= f.text_field :<%= attribute.name %> %>
8
+ </p>
9
+ <% end -%>
10
+
11
+ <%% label = @<%= singular_table_name %>.new_record? ? "Create" : "Update" -%>
12
+ <%%= f.submit label %>
@@ -0,0 +1,5 @@
1
+ <h1>Editing <%= human_name.downcase %></h1>
2
+
3
+ <%%= form_for [:admin, @<%= singular_table_name %>] do |f| -%>
4
+ <%%= render "form", { :f => f } %>
5
+ <%% end -%>
@@ -0,0 +1,43 @@
1
+ <h2><%= human_name.pluralize %></h2>
2
+
3
+ <%%= form_for @search, :url => admin_<%= plural_table_name %>_path, :html => {:method => :get} do |f| %>
4
+ <% if options[:search_by].blank? -%>
5
+ <!--
6
+ <% end %>
7
+ <!-- feel free to add further search options, eg foo_or_bar_contains -->
8
+ <%%= f.label :<%= options[:search_by] %>_contains, "Search by <%= options[:search_by] %>" %>
9
+ <%%= f.text_field :<%= options[:search_by] %>_contains %>
10
+ <%%= f.submit %>
11
+ <% if options[:search_by].blank? -%>
12
+ --><p>Set up your search form or delete.</p>
13
+ <% end %>
14
+ <%% end %>
15
+
16
+ <p><%%= link_to("Create a new <%= human_name %>", new_admin_<%= singular_table_name %>_path) %></p>
17
+
18
+ <table class="sortable">
19
+ <thead>
20
+ <tr>
21
+ <% @attributes.each do |attribute| -%>
22
+ <th><%%= sortable "<%= attribute.name %>" %></th>
23
+ <% end -%>
24
+ <th>Edit</th>
25
+ <th>Delete</th>
26
+ </tr>
27
+ </thead>
28
+ <tbody>
29
+ <%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %>
30
+ <tr>
31
+ <td><%%= link_to(<%= singular_table_name %>.id, admin_<%= singular_table_name %>_path(<%= singular_table_name %>)) %></td>
32
+ <% @attributes.each do |attribute| -%>
33
+ <% next if attribute.name == "id" -%>
34
+ <td><%%= <%= singular_table_name %>.<%= attribute.name %> %></td>
35
+ <% end -%>
36
+ <td><%%= link_to('Edit', edit_admin_<%= singular_table_name %>_path(<%= singular_table_name %>)) %></td>
37
+ <td><%%= link_to('Delete', admin_<%= singular_table_name %>_path(<%= singular_table_name %>), :confirm => "Are you sure?", :method => :delete) %></td>
38
+ </tr>
39
+ <%% end %>
40
+ </tbody>
41
+ </table>
42
+
43
+ <%%= paginate @<%= plural_table_name %> %>
@@ -0,0 +1,5 @@
1
+ <h1>Create new <%= human_name.downcase %></h1>
2
+
3
+ <%%= form_for [:admin, @<%= singular_table_name %>] do |f| -%>
4
+ <%%= render "form", { :f => f } %>
5
+ <%% end -%>
@@ -0,0 +1,11 @@
1
+ <h1><%= human_name.capitalize %> <%%= @<%= singular_table_name %>.id %></h1>
2
+
3
+ <% @attributes.each do |attribute| -%>
4
+ <p>
5
+ <strong><%= attribute.human_name %>:</strong>
6
+ <%%= @<%= singular_table_name %>.<%= attribute.name %> %>
7
+ </p>
8
+ <% end -%>
9
+
10
+ <%%= link_to "Edit", edit_admin_<%= singular_table_name %>_path(@<%= singular_table_name %>) %> |
11
+ <%%= link_to "Back", admin_<%= plural_table_name %>_path %>
@@ -0,0 +1,19 @@
1
+ require File.join(File.dirname(__FILE__), 'test_helper')
2
+
3
+ require 'generators/admin_view_generator'
4
+
5
+ class AdminViewGeneratorTest < Rails::Generators::TestCase
6
+
7
+ destination File.expand_path("../tmp", File.dirname(__FILE__))
8
+ setup :prepare_destination
9
+ tests AdminViewGenerator
10
+
11
+ test "create the controllers and specs" do
12
+ run_generator %w(User --search_by email)
13
+
14
+ assert_file "app/controllers/admin/base_controller.rb", /class Admin::BaseController < ApplicationController/
15
+ assert_file "app/controllers/admin/users_controller.rb", /class Admin::UsersController < Admin::BaseController/
16
+ assert_file "spec/controllers/admin/base_controller_spec.rb", /describe Admin::BaseController do/
17
+ assert_file "spec/controllers/admin/users_controller_spec.rb", /describe Admin::UsersController do/
18
+ end
19
+ end
@@ -0,0 +1,8 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require 'test/unit'
5
+ require 'active_support/test_case'
6
+ require 'rails/all'
7
+ require 'rails/generators'
8
+ require 'rails/generators/test_case'
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: admin_view
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Marko Anastasov
9
+ - Darko Fabijan
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2011-09-19 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rails
17
+ requirement: &17270240 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '3.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *17270240
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec-rails
28
+ requirement: &17269740 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 2.4.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *17269740
37
+ - !ruby/object:Gem::Dependency
38
+ name: meta_search
39
+ requirement: &17269360 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *17269360
48
+ - !ruby/object:Gem::Dependency
49
+ name: kaminari
50
+ requirement: &17268900 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: *17268900
59
+ description: Rails 3 generator of admin views and controllers for existing models.
60
+ email:
61
+ - devs@renderedtext.com
62
+ executables: []
63
+ extensions: []
64
+ extra_rdoc_files: []
65
+ files:
66
+ - .gitignore
67
+ - Gemfile
68
+ - MIT-LICENSE
69
+ - README.md
70
+ - Rakefile
71
+ - admin_view.gemspec
72
+ - lib/admin_view/version.rb
73
+ - lib/generators/USAGE
74
+ - lib/generators/admin_view_generator.rb
75
+ - lib/generators/templates/base_controller.rb
76
+ - lib/generators/templates/base_controller_spec.rb
77
+ - lib/generators/templates/controller.rb
78
+ - lib/generators/templates/controller_spec.rb
79
+ - lib/generators/templates/views/_form.html.erb
80
+ - lib/generators/templates/views/edit.html.erb
81
+ - lib/generators/templates/views/index.html.erb
82
+ - lib/generators/templates/views/new.html.erb
83
+ - lib/generators/templates/views/show.html.erb
84
+ - test/admin_view_generator_test.rb
85
+ - test/test_helper.rb
86
+ homepage: http://github.com/renderedtext/admin_view
87
+ licenses: []
88
+ post_install_message:
89
+ rdoc_options: []
90
+ require_paths:
91
+ - lib
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ! '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ requirements: []
105
+ rubyforge_project: admin_view
106
+ rubygems_version: 1.8.8
107
+ signing_key:
108
+ specification_version: 3
109
+ summary: Rails 3 generator of admin views and controllers for existing models.
110
+ test_files: []