humdrum-rails 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/.gitignore +18 -0
  2. data/Features.md +23 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +1 -0
  7. data/humdrum-rails.gemspec +30 -0
  8. data/lib/humdrum/version.rb +4 -0
  9. data/lib/humdrum.rb +4 -0
  10. data/lib/rails/generators/humdrum/layout/layout_generator.rb +133 -0
  11. data/lib/rails/generators/humdrum/layout/templates/controllers/admin_controller.rb +5 -0
  12. data/lib/rails/generators/humdrum/layout/templates/controllers/application_controller.rb +14 -0
  13. data/lib/rails/generators/humdrum/layout/templates/controllers/public_controller.rb +5 -0
  14. data/lib/rails/generators/humdrum/layout/templates/controllers/user_controller.rb +5 -0
  15. data/lib/rails/generators/humdrum/layout/templates/controllers/welcome_controller.rb +7 -0
  16. data/lib/rails/generators/humdrum/layout/templates/helpers/display_helper.rb +41 -0
  17. data/lib/rails/generators/humdrum/layout/templates/helpers/meta_tags_helper.rb +3 -0
  18. data/lib/rails/generators/humdrum/layout/templates/helpers/navigation_helper.rb +19 -0
  19. data/lib/rails/generators/humdrum/layout/templates/helpers/title_helper.rb +15 -0
  20. data/lib/rails/generators/humdrum/layout/templates/images/favicon.ico +0 -0
  21. data/lib/rails/generators/humdrum/layout/templates/images/glyphicons-halflings-white.png +0 -0
  22. data/lib/rails/generators/humdrum/layout/templates/images/glyphicons-halflings.png +0 -0
  23. data/lib/rails/generators/humdrum/layout/templates/javascripts/bootstrap.js +2276 -0
  24. data/lib/rails/generators/humdrum/layout/templates/javascripts/modernizr.2.6.2.js +815 -0
  25. data/lib/rails/generators/humdrum/layout/templates/stylesheets/bootstrap-responsive.css +1109 -0
  26. data/lib/rails/generators/humdrum/layout/templates/stylesheets/bootstrap.css +6158 -0
  27. data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/boilerplate.css.scss +299 -0
  28. data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/box.css.scss +57 -0
  29. data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/caligraphy.css.scss +30 -0
  30. data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/dividers.css.scss +18 -0
  31. data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/form.css.scss +80 -0
  32. data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/misc.css.scss +9 -0
  33. data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/normalize.css.scss +533 -0
  34. data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/palettes.css.scss +66 -0
  35. data/lib/rails/generators/humdrum/layout/templates/stylesheets/humdrum/positioning.css.scss +702 -0
  36. data/lib/rails/generators/humdrum/layout/templates/stylesheets/overrides-bootstrap.css +24 -0
  37. data/lib/rails/generators/humdrum/layout/templates/views/layouts/admin/_footer.html.erb +0 -0
  38. data/lib/rails/generators/humdrum/layout/templates/views/layouts/admin/_header.html.erb +35 -0
  39. data/lib/rails/generators/humdrum/layout/templates/views/layouts/admin/_navbar.html.erb +0 -0
  40. data/lib/rails/generators/humdrum/layout/templates/views/layouts/admin.html.erb +65 -0
  41. data/lib/rails/generators/humdrum/layout/templates/views/layouts/common/_flash_message.html.erb +24 -0
  42. data/lib/rails/generators/humdrum/layout/templates/views/layouts/common/_meta_tags.html.erb +42 -0
  43. data/lib/rails/generators/humdrum/layout/templates/views/layouts/common/_overlays.html.erb +9 -0
  44. data/lib/rails/generators/humdrum/layout/templates/views/layouts/public/_footer.html.erb +0 -0
  45. data/lib/rails/generators/humdrum/layout/templates/views/layouts/public/_header.html.erb +35 -0
  46. data/lib/rails/generators/humdrum/layout/templates/views/layouts/public/_navbar.html.erb +0 -0
  47. data/lib/rails/generators/humdrum/layout/templates/views/layouts/public.html.erb +65 -0
  48. data/lib/rails/generators/humdrum/layout/templates/views/layouts/user/_footer.html.erb +0 -0
  49. data/lib/rails/generators/humdrum/layout/templates/views/layouts/user/_header.html.erb +35 -0
  50. data/lib/rails/generators/humdrum/layout/templates/views/layouts/user/_navbar.html.erb +0 -0
  51. data/lib/rails/generators/humdrum/layout/templates/views/layouts/user.html.erb +65 -0
  52. data/lib/rails/generators/humdrum/layout/templates/views/welcome/index.html.erb +5 -0
  53. data/lib/rails/generators/humdrum/resource/resource_generator.rb +237 -0
  54. data/lib/rails/generators/humdrum/resource/templates/config/locales/humdrum.en.yml +6 -0
  55. data/lib/rails/generators/humdrum/resource/templates/controllers/resource_controller.rb +192 -0
  56. data/lib/rails/generators/humdrum/resource/templates/migrations/create_resources.rb +14 -0
  57. data/lib/rails/generators/humdrum/resource/templates/models/resource.rb +5 -0
  58. data/lib/rails/generators/humdrum/resource/templates/views/resource/_edit.html.erb +7 -0
  59. data/lib/rails/generators/humdrum/resource/templates/views/resource/_filters.html.erb +9 -0
  60. data/lib/rails/generators/humdrum/resource/templates/views/resource/_form.html.erb +44 -0
  61. data/lib/rails/generators/humdrum/resource/templates/views/resource/_index.html.erb +22 -0
  62. data/lib/rails/generators/humdrum/resource/templates/views/resource/_item.html.erb +21 -0
  63. data/lib/rails/generators/humdrum/resource/templates/views/resource/_nav_filters.html.erb +9 -0
  64. data/lib/rails/generators/humdrum/resource/templates/views/resource/_new.html.erb +9 -0
  65. data/lib/rails/generators/humdrum/resource/templates/views/resource/_show.html.erb +38 -0
  66. data/lib/rails/generators/humdrum/resource/templates/views/resource/_summary.html.erb +10 -0
  67. data/lib/rails/generators/humdrum/resource/templates/views/resource/create.js.erb +15 -0
  68. data/lib/rails/generators/humdrum/resource/templates/views/resource/destroy.js.erb +14 -0
  69. data/lib/rails/generators/humdrum/resource/templates/views/resource/edit.js.erb +2 -0
  70. data/lib/rails/generators/humdrum/resource/templates/views/resource/index.html.erb +33 -0
  71. data/lib/rails/generators/humdrum/resource/templates/views/resource/index.js.erb +15 -0
  72. data/lib/rails/generators/humdrum/resource/templates/views/resource/new.js.erb +2 -0
  73. data/lib/rails/generators/humdrum/resource/templates/views/resource/show.js.erb +2 -0
  74. data/lib/rails/generators/humdrum/resource/templates/views/resource/update.js.erb +14 -0
  75. metadata +170 -0
