pixelearth 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/Gemfile +0 -6
  2. data/lib/generators/project_files/USAGE +7 -0
  3. data/lib/generators/project_files/project_files_generator.rb +40 -0
  4. data/lib/generators/project_files/templates/images/icons/accept.png +0 -0
  5. data/lib/generators/project_files/templates/images/icons/back.png +0 -0
  6. data/lib/generators/project_files/templates/images/icons/block.png +0 -0
  7. data/lib/generators/project_files/templates/images/icons/destroy.png +0 -0
  8. data/lib/generators/project_files/templates/images/icons/dialog.png +0 -0
  9. data/lib/generators/project_files/templates/images/icons/edit.png +0 -0
  10. data/lib/generators/project_files/templates/images/icons/help.png +0 -0
  11. data/lib/generators/project_files/templates/images/icons/info.png +0 -0
  12. data/lib/generators/project_files/templates/images/icons/list_all.png +0 -0
  13. data/lib/generators/project_files/templates/images/icons/new.png +0 -0
  14. data/lib/generators/project_files/templates/images/icons/next.png +0 -0
  15. data/lib/generators/project_files/templates/images/icons/process.png +0 -0
  16. data/lib/generators/project_files/templates/images/icons/show.png +0 -0
  17. data/lib/generators/project_files/templates/images/icons/user.png +0 -0
  18. data/lib/generators/project_files/templates/images/icons/users.png +0 -0
  19. data/lib/generators/project_files/templates/images/icons/warning.png +0 -0
  20. data/lib/generators/project_files/templates/stylesheets/sass/pixelearth.scss +162 -0
  21. data/lib/generators/project_files/templates/stylesheets/sass/validation_errors.scss +36 -0
  22. data/lib/generators/project_files/templates/tmp/_form.html.haml +16 -0
  23. data/lib/generators/project_files/templates/view_templates/haml/controller/view.html.haml +0 -0
  24. data/lib/generators/project_files/templates/view_templates/haml/mailer/view.text.haml +3 -0
  25. data/lib/generators/project_files/templates/view_templates/haml/scaffold/_form.html.haml +7 -0
  26. data/lib/generators/project_files/templates/view_templates/haml/scaffold/edit.html.haml +3 -0
  27. data/lib/generators/project_files/templates/view_templates/haml/scaffold/index.html.haml +17 -0
  28. data/lib/generators/project_files/templates/view_templates/haml/scaffold/new.html.haml +3 -0
  29. data/lib/generators/project_files/templates/view_templates/haml/scaffold/show.html.haml +8 -0
  30. data/lib/generators/project_files/templates/view_templates/rails/scaffold_controller/controller.rb +39 -0
  31. data/lib/generators/project_files/templates/views/application.html.haml +51 -0
  32. data/lib/generators/project_files/templates/views/shared/_admin_buttons.html.haml +20 -0
  33. data/lib/generators/project_files/templates/views/shared/_form_errors.html.haml +8 -0
  34. data/lib/generators/project_files/templates/views/shared/_show_edit_destroy.html.haml +6 -0
  35. data/lib/pixelearth/version.rb +1 -1
  36. data/lib/pixelearth.rb +13 -6
  37. data/lib/required/active_record.rb +8 -0
  38. data/lib/required/application_controller.rb +210 -0
  39. data/lib/required/application_helper.rb +73 -0
  40. data/lib/required/date_formats.rb +5 -0
  41. data/lib/required/rails_core_mods.rb +2 -0
  42. data/lib/required/ruby_core_mods.rb +17 -0
  43. data/lib/required/sass.rb +1 -0
  44. data/lib/required/string.rb +6 -0
  45. data/pixelearth.gemspec +13 -0
  46. metadata +130 -6
data/Gemfile CHANGED
@@ -3,9 +3,3 @@ source "http://rubygems.org"
3
3
  # Specify your gem's dependencies in pixelearth.gemspec
4
4
 
5
5
  gemspec
