core-generators 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/Gemfile +4 -0
- data/README.textile +51 -0
- data/Rakefile +2 -0
- data/core-generators.gemspec +21 -0
- data/lib/core-generators.rb +6 -0
- data/lib/core/inherited_resource_controller.rb +10 -0
- data/lib/core/paginated_controller.rb +12 -0
- data/lib/core/version.rb +3 -0
- data/lib/generators/core/install/install_generator.rb +132 -0
- data/lib/generators/core/install/templates/bootstrap.rake +43 -0
- data/lib/generators/core/install/templates/locales/core.en.yml +20 -0
- data/lib/generators/core/install/templates/locales/core.es.yml +17 -0
- data/lib/generators/core/install/templates/settings.yml +17 -0
- data/lib/generators/core/install/templates/simple_form_custom.rb +58 -0
- data/lib/generators/core/layout/layout_generator.rb +42 -0
- data/lib/generators/core/layout/templates/core.js +113 -0
- data/lib/generators/core/layout/templates/core_helper.rb +114 -0
- data/lib/generators/core/layout/templates/images/arrow.png +0 -0
- data/lib/generators/core/layout/templates/images/boxbar-background.png +0 -0
- data/lib/generators/core/layout/templates/images/button-background-active.png +0 -0
- data/lib/generators/core/layout/templates/images/button-background.png +0 -0
- data/lib/generators/core/layout/templates/images/buttons/cross.png +0 -0
- data/lib/generators/core/layout/templates/images/buttons/edit.png +0 -0
- data/lib/generators/core/layout/templates/images/buttons/key.png +0 -0
- data/lib/generators/core/layout/templates/images/buttons/tick.png +0 -0
- data/lib/generators/core/layout/templates/images/menubar-background.png +0 -0
- data/lib/generators/core/layout/templates/stylesheets/base.sass +366 -0
- data/lib/generators/core/layout/templates/stylesheets/override.sass +1 -0
- data/lib/generators/core/layout/templates/stylesheets/style.sass +434 -0
- data/lib/generators/core/layout/templates/views/haml/_sidebar.html.haml +14 -0
- data/lib/generators/core/layout/templates/views/haml/layout.html.haml +38 -0
- data/lib/generators/core/scaffold/scaffold_generator.rb +125 -0
- data/lib/generators/core/scaffold/templates/controller.rb +10 -0
- data/lib/generators/core/scaffold/templates/helper.rb +3 -0
- data/lib/generators/core/scaffold/templates/migration.rb +16 -0
- data/lib/generators/core/scaffold/templates/model.rb +5 -0
- data/lib/generators/core/scaffold/templates/views/haml/_collection.html.haml +25 -0
- data/lib/generators/core/scaffold/templates/views/haml/_form.html.haml +13 -0
- data/lib/generators/core/scaffold/templates/views/haml/_search.html.haml +7 -0
- data/lib/generators/core/scaffold/templates/views/haml/edit.html.haml +11 -0
- data/lib/generators/core/scaffold/templates/views/haml/index.html.haml +8 -0
- data/lib/generators/core/scaffold/templates/views/haml/index.js.haml +1 -0
- data/lib/generators/core/scaffold/templates/views/haml/new.html.haml +12 -0
- data/lib/generators/core/scaffold/templates/views/haml/show.html.haml +19 -0
- metadata +112 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title=APP_CONFIG.app_name
|
5
|
+
= stylesheet_link_tag "<%= file_name %>/base", "<%= file_name %>/style", "<%= file_name %>/override",
|
6
|
+
= javascript_include_tag :defaults, 'jquery.form','core', :cache => true
|
7
|
+
= csrf_meta_tag :cache => true
|
8
|
+
%body
|
9
|
+
#container
|
10
|
+
#header
|
11
|
+
%h1
|
12
|
+
%a{:href => "/"} Application
|
13
|
+
#user-navigation
|
14
|
+
%ul.wat-cf
|
15
|
+
%li
|
16
|
+
%a{:href => "#"}= t("core.profile", :default => "Profile")
|
17
|
+
%li
|
18
|
+
%a.logout{:href => "/logout"}= t("core.logout", :default => "Logout")
|
19
|
+
|
20
|
+
#main-navigation
|
21
|
+
%ul.wat-cf
|
22
|
+
%li
|
23
|
+
%a{:href => "#"}= t("core.home", :default => "Home")
|
24
|
+
|
25
|
+
#wrapper.wat-cf
|
26
|
+
- flashes
|
27
|
+
#main
|
28
|
+
.block
|
29
|
+
.content
|
30
|
+
= yield
|
31
|
+
#footer
|
32
|
+
.block
|
33
|
+
%p
|
34
|
+
Copyright © #{Time.now.year} #{APP_CONFIG.app_name}.
|
35
|
+
#sidebar
|
36
|
+
= yield :sidebar
|
37
|
+
|
38
|
+
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require 'rails/generators/migration'
|
2
|
+
require 'rails/generators/resource_helpers'
|
3
|
+
require 'rails/generators/generated_attribute'
|
4
|
+
require 'rails/generators/active_record/migration'
|
5
|
+
|
6
|
+
class Core::ScaffoldGenerator < Rails::Generators::NamedBase
|
7
|
+
|
8
|
+
source_root File.expand_path('../templates', __FILE__)
|
9
|
+
|
10
|
+
include Rails::Generators::ResourceHelpers
|
11
|
+
include Rails::Generators::Migration
|
12
|
+
extend ActiveRecord::Generators::Migration
|
13
|
+
|
14
|
+
check_class_collision :suffix => "Controller"
|
15
|
+
|
16
|
+
argument :args_for_c_m, :type => :array, :default => [], :banner => 'controller_actions and model:attributes'
|
17
|
+
|
18
|
+
class_option :timestamps, :type => :boolean, :default => true
|
19
|
+
class_option :parent, :type => :string, :default => 'ActiveRecord::Base',
|
20
|
+
:desc => "The parent class for the generated model"
|
21
|
+
|
22
|
+
def initialize(*args, &block)
|
23
|
+
super
|
24
|
+
|
25
|
+
@controller_actions = []
|
26
|
+
@model_attributes = []
|
27
|
+
|
28
|
+
args_for_c_m.each do |arg|
|
29
|
+
if arg.include?(':')
|
30
|
+
@model_attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':'))
|
31
|
+
else
|
32
|
+
@controller_actions << arg
|
33
|
+
@controller_actions << 'create' if arg == 'new'
|
34
|
+
@controller_actions << 'update' if arg == 'edit'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
@controller_actions.uniq!
|
39
|
+
@model_attributes.uniq!
|
40
|
+
|
41
|
+
if @controller_actions.empty?
|
42
|
+
@controller_actions = default_actions - @controller_actions
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def create_controller_files
|
47
|
+
template 'controller.rb', File.join('app/controllers', class_path, "#{controller_file_name.pluralize}_controller.rb")
|
48
|
+
end
|
49
|
+
|
50
|
+
def create_helper_file
|
51
|
+
template 'helper.rb', File.join('app/helpers', class_path, "#{controller_file_name.pluralize}_helper.rb")
|
52
|
+
end
|
53
|
+
|
54
|
+
def create_model_file
|
55
|
+
template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
|
56
|
+
end
|
57
|
+
|
58
|
+
def add_resource_route
|
59
|
+
return if options[:actions].present?
|
60
|
+
route_config = class_path.collect{|namespace| "namespace :#{namespace} do" }.join("\n ")
|
61
|
+
route_config << "\n"
|
62
|
+
route_config << (" " * (class_path.size + 1 )+ "resources :#{file_name.pluralize}\n")
|
63
|
+
route_config << " end\n" * class_path.size
|
64
|
+
route route_config
|
65
|
+
end
|
66
|
+
|
67
|
+
def copy_view_files
|
68
|
+
actions.each do |action|
|
69
|
+
if %w[index show new edit].include?(action)
|
70
|
+
template "views/#{view_language}/#{action}.html.#{view_language}", "#{views_path}/#{action}.html.#{view_language}"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
if form_partial?
|
75
|
+
template "views/#{view_language}/_form.html.#{view_language}", "#{views_path}/_form.html.#{view_language}"
|
76
|
+
end
|
77
|
+
|
78
|
+
if index?
|
79
|
+
template "views/#{view_language}/_search.html.#{view_language}", "#{views_path}/_search.html.#{view_language}"
|
80
|
+
template "views/#{view_language}/_collection.html.#{view_language}", "#{views_path}/_#{plural_name}.html.#{view_language}"
|
81
|
+
template "views/#{view_language}/index.js.#{view_language}", "#{views_path}/index.js.#{view_language}"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def create_migration_file
|
86
|
+
migration_template "migration.rb", "db/migrate/create_#{table_name}.rb"
|
87
|
+
end
|
88
|
+
|
89
|
+
private
|
90
|
+
|
91
|
+
def views_path
|
92
|
+
File.join("app/views", class_path, plural_name)
|
93
|
+
end
|
94
|
+
|
95
|
+
def form_partial?
|
96
|
+
actions.include?("new") || actions.include?("edit")
|
97
|
+
end
|
98
|
+
|
99
|
+
def index?
|
100
|
+
actions.include?("index")
|
101
|
+
end
|
102
|
+
def default_actions?
|
103
|
+
actions == default_actions
|
104
|
+
end
|
105
|
+
|
106
|
+
def default_actions
|
107
|
+
%w(index create update new edit destroy show)
|
108
|
+
end
|
109
|
+
|
110
|
+
def attributes
|
111
|
+
@model_attributes
|
112
|
+
end
|
113
|
+
|
114
|
+
def actions
|
115
|
+
@controller_actions || default_actions
|
116
|
+
end
|
117
|
+
|
118
|
+
def parent_class_name
|
119
|
+
options[:parent] || "ActiveRecord::Base"
|
120
|
+
end
|
121
|
+
|
122
|
+
def view_language
|
123
|
+
'haml'
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class <%= controller_class_name %>Controller < ApplicationController
|
2
|
+
|
3
|
+
include Core::InheritedResourceController
|
4
|
+
<%- if actions.include?('index') -%>
|
5
|
+
include Core::PaginatedController
|
6
|
+
<% end %>
|
7
|
+
<%- unless default_actions? -%>
|
8
|
+
actions <%= actions.map {|a| ":#{a}" }.join(", ") %>
|
9
|
+
<%- end -%>
|
10
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class <%= migration_class_name %> < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :<%= table_name %> do |t|
|
4
|
+
<% for attribute in attributes -%>
|
5
|
+
t.<%= attribute.type %> :<%= attribute.name %>
|
6
|
+
<% end -%>
|
7
|
+
<%- if options[:timestamps] -%>
|
8
|
+
t.timestamps
|
9
|
+
<% end -%>
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.down
|
14
|
+
drop_table :<%= table_name %>
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#results
|
2
|
+
%table.table
|
3
|
+
%tr
|
4
|
+
%th.first
|
5
|
+
<%- for attribute in attributes -%>
|
6
|
+
%th= sort_link @search, :<%= attribute.name %>, t("activerecord.attributes.<%= singular_name %>.<%= attribute.name %>", :default => t("activerecord.labels.<%= attribute.name %>", :default => "<%= attribute.human_name %>"))
|
7
|
+
<%- end -%>
|
8
|
+
%th
|
9
|
+
.right #{pluralize(@search.count, "<%= singular_name.humanize %>")} found
|
10
|
+
- <%= plural_name %>.each do |<%= singular_name %>|
|
11
|
+
%tr{ :class => cycle("odd", "even") }
|
12
|
+
%td
|
13
|
+
<%- for attribute in attributes -%>
|
14
|
+
%td= <%= singular_name %>.<%= attribute.name %>
|
15
|
+
<%- end -%>
|
16
|
+
%td.last
|
17
|
+
= link_to t("core.show"), resource_path(<%= singular_name %>)
|
18
|
+
|
|
19
|
+
= link_to t("core.edit"), edit_resource_path(<%= singular_name %>)
|
20
|
+
|
|
21
|
+
= link_to t("core.delete"), resource_path(<%= singular_name %>), :method => :delete, :confirm => t("core.confirm")
|
22
|
+
|
23
|
+
.actions-bar.wat-cf
|
24
|
+
.actions
|
25
|
+
= will_paginate <%= plural_name %>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
= simple_form_for(@<%= singular_name %>, :html => { :class => :form } ) do |f|
|
2
|
+
.inputs
|
3
|
+
<%- attributes.each do |attribute| -%>
|
4
|
+
= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %>
|
5
|
+
<%- end -%>
|
6
|
+
|
7
|
+
.group.navform.wat-cf
|
8
|
+
%button.button{ :type => 'submit' }
|
9
|
+
= image_tag "buttons/tick.png", :alt => t("core.save")
|
10
|
+
= t "core.save"
|
11
|
+
= link_to((@<%= singular_name %>.new_record? ? collection_path : resource_path(@<%= singular_name %>)), :class => "button") do
|
12
|
+
= image_tag "buttons/cross.png", :alt => t("core.cancel")
|
13
|
+
= t "core.cancel"
|
@@ -0,0 +1,7 @@
|
|
1
|
+
= form_for @search, :url => collection_path, :html => { :method => :get, :class => 'search' } do |f|
|
2
|
+
<%- for attribute in attributes -%>
|
3
|
+
%p
|
4
|
+
= f.label :<%= attribute.name %>
|
5
|
+
= f.text_field :<%= attribute.name %>_<%= %w(string text).include?(attribute.type.to_s) ? "contains" : 'equals' %>
|
6
|
+
<%- end -%>
|
7
|
+
= f.submit
|
@@ -0,0 +1,8 @@
|
|
1
|
+
.block
|
2
|
+
- content_block '<%= plural_name.humanize %>' do
|
3
|
+
= render :partial => '<%= controller_file_name %>', :locals => { :<%= controller_file_name %> => @<%= controller_file_name %> }
|
4
|
+
|
5
|
+
- sidebar do
|
6
|
+
- navigation_list do
|
7
|
+
- action_links_for_current_action
|
8
|
+
- content_for :search , render('search')
|
@@ -0,0 +1 @@
|
|
1
|
+
= render :partial => '<%= controller_file_name %>', :locals => { :<%= controller_file_name %> => @<%= controller_file_name %> }
|
@@ -0,0 +1,19 @@
|
|
1
|
+
.block
|
2
|
+
.content
|
3
|
+
.inner
|
4
|
+
= show_for @<%= singular_name %> do |s|
|
5
|
+
<%- attributes.each do |attribute| -%>
|
6
|
+
= s.<%= attribute.reference? ? :association : :attribute %> :<%= attribute.name %>
|
7
|
+
<%- end -%>
|
8
|
+
|
9
|
+
.wat-cf
|
10
|
+
= link_to edit_resource_path(@<%= singular_name %>), :class => "button" do
|
11
|
+
= image_tag "buttons/edit.png", :alt => t("core.edit")
|
12
|
+
= t "core.edit"
|
13
|
+
= link_to resource_path(@<%= singular_name %>), :method => "delete", :class => "button", :confirm => t("core.confirm") do
|
14
|
+
= image_tag "buttons/cross.png", :alt => t("core.delete")
|
15
|
+
= t "core.delete"
|
16
|
+
|
17
|
+
- sidebar do
|
18
|
+
- navigation_list do
|
19
|
+
- action_links_for_current_action
|
metadata
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: core-generators
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- lucasefe
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-01-15 00:00:00 -03:00
|
19
|
+
default_executable:
|
20
|
+
dependencies: []
|
21
|
+
|
22
|
+
description: core generators used by me
|
23
|
+
email:
|
24
|
+
- lucasefe@gmail.com
|
25
|
+
executables: []
|
26
|
+
|
27
|
+
extensions: []
|
28
|
+
|
29
|
+
extra_rdoc_files: []
|
30
|
+
|
31
|
+
files:
|
32
|
+
- .gitignore
|
33
|
+
- Gemfile
|
34
|
+
- README.textile
|
35
|
+
- Rakefile
|
36
|
+
- core-generators.gemspec
|
37
|
+
- lib/core-generators.rb
|
38
|
+
- lib/core/inherited_resource_controller.rb
|
39
|
+
- lib/core/paginated_controller.rb
|
40
|
+
- lib/core/version.rb
|
41
|
+
- lib/generators/core/install/install_generator.rb
|
42
|
+
- lib/generators/core/install/templates/bootstrap.rake
|
43
|
+
- lib/generators/core/install/templates/locales/core.en.yml
|
44
|
+
- lib/generators/core/install/templates/locales/core.es.yml
|
45
|
+
- lib/generators/core/install/templates/settings.yml
|
46
|
+
- lib/generators/core/install/templates/simple_form_custom.rb
|
47
|
+
- lib/generators/core/layout/layout_generator.rb
|
48
|
+
- lib/generators/core/layout/templates/core.js
|
49
|
+
- lib/generators/core/layout/templates/core_helper.rb
|
50
|
+
- lib/generators/core/layout/templates/images/arrow.png
|
51
|
+
- lib/generators/core/layout/templates/images/boxbar-background.png
|
52
|
+
- lib/generators/core/layout/templates/images/button-background-active.png
|
53
|
+
- lib/generators/core/layout/templates/images/button-background.png
|
54
|
+
- lib/generators/core/layout/templates/images/buttons/cross.png
|
55
|
+
- lib/generators/core/layout/templates/images/buttons/edit.png
|
56
|
+
- lib/generators/core/layout/templates/images/buttons/key.png
|
57
|
+
- lib/generators/core/layout/templates/images/buttons/tick.png
|
58
|
+
- lib/generators/core/layout/templates/images/menubar-background.png
|
59
|
+
- lib/generators/core/layout/templates/stylesheets/base.sass
|
60
|
+
- lib/generators/core/layout/templates/stylesheets/override.sass
|
61
|
+
- lib/generators/core/layout/templates/stylesheets/style.sass
|
62
|
+
- lib/generators/core/layout/templates/views/haml/_sidebar.html.haml
|
63
|
+
- lib/generators/core/layout/templates/views/haml/layout.html.haml
|
64
|
+
- lib/generators/core/scaffold/scaffold_generator.rb
|
65
|
+
- lib/generators/core/scaffold/templates/controller.rb
|
66
|
+
- lib/generators/core/scaffold/templates/helper.rb
|
67
|
+
- lib/generators/core/scaffold/templates/migration.rb
|
68
|
+
- lib/generators/core/scaffold/templates/model.rb
|
69
|
+
- lib/generators/core/scaffold/templates/views/haml/_collection.html.haml
|
70
|
+
- lib/generators/core/scaffold/templates/views/haml/_form.html.haml
|
71
|
+
- lib/generators/core/scaffold/templates/views/haml/_search.html.haml
|
72
|
+
- lib/generators/core/scaffold/templates/views/haml/edit.html.haml
|
73
|
+
- lib/generators/core/scaffold/templates/views/haml/index.html.haml
|
74
|
+
- lib/generators/core/scaffold/templates/views/haml/index.js.haml
|
75
|
+
- lib/generators/core/scaffold/templates/views/haml/new.html.haml
|
76
|
+
- lib/generators/core/scaffold/templates/views/haml/show.html.haml
|
77
|
+
has_rdoc: true
|
78
|
+
homepage: ""
|
79
|
+
licenses: []
|
80
|
+
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options: []
|
83
|
+
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 3
|
92
|
+
segments:
|
93
|
+
- 0
|
94
|
+
version: "0"
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
hash: 3
|
101
|
+
segments:
|
102
|
+
- 0
|
103
|
+
version: "0"
|
104
|
+
requirements: []
|
105
|
+
|
106
|
+
rubyforge_project: core-generators
|
107
|
+
rubygems_version: 1.4.1
|
108
|
+
signing_key:
|
109
|
+
specification_version: 3
|
110
|
+
summary: core generators used by me
|
111
|
+
test_files: []
|
112
|
+
|