@@ -0,0 +1,35 @@
1
+ <div class="navbar navbar-inverse navbar-fixed-top">
2
+ <div class="navbar-inner">
3
+ <div class="<%= container_class %>">
4
+ <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
5
+ <span class="icon-bar"></span>
6
+ <span class="icon-bar"></span>
7
+ <span class="icon-bar"></span>
8
+ </a>
9
+ <a class="brand" href="#"><%= application_name -%></a>
10
+ <div class="nav-collapse">
11
+ <ul class="nav">
12
+ <li class="<%%= nav_class("home") %>">
13
+ <%%= link_to raw("Home"), "#" %>
14
+ </li>
15
+ <li class="<%%= nav_class("Menu 1") %>">
16
+ <%%= link_to raw("Menu 1"), "#" %>
17
+ </li>
18
+ <li class="<%%= nav_class("Menu 2") %>">
19
+ <%%= link_to raw("Menu 2"), "#" %>
20
+ </li>
21
+ <li class="<%%= nav_class("Menu 3") %>">
22
+ <%%= link_to raw("Menu 3"), "#" %>
23
+ </li>
24
+ <li class="<%%= nav_class("Menu 4") %>">
25
+ <%%= link_to raw("Menu 4"), "#" %>
26
+ </li>
27
+ </ul>
28
+ <form class="navbar-search pull-right" action="">
29
+ <input type="text" class="search-query span3" placeholder="Search">
30
+ </form>
31
+ </div><!-- /.nav-collapse -->
32
+ </div><!-- /.container -->
33
+ </div><!-- /.navbar-inner -->
34
+ </div><!-- /.navbar -->
35
+
@@ -0,0 +1,65 @@
1
+ <!DOCTYPE html>
2
+ <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
3
+ <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4
+ <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
5
+ <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
6
+ <head>
7
+
8
+ <title><%%= title -%></title>
9
+
10
+ <%%= render :partial=>"/layouts/common/meta_tags" -%>
11
+
12
+ <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
13
+ <link rel="icon" href="/assets/favicon.ico" type="image/png">
14
+
15
+ <%%= stylesheet_link_tag "application", :media => "all" -%>
16
+
17
+ <%%= csrf_meta_tags -%>
18
+
19
+ <%%# Modernizr should be loaded first -%>
20
+ <script src="/assets/humdrum/modernizr.2.6.2.js"></script>
21
+
22
+ </head>
23
+
24
+ <body>
25
+
26
+ <!--[if lt IE 7]>
27
+ <p class="chromeframe">You are using an <strong>outdated</strong> browser.
28
+ Please <a href="http://browsehappy.com/">upgrade your browser</a> or
29
+ <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a>
30
+ to improve your experience.</p>
31
+ <![endif]-->
32
+
33
+ <div class="header-block clearfix">
34
+ <div id="div_page_header">
35
+ <%%= render :partial=>"/layouts/admin/header" -%>
36
+ </div>
37
+ <div id="div_page_navbar">
38
+ <%%= render :partial=>"/layouts/admin/navbar" -%>
39
+ </div>
40
+ </div>
41
+
42
+ <%%#* Show flash messages if controller has set any. -%>
43
+ <div id="div_flash_message">
44
+ <%%= render :partial=>"/layouts/common/flash_message" -%>
45
+ </div>
46
+
47
+ <div class="<%= container_class %> padding-top-10" style="min-height:400px;">
48
+ <%%= yield %>
49
+ </div>
50
+
51
+ <%%#* Display Footer -%>
52
+ <%%= render :partial=>"/layouts/admin/footer" -%>
53
+
54
+ <%%#* Display Hidden Overlays -%>
55
+ <%%= render :partial=>"/layouts/common/overlays" -%>
56
+
57
+ <%%#* Loading Javascripts -%>
58
+ <%%= javascript_include_tag "application" -%>
59
+
60
+ <script type='text/javascript'>
61
+ <%%= yield :javascript -%>
62
+ </script>
63
+
64
+ </body>
65
+ </html>
@@ -0,0 +1,24 @@
1
+
2
+ <%# Used to render a unique flash message styling %>
3
+ <%%
4
+ if request.xhr?
5
+ flash_message = flash.now[:success] || flash.now[:notice] || flash.now[:alert]
6
+ style_classes = ""
7
+ else
8
+ style_classes = "margin-top-10 margin-bottom-5 margin-left-40 margin-right-40"
9
+ flash_message = flash[:success] || flash[:notice] || flash[:alert]
10
+ end
11
+ cls_name = "alert"
12
+ cls_name = 'alert-success' if flash.now[:success] || flash[:success]
13
+ cls_name = 'alert-notice' if flash.now[:notice] || flash[:notice]
14
+ cls_name = 'alert-error' if flash.now[:alert] || flash[:alert]
15
+
16
+ flash_message = flash_message.strip if flash_message
17
+
18
+ %>
19
+ <%% unless flash_message.blank? %>
20
+ <div class="<%%= style_classes %> alert <%%= cls_name %> fade in" data-alert="alert" style="margin-bottom:5px;">
21
+ <a class="close" data-dismiss='alert' href="#">×</a>
22
+ <p><%%= flash_message %></p>
23
+ </div>
24
+ <%% end %>
@@ -0,0 +1,42 @@
1
+
2
+ <%%# meta tags%>
3
+ <%% if @meta_tags %>
4
+ <%% if @meta_tags[:rel_prev] %>
5
+ <link rel="prev" href="<%%%= @meta_tags[:rel_prev] %>" />
6
+ <%% end %>
7
+ <%% if @meta_tags[:rel_next] %>
8
+ <link rel="next" href="<%%%= @meta_tags[:rel_next] %>" />
9
+ <%% end %>
10
+ <%% if @meta_tags[:canonical] %>
11
+ <link rel="canonical" href="<%%%= @meta_tags[:canonical] %>" />
12
+ <%% end %>
13
+ <%% if @meta_tags[:meta_description] %>
14
+ <meta name="description" content="<%%%= @meta_tags[:meta_description] %>"></meta>
15
+ <%% else %>
16
+ <meta name="description" content="Twitter Like App = A learning app."></meta>
17
+ <%% end %>
18
+ <%% if @meta_tags[:meta_keywords] %>
19
+ <meta name="keywords" content="<%%%= @meta_tags[:meta_keywords] %>"></meta>
20
+ <%% else %>
21
+ <%% meta_keywords = "Twitter Like App = A learning app." %>
22
+ <meta name="keywords" content="<%%%= meta_keywords %>"></meta>
23
+ <%% end %>
24
+ <%% if @meta_tags[:robots] %>
25
+ <meta name="robots" content="<%%%= @meta_tags[:robots] %>" />
26
+ <%% else %>
27
+ <meta name="robots" content="all" />
28
+ <%% end %>
29
+ <%% end %>
30
+
31
+ <meta charset="utf-8">
32
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
33
+ <meta name="copyright" content="2012 kpvarma" />
34
+ <meta name="content-language" content="en" />
35
+ <meta name="author" content="K.P. Varma" />
36
+ <meta name="resource-type" content="document" />
37
+ <meta name="distribution" content="global" />
38
+ <meta name="rating" content="general" />
39
+
40
+
41
+
42
+
@@ -0,0 +1,9 @@
1
+ <%%#* Modal for showing popups (in general) -%>
2
+ <div id="div_modal_popup" class="modal wider-modals hide fade" tabindex="-3" role="dialog" aria-labelledby="Show Message" aria-hidden="true"></div>
3
+
4
+ <%%#* Modal for showing popup messages -%>
5
+ <div id="div_modal_popup_message" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="Show Message" aria-hidden="true">
6
+ <div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3 id="h3_modal_popup_message_header">Modal header</h3></div>
7
+ <div class="modal-body"><p>One fine body…</p></div>
8
+ <div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Close</button></div>
9
+ </div>
@@ -0,0 +1,35 @@
1
+ <div class="navbar navbar-inverse navbar-fixed-top">
2
+ <div class="navbar-inner">
3
+ <div class="<%= container_class %>">
4
+ <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
5
+ <span class="icon-bar"></span>
6
+ <span class="icon-bar"></span>
7
+ <span class="icon-bar"></span>
8
+ </a>
9
+ <a class="brand" href="#"><%= application_name -%></a>
10
+ <div class="nav-collapse">
11
+ <ul class="nav">
12
+ <li class="<%%= nav_class("home") %>">
13
+ <%%= link_to raw("Home"), "#" %>
14
+ </li>
15
+ <li class="<%%= nav_class("Menu 1") %>">
16
+ <%%= link_to raw("Menu 1"), "#" %>
17
+ </li>
18
+ <li class="<%%= nav_class("Menu 2") %>">
19
+ <%%= link_to raw("Menu 2"), "#" %>
20
+ </li>
21
+ <li class="<%%= nav_class("Menu 3") %>">
22
+ <%%= link_to raw("Menu 3"), "#" %>
23
+ </li>
24
+ <li class="<%%= nav_class("Menu 4") %>">
25
+ <%%= link_to raw("Menu 4"), "#" %>
26
+ </li>
27
+ </ul>
28
+ <form class="navbar-search pull-right" action="">
29
+ <input type="text" class="search-query span3" placeholder="Search">
30
+ </form>
31
+ </div><!-- /.nav-collapse -->
32
+ </div><!-- /.container -->
33
+ </div><!-- /.navbar-inner -->
34
+ </div><!-- /.navbar -->
35
+
@@ -0,0 +1,65 @@
1
+ <!DOCTYPE html>
2
+ <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
3
+ <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4
+ <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
5
+ <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
6
+ <head>
7
+
8
+ <title><%%= title -%></title>
9
+
10
+ <%%= render :partial=>"/layouts/common/meta_tags" -%>
11
+
12
+ <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
13
+ <link rel="icon" href="/assets/favicon.ico" type="image/png">
14
+
15
+ <%%= stylesheet_link_tag "application", :media => "all" -%>
16
+
17
+ <%%= csrf_meta_tags -%>
18
+
19
+ <%# Modernizr should be loaded first -%>
20
+ <script src="/assets/humdrum/modernizr.2.6.2.js"></script>
21
+
22
+ </head>
23
+
24
+ <body>
25
+
26
+ <!--[if lt IE 7]>
27
+ <p class="chromeframe">You are using an <strong>outdated</strong> browser.
28
+ Please <a href="http://browsehappy.com/">upgrade your browser</a> or
29
+ <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a>
30
+ to improve your experience.</p>
31
+ <![endif]-->
32
+
33
+ <div class="header-block clearfix">
34
+ <div id="div_page_header">
35
+ <%%= render :partial=>"/layouts/public/header" -%>
36
+ </div>
37
+ <div id="div_page_navbar">
38
+ <%%= render :partial=>"/layouts/public/navbar" -%>
39
+ </div>
40
+ </div>
41
+
42
+ <%%#* Show flash messages if controller has set any. %>
43
+ <div id="div_flash_message">
44
+ <%%= render :partial=>"/layouts/common/flash_message" -%>
45
+ </div>
46
+
47
+ <div class="<%= container_class %> padding-top-10" style="min-height:400px;">
48
+ <%%= yield %>
49
+ </div>
50
+
51
+ <%%#* Display Footer -%>
52
+ <%%= render :partial=>"/layouts/public/footer" -%>
53
+
54
+ <%%#* Display Hidden Overlays -%>
55
+ <%%= render :partial=>"/layouts/common/overlays" -%>
56
+
57
+ <%%#* Loading Javascripts -%>
58
+ <%%= javascript_include_tag "application" -%>
59
+
60
+ <script type='text/javascript'>
61
+ <%%= yield :javascript -%>
62
+ </script>
63
+
64
+ </body>
65
+ </html>
@@ -0,0 +1,35 @@
1
+ <div class="navbar navbar-inverse navbar-fixed-top">
2
+ <div class="navbar-inner">
3
+ <div class="<%= container_class %>">
4
+ <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
5
+ <span class="icon-bar"></span>
6
+ <span class="icon-bar"></span>
7
+ <span class="icon-bar"></span>
8
+ </a>
9
+ <a class="brand" href="#"><%= application_name -%></a>
10
+ <div class="nav-collapse">
11
+ <ul class="nav">
12
+ <li class="<%%= nav_class("home") %>">
13
+ <%%= link_to raw("Home"), "#" %>
14
+ </li>
15
+ <li class="<%%= nav_class("Menu 1") %>">
16
+ <%%= link_to raw("Menu 1"), "#" %>
17
+ </li>
18
+ <li class="<%%= nav_class("Menu 2") %>">
19
+ <%%= link_to raw("Menu 2"), "#" %>
20
+ </li>
21
+ <li class="<%%= nav_class("Menu 3") %>">
22
+ <%%= link_to raw("Menu 3"), "#" %>
23
+ </li>
24
+ <li class="<%%= nav_class("Menu 4") %>">
25
+ <%%= link_to raw("Menu 4"), "#" %>
26
+ </li>
27
+ </ul>
28
+ <form class="navbar-search pull-right" action="">
29
+ <input type="text" class="search-query span3" placeholder="Search">
30
+ </form>
31
+ </div><!-- /.nav-collapse -->
32
+ </div><!-- /.container -->
33
+ </div><!-- /.navbar-inner -->
34
+ </div><!-- /.navbar -->
35
+
@@ -0,0 +1,65 @@
1
+ <!DOCTYPE html>
2
+ <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
3
+ <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4
+ <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
5
+ <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
6
+ <head>
7
+
8
+ <title><%%= title -%></title>
9
+
10
+ <%%= render :partial=>"/layouts/common/meta_tags" -%>
11
+
12
+ <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
13
+ <link rel="icon" href="/assets/favicon.ico" type="image/png">
14
+
15
+ <%%= stylesheet_link_tag "application", :media => "all" -%>
16
+
17
+ <%%= csrf_meta_tags -%>
18
+
19
+ <%# Modernizr should be loaded first -%>
20
+ <script src="/assets/humdrum/modernizr.2.6.2.js"></script>
21
+
22
+ </head>
23
+
24
+ <body>
25
+
26
+ <!--[if lt IE 7]>
27
+ <p class="chromeframe">You are using an <strong>outdated</strong> browser.
28
+ Please <a href="http://browsehappy.com/">upgrade your browser</a> or
29
+ <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a>
30
+ to improve your experience.</p>
31
+ <![endif]-->
32
+
33
+ <div class="header-block clearfix">
34
+ <div id="div_page_header">
35
+ <%%= render :partial=>"/layouts/user/header" -%>
36
+ </div>
37
+ <div id="div_page_navbar">
38
+ <%%= render :partial=>"/layouts/user/navbar" -%>
39
+ </div>
40
+ </div>
41
+
42
+ <%%#* Show flash messages if controller has set any. %>
43
+ <div id="div_flash_message">
44
+ <%%= render :partial=>"/layouts/common/flash_message" -%>
45
+ </div>
46
+
47
+ <div class="<%= container_class %> padding-top-10" style="min-height:400px;">
48
+ <%%= yield %>
49
+ </div>
50
+
51
+ <%%#* Display Footer -%>
52
+ <%%= render :partial=>"/layouts/user/footer" -%>
53
+
54
+ <%%#* Display Hidden Overlays -%>
55
+ <%%= render :partial=>"/layouts/common/overlays" -%>
56
+
57
+ <%%#* Loading Javascripts -%>
58
+ <%%= javascript_include_tag "application" -%>
59
+
60
+ <script type='text/javascript'>
61
+ <%%= yield :javascript -%>
62
+ </script>
63
+
64
+ </body>
65
+ </html>
@@ -0,0 +1,5 @@
1
+ <h1>Welcome</h1>
2
+
3
+ <p>
4
+ asdakjsdjkasdk adahksvd
5
+ </p>
@@ -0,0 +1,237 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+
4
+ module Humdrum
5
+ module Generators
6
+ class ResourceGenerator < Rails::Generators::Base
7
+
8
+ include Rails::Generators::Migration
9
+
10
+ def self.next_migration_number(path)
11
+ @migration_number = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i.to_s
12
+ end
13
+
14
+ source_root File.expand_path('../templates', __FILE__)
15
+
16
+ desc "Generates a controller, view and route entries for CRUD operations of a resource"
17
+
18
+ argument :resource_name, :type=>:string
19
+ argument :fields, :type=>:hash, :banner =>"Resource Fields."
20
+
21
+ class_option :fluid, :type => :boolean, :default => true, :desc => "Pass true to create fluid layouts"
22
+ class_option :debug, :type => :boolean, :default => false, :desc => "This will print the arguments for debugging"
23
+
24
+ def debug_args
25
+ print_args if options.debug?
26
+ end
27
+
28
+ def generate_controllers
29
+ template "controllers/resource_controller.rb", "app/controllers/#{controller_path}_controller.rb"
30
+ end
31
+
32
+ def generate_views
33
+ template "views/resource/_edit.html.erb", "app/views/#{controller_path}/_edit.html.erb"
34
+ template "views/resource/_filters.html.erb", "app/views/#{controller_path}/_filters.html.erb"
35
+ template "views/resource/_form.html.erb", "app/views/#{controller_path}/_form.html.erb"
36
+ template "views/resource/_index.html.erb", "app/views/#{controller_path}/_index.html.erb"
37
+ template "views/resource/_item.html.erb", "app/views/#{controller_path}/_item.html.erb"
38
+ template "views/resource/_nav_filters.html.erb", "app/views/#{controller_path}/_nav_filters.html.erb"
39
+ template "views/resource/_new.html.erb", "app/views/#{controller_path}/_new.html.erb"
40
+ template "views/resource/_show.html.erb", "app/views/#{controller_path}/_show.html.erb"
41
+ template "views/resource/_summary.html.erb", "app/views/#{controller_path}/_summary.html.erb"
42
+ template "views/resource/create.js.erb", "app/views/#{controller_path}/create.js.erb"
43
+ template "views/resource/destroy.js.erb", "app/views/#{controller_path}/destroy.js.erb"
44
+ template "views/resource/edit.js.erb", "app/views/#{controller_path}/edit.js.erb"
45
+ template "views/resource/index.js.erb", "app/views/#{controller_path}/index.js.erb"
46
+ template "views/resource/new.js.erb", "app/views/#{controller_path}/new.js.erb"
47
+ template "views/resource/show.js.erb", "app/views/#{controller_path}/show.js.erb"
48
+ template "views/resource/update.js.erb", "app/views/#{controller_path}/update.js.erb"
49
+ template "views/resource/index.html.erb", "app/views/#{controller_path}/index.html.erb"
50
+ end
51
+
52
+ def generate_models
53
+ template "models/resource.rb", "app/models/#{model_path}.rb"
54
+ end
55
+
56
+ def generate_migrations
57
+ migration_template "migrations/create_resources.rb", "db/migrate/create_#{instances_name}"
58
+ end
59
+
60
+ def generate_routes
61
+ words = name_phrases
62
+ resource = words.pop
63
+ route words.reverse.inject("resources :#{resource.pluralize}") { |acc, phrase|
64
+ "namespace(:#{phrase}){ #{acc} }"
65
+ }
66
+ end
67
+
68
+ def generate_locales
69
+ template "config/locales/humdrum.en.yml", "config/locales/humdrum.en.yml"
70
+ end
71
+
72
+ private
73
+
74
+ def print_args
75
+ puts ":fields: #{fields}"
76
+ puts ":form_link_param: #{form_link_param}"
77
+ puts "name_phrases: #{name_phrases}"
78
+ puts "controller_path: #{controller_path}"
79
+ puts "controller_class: #{controller_class}"
80
+ puts "model_path: #{model_path}"
81
+ puts "model_class: #{model_class}"
82
+ puts "instance_name: #{instance_name}"
83
+ puts "instances_name: #{instances_name}"
84
+ puts "table_name: #{table_name}"
85
+
86
+ puts "index path: #{resource_link}"
87
+ puts "show path: #{resource_link('show')}"
88
+ puts "new path: #{resource_link('new')}"
89
+ puts "edit path: #{resource_link('edit')}"
90
+ puts "create path: #{resource_link('create')}"
91
+ puts "update path: #{resource_link('update')}"
92
+ puts "destroy path: #{resource_link('destroy')}"
93
+
94
+ puts "index url: #{resource_link('index','url')}"
95
+ puts "show url: #{resource_link('show','url')}"
96
+ puts "new url: #{resource_link('new','url')}"
97
+ puts "edit url: #{resource_link('edit','url')}"
98
+ puts "create url: #{resource_link('create','url')}"
99
+ puts "update url: #{resource_link('update','url')}"
100
+ puts "destroy url: #{resource_link('destroy','url')}"
101
+ end
102
+
103
+ def name_phrases
104
+ if resource_name.include?('::')
105
+ resource_name.split("::")
106
+ elsif resource_name.include?('/')
107
+ resource_name.split("/")
108
+ else
109
+ [resource_name]
110
+ end
111
+ end
112
+
113
+ def controller_path
114
+ words = name_phrases
115
+ resource = words.pop
116
+ if words.any?
117
+ words.collect(&:downcase).join("/") + "/#{resource.pluralize}"
118
+ else
119
+ "#{resource.pluralize}"
120
+ end
121
+ end
122
+
123
+ def controller_class
124
+ words = name_phrases
125
+ resource = words.pop
126
+ if words.any?
127
+ words.collect(&:camelize).join("::") + "::#{resource.camelize.pluralize}Controller"
128
+ else
129
+ "#{resource.camelize.pluralize}Controller"
130
+ end
131
+ end
132
+
133
+ def model_path
134
+ name_phrases.last.downcase
135
+ end
136
+
137
+ def model_class
138
+ name_phrases.last.camelize
139
+ end
140
+
141
+ def instance_name
142
+ name_phrases.last.underscore
143
+ end
144
+
145
+ def instances_name
146
+ instance_name.pluralize
147
+ end
148
+
149
+ def table_name
150
+ instances_name
151
+ end
152
+
153
+ def resource_link(actn='index', ltype='path')
154
+ map = {
155
+ 'index' => '',
156
+ 'show' => '',
157
+ 'edit' => 'edit_',
158
+ 'new' => 'new_',
159
+ 'update' => '',
160
+ 'create' => '',
161
+ 'destroy' => '',
162
+ }
163
+ words = name_phrases
164
+ resource = words.pop
165
+ if actn == "index"
166
+ map[actn] + (words.any? ? words.join("_" + "_") : "") + resource.pluralize + "_" + ltype
167
+ else
168
+ map[actn] + (words.any? ? words.join("_") + "_" : "") + resource + "_" + ltype
169
+ end
170
+ end
171
+
172
+ def form_link_param
173
+ words = name_phrases
174
+ resource = words.pop
175
+ if words.any?
176
+ # to print like this [:admin, :user, :location, @chakka]
177
+ # in form.html.erb
178
+ "[" + (words.map{|x| ":" + x.downcase} << "@" + resource.downcase).join(", ") + "]"
179
+ else
180
+ "@#{resource.downcase}"
181
+ end
182
+ end
183
+
184
+ def input_type(name, type)
185
+ if name.include?("email") && type == "string"
186
+ return "email"
187
+ elsif name.include?("password") && type == "string"
188
+ return "password"
189
+ elsif (name.include?("phone") || name.include?("mobile")) && type == "string"
190
+ return "tel"
191
+ else
192
+ case type
193
+ when "string"
194
+ "text"
195
+ when "text"
196
+ "textarea"
197
+ when "integer"
198
+ "number"
199
+ when "references"
200
+ "type"
201
+ when "date"
202
+ "date"
203
+ when "datetime"
204
+ "datetime-local"
205
+ when "timestamp", "time"
206
+ "time"
207
+ end
208
+ end
209
+ end
210
+
211
+ ## List of all the string fields
212
+ def string_fields
213
+ main_field = main_string_field
214
+ fields.map{|name, type| name if name != main_field && type == "string" }.uniq.compact
215
+ end
216
+
217
+ ## The main string field like 'name'
218
+ def main_string_field
219
+ fields.map{|name, type| name if name.include?("name") && type == "string"}.uniq.compact || fields.keys.any? ? fields.keys.first : "id"
220
+ end
221
+
222
+ ## Text Fields like description or summary
223
+ def text_fields
224
+ fields.map{|name, type| name if type == "text"}.uniq.compact
225
+ end
226
+
227
+ def container_class
228
+ options.fluid? ? "container-fluid" : "container"
229
+ end
230
+
231
+ def row_class
232
+ options.fluid? ? "row-fluid" : "row"
233
+ end
234
+
235
+ end
236
+ end
237
+ end
@@ -0,0 +1,6 @@
1
+ en:
2
+ forms:
3
+ created_successfully: "%{item} has been created successfully."
4
+ updated_successfully: "%{item} has been updated successfully."
5
+ destroyed_successfully: "%{item} has been removed successfully."
6
+ no_results_found: "No results found."