6
- haml-rails
7
- ruby-debug
8
- redgreen
9
- colored
10
-
11
-
@@ -0,0 +1,7 @@
1
+ Description:
2
+ Will copy haml templates, css, images, and other resources for a base pixelearth project
3
+
4
+ Example:
5
+ rails generate project_files
6
+
7
+
@@ -0,0 +1,40 @@
1
+ class ProjectFilesGenerator < Rails::Generators::Base
2
+ source_root File.expand_path('../templates', __FILE__) #this is for thor
3
+
4
+ def copy_template_files
5
+ gem_template_dir = File.expand_path('../templates', __FILE__) #this is for me : )
6
+ app_root = destination_root
7
+
8
+ #copy view templates
9
+ cmd = "mkdir -v #{app_root}/lib/templates"
10
+ puts `#{cmd}`
11
+ cmd = "cp -vR #{gem_template_dir}/view_templates/* #{app_root}/lib/templates/"
12
+ puts `#{cmd}`
13
+
14
+ #make shared dir
15
+ cmd = "mkdir -v #{app_root}/app/views/shared/"
16
+ puts `#{cmd}`
17
+
18
+ #copy shared
19
+ cmd = "cp -vR #{gem_template_dir}/views/shared/* #{app_root}/app/views/shared/"
20
+ puts `#{cmd}`
21
+
22
+ #copy layout
23
+ cmd = "cp -vR #{gem_template_dir}/views/application.html.haml #{app_root}/app/views/layouts/"
24
+ puts `#{cmd}`
25
+
26
+ #remove erb layout file here
27
+
28
+ #copy images
29
+ cmd = "cp -vR #{gem_template_dir}/images/* #{app_root}/public/images/"
30
+ puts `#{cmd}`
31
+
32
+ #copy stylesheets
33
+ cmd = "cp -vR #{gem_template_dir}/stylesheets/* #{app_root}/public/stylesheets/"
34
+ puts `#{cmd}`
35
+
36
+
37
+
38
+ end
39
+ end
40
+
@@ -0,0 +1,162 @@
1
+ //@import "vars.scss";
2
+
3
+ body {
4
+ margin:0;
5
+ padding:0;
6
+ background-color:#333333;
7
+ color:#444444;
8
+ font-size:85%;
9
+ font-family:arial;
10
+ }
11
+ h1, h2, h3 {
12
+ margin-top:12px;
13
+ color: #2B4F81;
14
+ margin-bottom:8px;
15
+ }
16
+ h1 {
17
+ }
18
+ #container_1 {
19
+ width:1000px;
20
+ border-right:1px solid #555;
21
+ }
22
+ div.content {
23
+ padding: 15px;
24
+ background-color:white;
25
+ }
26
+
27
+ a {
28
+ color:#EB9A00;
29
+ text-decoration:none;
30
+ &:hover {
31
+ color:orange;
32
+ }
33
+ img {
34
+ border:0;
35
+ }
36
+ }
37
+
38
+ table {
39
+ }
40
+
41
+ table td, table th {
42
+ padding:5px 10px;
43
+ vertical-align:top;
44
+ }
45
+ table th {
46
+ background-color:#F9F9F9;
47
+ border-bottom:1px solid #cccccc;
48
+ text-align:left;
49
+
50
+ }
51
+ table td {
52
+ background-color:#fafafa;
53
+ }
54
+
55
+
56
+ table.data {
57
+ width:100%;
58
+ tr.b td {
59
+ background-color:#FBFBE3;
60
+ }
61
+ }
62
+ /* admin controls */
63
+ a.index_show,
64
+ a.index_edit,
65
+ a.index_destroy
66
+ {
67
+ display:inline-block;
68
+ width:28px; height:28px;
69
+ text-indent: -9999px;
70
+ background-position: center center;
71
+ background-repeat: no-repeat;
72
+ }
73
+ a.index_show {
74
+ background: url(/images/icons/show.png) center center no-repeat;
75
+ }
76
+ a.index_edit {
77
+ background: url(/images/icons/edit.png) center center no-repeat;
78
+ }
79
+ a.index_destroy {
80
+ background: url(/images/icons/destroy.png) center center no-repeat;
81
+ }
82
+
83
+ /* buttons */
84
+ #admin_buttons {
85
+ margin: 30px 0 0 0;
86
+ }
87
+ .show_edit_destroy_box {
88
+ width: 95px;
89
+ img {
90
+ width:24px;
91
+ height:24px;
92
+ vertical-align: bottom;
93
+ }
94
+ }
95
+
96
+ /* show page */
97
+ .resource_label {
98
+ background-color:#eee;
99
+ width:200px;
100
+ height:15px;
101
+ padding:5px;
102
+ }
103
+ .resource_value {
104
+ margin-left:220px;
105
+ margin-top:-25px;
106
+ padding:5px;
107
+ }
108
+
109
+
110
+ label {
111
+ font-weight:800;
112
+ color:#2B4F81;
113
+ }
114
+ div.field {
115
+ padding:5px 0px;
116
+ }
117
+ .debug_dump {
118
+
119
+
120
+ }
121
+ /* columns */
122
+
123
+ .col_of_3 {
124
+ float:left;
125
+ width:30%;
126
+ }
127
+ .wrapper {
128
+ padding:10px;
129
+ }
130
+
131
+ #footer {
132
+ background-color:#333333;
133
+ color:white;
134
+ padding:15px 30px;
135
+ }
136
+ /* flash */
137
+ .flash {
138
+ padding: 15px 15px 15px 66px;
139
+ border:1px solid #D5D700;
140
+ border-left:0;
141
+ border-right:0;
142
+ background: #FFFCDB url(/images/icons/dialog.png) 5px center no-repeat;
143
+ color: #D7B206;
144
+ }
145
+ .flash_success {
146
+ border-color: #0B7305;
147
+ background-color:#DBFFE0;
148
+ color:#0B7305;
149
+ }
150
+ /* rounded */
151
+ .rounded_10 {
152
+ -moz-border-radius: 10px;
153
+ -webkit-border-radius: 10px;
154
+ border-radius: 10px;
155
+ }
156
+ .rounded_5 {
157
+ -moz-border-radius: 5px;
158
+ -webkit-border-radius: 5px;
159
+ border-radius: 5px;
160
+ }
161
+
162
+
@@ -0,0 +1,36 @@
1
+
2
+ .field_with_errors {
3
+ padding: 2px;
4
+ background-color: #FFEBEB;
5
+ display:inline;
6
+ label {
7
+ color: #CC0000;
8
+ font-weight:800;
9
+ }
10
+ }
11
+
12
+ #error_explanation {
13
+ width: 450px;
14
+ border: 0px solid red;
15
+ padding: 7px;
16
+ padding-bottom: 2px;
17
+ margin-bottom: 20px;
18
+ background-color: #FFEBEB;
19
+ }
20
+
21
+ #error_explanation h2 {
22
+ text-align: left;
23
+ font-weight: bold;
24
+ padding: 5px 5px 5px 15px;
25
+ font-size: 12px;
26
+ margin: -7px;
27
+ margin-bottom: 0px;
28
+ background-color: #c00;
29
+ color: #FFEBEB;
30
+ }
31
+
32
+ #error_explanation ul li {
33
+ font-size: 12px;
34
+ list-style: square;
35
+ }
36
+
@@ -0,0 +1,16 @@
1
+ //replaced by formtastic form
2
+ = form_for @resource do |f|
3
+
4
+ =form_errors_helper
5
+
6
+ <% for attribute in attributes -%>
7
+ .field
8
+ .field_label
9
+ = f.label :<%= attribute.name %>
10
+ .field_input
11
+ = f.<%= attribute.field_type %> :<%= attribute.name %>
12
+ <% end -%>
13
+ .actions
14
+ = f.submit 'Save'
15
+
16
+
@@ -0,0 +1,3 @@
1
+ <%= class_name %>#<%= @action %>
2
+
3
+ = @greeting + ", find me in <%= @path %>"
@@ -0,0 +1,7 @@
1
+ //formtastic
2
+ -semantic_form_for @resource do |form|
3
+ = form.inputs
4
+ = form.buttons
5
+
6
+
7
+
@@ -0,0 +1,3 @@
1
+ = render 'form'
2
+
3
+ = admin_buttons
@@ -0,0 +1,17 @@
1
+ %table.data.admin
2
+ %tr
3
+ <% for attribute in attributes -%>
4
+ %th <%= attribute.human_name %>
5
+ <% end -%>
6
+ %th
7
+
8
+ - @resources.each do |x|
9
+ %tr{:class => cycle('a','b')}
10
+ <% for attribute in attributes -%>
11
+ %td= x.<%= attribute.name %>
12
+ <% end -%>
13
+ %td= show_edit_destroy x
14
+
15
+
16
+ = admin_buttons
17
+
@@ -0,0 +1,3 @@
1
+ = render 'form'
2
+
3
+ = admin_buttons
@@ -0,0 +1,8 @@
1
+ <% for attribute in attributes -%>
2
+ %p.resource_attribute
3
+ .resource_label <%= attribute.human_name %>:
4
+ .resource_value
5
+ = @resource.<%= attribute.name %>
6
+ <% end -%>
7
+
8
+ = admin_buttons
@@ -0,0 +1,39 @@
1
+ class <%= controller_class_name %>Controller < ApplicationController
2
+
3
+ before_filter :get_resource, :except => []
4
+
5
+ def index
6
+ end
7
+
8
+ def show
9
+ end
10
+
11
+ def new
12
+ end
13
+
14
+ def edit
15
+ end
16
+
17
+ def create
18
+ if @resource.save
19
+ redirect_to(@resource, :notice => '<%= human_name %> was successfully created.')
20
+ else
21
+ render :action => "new"
22
+ end
23
+ end
24
+
25
+ def update
26
+ if @resource.update_attributes(params[:<%= singular_table_name %>])
27
+ redirect_to(@resource, :notice => '<%= human_name %> was successfully updated.')
28
+ else
29
+ render :action => "edit"
30
+ end
31
+ end
32
+
33
+ def destroy
34
+ @resource.destroy
35
+
36
+ redirect_to(<%= index_helper %>_url, :notice => '<%= human_name %> was successfully removed.')
37
+ end
38
+ end
39
+
@@ -0,0 +1,51 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ /%link{ :rel => "shortcut icon", :href => "/favicon.ico", :type => "image/x-icon"}/
5
+ %title
6
+ = @layout[:title] || default_view_title
7
+ %meta{:name => 'keywords' , :content => @layout[:keywords]}
8
+ %meta{:name => 'description' , :content => @layout[:desc]}
9
+ %meta{:name => 'robots' , :content => @layout[:all]}
10
+ %meta{'http-equiv' => 'content-type' , :content => "text/html; charset=utf-8"}
11
+
12
+ = csrf_meta_tag
13
+ = stylesheet_link_tag @layout[:css].flatten.uniq
14
+ = javascript_include_tag :defaults
15
+
16
+ /must be called before noConflict
17
+ = javascript_include_tag 'https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js'
18
+
19
+ :javascript
20
+ jQuery.noConflict(); //must be run before any other 'plugins' that use these libraries
21
+
22
+ = javascript_include_tag @layout[:js].flatten.uniq
23
+
24
+ %style
25
+ = yield :styles
26
+
27
+
28
+
29
+
30
+ %body
31
+
32
+
33
+ #container_1
34
+ .content
35
+
36
+ /Flash Message
37
+ = raw display_flash
38
+
39
+
40
+ - if @layout[:show_h1]
41
+ %h1
42
+ = raw @layout[:h1] || default_view_title
43
+
44
+
45
+ =yield
46
+
47
+ =clear
48
+
49
+ #footer
50
+ #debug_box
51
+ =debug params
@@ -0,0 +1,20 @@
1
+ #admin_buttons
2
+
3
+ -case params[:action]
4
+ -when 'index'
5
+ //new
6
+ =link_to image_tag('/images/icons/new.png', :alt=>'[new]'), send("new_#{params[:controller].singularize}_path"), :class => 'admin_new', :title => 'New'
7
+ -when 'new', 'create'
8
+ //index
9
+ =link_to image_tag('/images/icons/list_all.png', :alt=>"[List All #{params[:controller].titleize}]"), send("#{params[:controller]}_path"), :class => 'admin_list', :title => "All #{params[:controller].titleize}"
10
+ -when 'show'
11
+ //edit, index
12
+ =link_to image_tag('/images/icons/list_all.png', :alt=>"[List All #{params[:controller].titleize}]"), send("#{params[:controller]}_path"), :class => 'admin_list', :title => "List All #{params[:controller].titleize}"
13
+ =link_to image_tag('/images/icons/edit.png', :alt=>"[Edit]"), send("edit_#{params[:controller].singularize}_path"), :class => 'admin_edit', :title => 'Edit'
14
+ -when 'edit', 'update'
15
+ /show, index
16
+ =link_to image_tag('/images/icons/list_all.png', :alt=>"[List All #{params[:controller].titleize}]"), send("#{params[:controller]}_path"), :class => 'admin_list', :title => "List All #{params[:controller].titleize}"
17
+ =link_to image_tag('/images/icons/show.png', :alt=>'[show]'), send("#{params[:controller].singularize}_path", @resource), :class => 'admin_show', :title => 'Show'
18
+
19
+
20
+
@@ -0,0 +1,8 @@
1
+ -if @resource.errors.any?
2
+ #error_explanation
3
+ %h2= "#{pluralize(@resource.errors.count, "error")} prohibited this #{@resource.class.to_s.titleize} from being saved:"
4
+ %ul
5
+ - @resource.errors.full_messages.each do |msg|
6
+ %li= msg
7
+
8
+
@@ -0,0 +1,6 @@
1
+ .show_edit_destroy_box
2
+ =link_to image_tag('/images/icons/show.png', :alt=>'[show]'), resource, :class => 'admin_show', :title => 'Show'
3
+ =link_to image_tag('/images/icons/edit.png', :alt=>'[edit]'), send("edit_#{resource.class.table_name.singularize}_path", resource), :class => 'admin_edit', :title => 'Edit'
4
+ =link_to image_tag('/images/icons/destroy.png', :alt=>'[destroy]'), resource, :confirm => 'Are you sure?', :method => :delete, :class => 'admin_destroy', :title => 'Destroy'
5
+
6
+
@@ -1,3 +1,3 @@
1
1
  module Pixelearth
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/pixelearth.rb CHANGED
@@ -1,7 +1,14 @@
1
- module MyFirstGem
2
- end
3
- class String
4
- def say_hi
5
- "hi"
6
- end
1
+ this_dir = File.expand_path('../', __FILE__)
2
+
3
+ require 'rails'
4
+ require 'haml-rails'
5
+ require 'redcloth'
6
+ require 'formtastic'
7
+
8
+
9
+
10
+ Dir.glob("#{this_dir}/required/*.rb").each do |x|
11
+ require x;
12
+ #puts x #this will show up in console etc.
7
13
  end
14
+
@@ -0,0 +1,8 @@
1
+ class ActiveRecord::Base
2
+ def self.uses_slug(attrib = :name)
3
+ define_method(:to_param) do
4
+ "#{self.id}-#{self.send(attrib).parameterize}"
5
+ end
6
+ end
7
+ end
8
+
@@ -0,0 +1,210 @@
1
+ #class ApplicationController < ActionController::Base #this won't work and cuases the standared ApplicationController to not load
2
+ module ActionController
3
+ class Base
4
+
5
+ before_filter :init_pixelearth_application_controller
6
+
7
+ helper_method :h1,
8
+ :strip_tags,
9
+ :tweet,
10
+ :title,
11
+ :title_h1,
12
+ :default_view_title
13
+
14
+
15
+ def init_pixelearth_application_controller #base config for layout, actions can add to this
16
+ @layout = {
17
+ :show_h1 => true,
18
+ :title => nil,
19
+ :h1 => nil,
20
+ :css => [
21
+ 'sass/compiled/pixelearth',
22
+ 'sass/compiled/validation_errors',
23
+ 'formtastic'
24
+ ],
25
+ :js => []
26
+ }
27
+ end
28
+
29
+ # ----------- CONTROLLER --------------
30
+ #gets @resource or @resource for all actions in controller
31
+ #before filter is set per controller, thus overrideable.
32
+ def get_resource
33
+ action = params[:action].to_sym
34
+ controller = params[:controller]
35
+ klass = controller.classify.constantize
36
+
37
+ if [:show, :edit, :update, :destroy].include? action
38
+ @resource = klass.find(params[:id])
39
+ elsif action == :new
40
+ @resource = klass.new
41
+ elsif action == :create
42
+ @resource = klass.new(params[controller.singularize])
43
+ elsif action == :index
44
+ @resources = klass.all
45
+ end
46
+
47
+ end
48
+
49
+ # ----------- LAYOUT --------------
50
+ def title (st) #allow templates to set page title
51
+ @layout[:title] = strip_tags st
52
+ end
53
+ def h1 (st) #allow templates to set page h1
54
+ @layout[:h1] = st
55
+ end
56
+ def title_h1 (st) #allow templates to set page title and h1 at same time
57
+ h1(st)
58
+ title(st)
59
+ end
60
+ def h1_emph(st) #uniform way to make part of the h1 stand out
61
+ "<em>#{st}</em>"
62
+ end
63
+ def h1_name(st) #uniform way of displaying model names in h1
64
+ h1_emph "\"#{st.titleize}\""
65
+ end
66
+
67
+ # ----------- UTILS --------------
68
+ def strip_tags (str)
69
+ str.gsub(/<\/?[^>]*>/, "")
70
+ end
71
+ def tweet(st='')
72
+ puts "-----------#{st}----------------".green
73
+ end
74
+ def app_controllers
75
+ Dir['app/controllers/*.rb'].map {|f| File.basename(f, '.*').camelize.constantize}
76
+ end
77
+ def app_models
78
+ Dir['app/models/*.rb'].map {|f| File.basename(f, '.*').camelize.constantize }
79
+ end
80
+
81
+
82
+
83
+ private
84
+ def default_view_title #sets h1 and <title> defaults to something sensible, in the absense of explicit setting
85
+ case params[:action]
86
+ when 'new'
87
+ title_h1 "New #{params[:controller].singularize.titleize}"
88
+ when 'create'
89
+ title_h1 "New #{params[:controller].singularize.titleize} (with errors)"
90
+ when 'show'
91
+ title_h1 "#{params[:controller].singularize.titleize}: #{@resource.name.titleize || @resource.id }"
92
+ when 'edit'
93
+ title_h1 "Editing #{params[:controller].singularize.titleize}: #{@resource.name.titleize || @resource.id }"
94
+ when 'update'
95
+ title_h1 "Editing #{params[:controller].singularize.titleize} (with errors)"
96
+ when 'index'
97
+ title_h1 "Listing #{params[:controller].titleize}"
98
+ else
99
+ "{Default Title}"
100
+ end
101
+ end
102
+ end
103
+
104
+
105
+ class ApplicationController < ActionController::Base
106
+
107
+ helper_method :h1,
108
+ :strip_tags,
109
+ :tweet,
110
+ :title,
111
+ :title_h1,
112
+ :default_view_title
113
+
114
+
115
+ @layout = {}
116
+
117
+
118
+ # ----------- CONTROLLER --------------
119
+ #gets @resource or @resource for all actions in controller
120
+ #before filter is set per controller, thus overrideable.
121
+ def get_resource
122
+ puts '-----'+params[:controller]
123
+ action = params[:action].to_sym
124
+ controller = params[:controller]
125
+ klass = controller.classify.constantize
126
+
127
+ if [:show, :edit, :update, :destroy].include? action
128
+ @resource = klass.find(params[:id])
129
+ elsif action == :new
130
+ @resource = klass.new
131
+ elsif action == :create
132
+ @resource = klass.new(params[controller.singularize])
133
+ elsif action == :index
134
+ @resources = klass.all
135
+ end
136
+
137
+ end
138
+
139
+ # ----------- LAYOUT --------------
140
+ def title (st) #allow templates to set page title
141
+ @layout[:title] = strip_tags st
142
+ end
143
+ def h1 (st) #allow templates to set page h1
144
+ @layout[:h1] = st
145
+ end
146
+ def title_h1 (st) #allow templates to set page title and h1 at same time
147
+ h1(st)
148
+ title(st)
149
+ end
150
+ def h1_emph(st) #uniform way to make part of the h1 stand out
151
+ "<em>#{st}</em>"
152
+ end
153
+ def h1_name(st) #uniform way of displaying model names in h1
154
+ h1_emph "\"#{st.titleize}\""
155
+ end
156
+
157
+ # ----------- UTILS --------------
158
+ def strip_tags (str)
159
+ str.gsub(/<\/?[^>]*>/, "")
160
+ end
161
+ def tweet(st='')
162
+ puts "-----------#{st}----------------".green
163
+ end
164
+ def app_controllers
165
+ Dir['app/controllers/*.rb'].map {|f| File.basename(f, '.*').camelize.constantize}
166
+ end
167
+ def app_models
168
+ Dir['app/models/*.rb'].map {|f| File.basename(f, '.*').camelize.constantize }
169
+ end
170
+
171
+
172
+
173
+ private
174
+ def default_view_title #sets h1 and <title> defaults to something sensible, in the absense of explicit setting
175
+ resource = get_resource_from_params
176
+
177
+ return if resource.nil?
178
+
179
+ case params[:action]
180
+ when 'new'
181
+ title_h1 "New #{params[:controller].singularize.titleize}"
182
+ when 'create'
183
+ title_h1 "New #{params[:controller].singularize.titleize} (with errors)"
184
+ when 'show'
185
+ title_h1 "#{params[:controller].singularize.titleize}: #{resource.name.titleize || resource.id }"
186
+ when 'edit'
187
+ title_h1 "Editing #{params[:controller].singularize.titleize}: #{resource.name.titleize || resource.id }"
188
+ when 'update'
189
+ title_h1 "Editing #{params[:controller].singularize.titleize} (with errors)"
190
+ when 'index'
191
+ title_h1 "Listing #{params[:controller].titleize}"
192
+ else
193
+ "{Default Title}"
194
+ end
195
+ end
196
+ def get_resource_from_params #gets @event for url events/show, and @events from /events/index
197
+ begin #nested controllers are working at the moment.
198
+ if params[:action] == 'index'
199
+ instance_variable_get('@' + params[:controller])
200
+ else
201
+ instance_variable_get('@' + params[:controller].singularize)
202
+ end
203
+ rescue
204
+ nil
205
+ end
206
+ end
207
+ end
208
+ end
209
+
210
+
@@ -0,0 +1,73 @@
1
+ module ApplicationHelper
2
+
3
+
4
+ #------------------------------LAYOUT-------------------------------------
5
+ def display_flash (type = nil)
6
+
7
+ if type.nil? #show all flash keys
8
+ html = flash.collect { |type, val| display_flash(type) }
9
+ else
10
+ return flash[type].blank? ? "" : "<p class='flash flash_#{type}'>#{flash[type]}</p> \n"
11
+ end
12
+
13
+ html
14
+ end
15
+ def on_if_current (path)
16
+ if path == request.fullpath
17
+ 'on'
18
+ end
19
+ end
20
+ def on_if_controller (c)
21
+ if params[:controller] == c.to_s
22
+ 'on'
23
+ end
24
+ end
25
+ def tr (d)
26
+ # Quick array to table row.
27
+ # Takes an array and creates a table row (tr) with each element of the array
28
+ # occupying one column (td).
29
+ o = "<tr>\n"
30
+ d.each do |x|
31
+ o << "\t<td>#{x}</td>\n"
32
+ end
33
+ o << "</tr>\n"
34
+ o
35
+ end
36
+ def titled_link_to (resource)
37
+ link_to(resource.name.titleize, send("#{resource.class.to_s.underscore}_path", resource), :title => "View Full #{resource.class.to_s.titleize} Details for #{h resource.name.titleize}")
38
+ end
39
+ def short_text(st, len=100)
40
+ raw truncate( strip_tags( raw(st)), :length=>len)
41
+ end
42
+ def row_toggle
43
+ cycle('a','b')
44
+ end
45
+ def date(date, format=:default)
46
+ #ref: http://snippets.dzone.com/posts/show/2255
47
+ formats = {
48
+ :default => "%b %d, %Y",
49
+ :numbers => "%m-%d-%y",
50
+ :date_time => "%b %d, %Y %I:%M %p",
51
+ :just_time => "%I:%M %p",
52
+ }
53
+ date.strftime(formats[format])
54
+
55
+ end
56
+ def clear
57
+ raw "<br style='clear:both'/>"
58
+ end
59
+
60
+ #------------------------------ADMIN-------------------------------------
61
+ def form_errors_helper
62
+ render :partial => 'shared/form_errors'
63
+ end
64
+ def admin_buttons
65
+ render :partial => 'shared/admin_buttons'
66
+ end
67
+ def show_edit_destroy(resource)
68
+ render :partial => 'shared/show_edit_destroy', :locals => {:resource => resource}
69
+ end
70
+ def link_to_destroy
71
+ raw link_to('destroy', @resource, :confirm => 'Are you sure you want to remove this?', :method => :delete, :title => 'remove permanently')
72
+ end
73
+ end
@@ -0,0 +1,5 @@
1
+ Date::DATE_FORMATS[:short] = "%b '%y"
2
+ Date::DATE_FORMATS[:long] = "%B %d, %Y"
3
+
4
+
5
+
@@ -0,0 +1,2 @@
1
+
2
+
@@ -0,0 +1,17 @@
1
+ class String
2
+ def first_caps
3
+ self.split(/ /).map{|x| x.capitalize}.join(' ')
4
+ end
5
+ def sp_to_underscore #fills in the gap in rails inflectors, since their #underscore method only works for CamelCase
6
+ self.downcase.gsub(/\s+/,"_")
7
+ end
8
+ end
9
+
10
+ class Dir
11
+ def filter(regex)
12
+ self.select do |x|
13
+ x =~ regex
14
+ end
15
+ end
16
+ end
17
+
@@ -0,0 +1 @@
1
+ Sass::Plugin.options[:css_location] = 'public/stylesheets/sass/compiled'
@@ -0,0 +1,6 @@
1
+ class String
2
+ def say_hi
3
+ "hi mom"
4
+ end
5
+ end
6
+
data/pixelearth.gemspec CHANGED
@@ -12,6 +12,19 @@ Gem::Specification.new do |s|
12
12
  s.summary = %q{Pixel Earth work flow gem}
13
13
  s.description = %q{Makes life sweeter}
14
14
 
15
+ #these need to be included manually in pixelearth.rb
16
+ s.add_dependency "haml-rails"
17
+ s.add_dependency "RedCloth"
18
+ s.add_dependency "formtastic"
19
+
20
+
21
+ s.add_development_dependency "ruby-debug"
22
+ s.add_development_dependency "redgreen" #colorizes output for tests, 'required' test/test_helper.rb
23
+ s.add_development_dependency "colored" #colored output in terminal http://github.com/defunkt/colored/blob/master/lib/colored.rb
24
+
25
+
26
+
27
+
15
28
  s.rubyforge_project = ""
16
29
 
17
30
  s.files = `git ls-files`.split("\n")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pixelearth
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Benjamin Lieb
@@ -15,10 +15,93 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-23 00:00:00 -05:00
18
+ date: 2011-03-09 00:00:00 -05:00
19
19
  default_executable:
20
- dependencies: []
21
-
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: haml-rails
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: RedCloth
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: formtastic
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :runtime
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: ruby-debug
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ type: :development
76
+ version_requirements: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: redgreen
79
+ prerelease: false
80
+ requirement: &id005 !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ hash: 3
86
+ segments:
87
+ - 0
88
+ version: "0"
89
+ type: :development
90
+ version_requirements: *id005
91
+ - !ruby/object:Gem::Dependency
92
+ name: colored
93
+ prerelease: false
94
+ requirement: &id006 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 3
100
+ segments:
101
+ - 0
102
+ version: "0"
103
+ type: :development
104
+ version_requirements: *id006
22
105
  description: Makes life sweeter
23
106
  email:
24
107
  - red@pixelearth.net
@@ -32,8 +115,49 @@ files:
32
115
  - .gitignore
33
116
  - Gemfile
34
117
  - Rakefile
118
+ - lib/generators/project_files/USAGE
119
+ - lib/generators/project_files/project_files_generator.rb
120
+ - lib/generators/project_files/templates/images/icons/accept.png
121
+ - lib/generators/project_files/templates/images/icons/back.png
122
+ - lib/generators/project_files/templates/images/icons/block.png
123
+ - lib/generators/project_files/templates/images/icons/destroy.png
124
+ - lib/generators/project_files/templates/images/icons/dialog.png
125
+ - lib/generators/project_files/templates/images/icons/edit.png
126
+ - lib/generators/project_files/templates/images/icons/help.png
127
+ - lib/generators/project_files/templates/images/icons/info.png
128
+ - lib/generators/project_files/templates/images/icons/list_all.png
129
+ - lib/generators/project_files/templates/images/icons/new.png
130
+ - lib/generators/project_files/templates/images/icons/next.png
131
+ - lib/generators/project_files/templates/images/icons/process.png
132
+ - lib/generators/project_files/templates/images/icons/show.png
133
+ - lib/generators/project_files/templates/images/icons/user.png
134
+ - lib/generators/project_files/templates/images/icons/users.png
135
+ - lib/generators/project_files/templates/images/icons/warning.png
136
+ - lib/generators/project_files/templates/stylesheets/sass/pixelearth.scss
137
+ - lib/generators/project_files/templates/stylesheets/sass/validation_errors.scss
138
+ - lib/generators/project_files/templates/tmp/_form.html.haml
139
+ - lib/generators/project_files/templates/view_templates/haml/controller/view.html.haml
140
+ - lib/generators/project_files/templates/view_templates/haml/mailer/view.text.haml
141
+ - lib/generators/project_files/templates/view_templates/haml/scaffold/_form.html.haml
142
+ - lib/generators/project_files/templates/view_templates/haml/scaffold/edit.html.haml
143
+ - lib/generators/project_files/templates/view_templates/haml/scaffold/index.html.haml
144
+ - lib/generators/project_files/templates/view_templates/haml/scaffold/new.html.haml
145
+ - lib/generators/project_files/templates/view_templates/haml/scaffold/show.html.haml
146
+ - lib/generators/project_files/templates/view_templates/rails/scaffold_controller/controller.rb
147
+ - lib/generators/project_files/templates/views/application.html.haml
148
+ - lib/generators/project_files/templates/views/shared/_admin_buttons.html.haml
149
+ - lib/generators/project_files/templates/views/shared/_form_errors.html.haml
150
+ - lib/generators/project_files/templates/views/shared/_show_edit_destroy.html.haml
35
151
  - lib/pixelearth.rb
36
152
  - lib/pixelearth/version.rb
153
+ - lib/required/active_record.rb
154
+ - lib/required/application_controller.rb
155
+ - lib/required/application_helper.rb
156
+ - lib/required/date_formats.rb
157
+ - lib/required/rails_core_mods.rb
158
+ - lib/required/ruby_core_mods.rb
159
+ - lib/required/sass.rb
160
+ - lib/required/string.rb
37
161
  - pixelearth.gemspec
38
162
  has_rdoc: true
39
163
  homepage: ""