railstar 0.0.5 → 0.0.6

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.
Files changed (132) hide show
  1. data/Rakefile +2 -0
  2. data/app/assets/images/railstar/glyphicons-halflings-white.png +0 -0
  3. data/app/assets/images/railstar/glyphicons-halflings.png +0 -0
  4. data/app/assets/javascripts/railstar/application.js +15 -0
  5. data/app/assets/javascripts/railstar/bootstrap.min.js +7 -0
  6. data/app/assets/javascripts/railstar/feedbacks.js +2 -0
  7. data/app/assets/javascripts/railstar/general.js +2 -0
  8. data/app/assets/stylesheets/railstar/application.css +13 -0
  9. data/app/assets/stylesheets/railstar/bootstrap.min.css +643 -0
  10. data/app/assets/stylesheets/railstar/feedbacks.css +4 -0
  11. data/app/assets/stylesheets/railstar/general.css +4 -0
  12. data/app/controllers/railstar/application_controller.rb +4 -0
  13. data/app/controllers/railstar/feedbacks_controller.rb +4 -0
  14. data/app/controllers/railstar/general_controller.rb +19 -0
  15. data/app/helpers/railstar/application_helper.rb +4 -0
  16. data/app/helpers/railstar/feedbacks_helper.rb +4 -0
  17. data/app/helpers/railstar/general_helper.rb +4 -0
  18. data/app/views/layouts/railstar/application.html.erb +52 -0
  19. data/app/views/railstar/general/code.html.erb +83 -0
  20. data/app/views/railstar/general/database.html.erb +40 -0
  21. data/app/views/railstar/general/index.html.erb +33 -0
  22. data/config/routes.rb +8 -0
  23. data/lib/generators/railstar/install/USAGE +8 -0
  24. data/lib/generators/railstar/install/install_generator.rb +7 -0
  25. data/lib/generators/railstar/install/templates/railstar.yml +10 -0
  26. data/lib/generators/railstar/scaffold/USAGE +8 -0
  27. data/lib/generators/railstar/scaffold/scaffold_generator.rb +39 -0
  28. data/lib/generators/railstar/scaffold/templates/controller.rb +59 -0
  29. data/lib/generators/railstar/scaffold/templates/views/_detail.html.erb +10 -0
  30. data/lib/generators/railstar/scaffold/templates/views/_form.html.erb +19 -0
  31. data/lib/generators/railstar/scaffold/templates/views/confirm.html.erb +9 -0
  32. data/lib/generators/railstar/scaffold/templates/views/destroy.html.erb +12 -0
  33. data/lib/generators/railstar/scaffold/templates/views/edit.html.erb +8 -0
  34. data/lib/generators/railstar/scaffold/templates/views/index.html.erb +31 -0
  35. data/lib/generators/railstar/scaffold/templates/views/new.html.erb +7 -0
  36. data/lib/generators/railstar/scaffold/templates/views/show.html.erb +8 -0
  37. data/lib/railstar/engine.rb +5 -0
  38. data/lib/railstar/helper.rb +66 -0
  39. data/lib/railstar/version.rb +1 -1
  40. data/lib/railstar.rb +20 -0
  41. data/test/dummy/app/assets/javascripts/general.js +2 -0
  42. data/test/dummy/app/assets/javascripts/tasks.js +2 -0
  43. data/test/dummy/app/assets/stylesheets/general.css +4 -0
  44. data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
  45. data/test/dummy/app/assets/stylesheets/tasks.css +4 -0
  46. data/test/dummy/app/controllers/general_controller.rb +4 -0
  47. data/test/dummy/app/controllers/projects_controller.rb +59 -0
  48. data/test/dummy/app/controllers/tasks_controller.rb +83 -0
  49. data/test/dummy/app/helpers/general_helper.rb +2 -0
  50. data/test/dummy/app/helpers/tasks_helper.rb +2 -0
  51. data/test/dummy/app/models/project.rb +2 -0
  52. data/test/dummy/app/models/task.rb +2 -0
  53. data/test/dummy/app/views/general/index.html.erb +1 -0
  54. data/test/dummy/app/views/projects/_detail.html.erb +8 -0
  55. data/test/dummy/app/views/projects/_form.html.erb +17 -0
  56. data/test/dummy/app/views/projects/confirm.html.erb +9 -0
  57. data/test/dummy/app/views/projects/destroy.html.erb +12 -0
  58. data/test/dummy/app/views/projects/edit.html.erb +8 -0
  59. data/test/dummy/app/views/projects/index.html.erb +27 -0
  60. data/test/dummy/app/views/projects/new.html.erb +7 -0
  61. data/test/dummy/app/views/projects/show.html.erb +8 -0
  62. data/test/dummy/app/views/tasks/_form.html.erb +29 -0
  63. data/test/dummy/app/views/tasks/edit.html.erb +6 -0
  64. data/test/dummy/app/views/tasks/index.html.erb +27 -0
  65. data/test/dummy/app/views/tasks/new.html.erb +5 -0
  66. data/test/dummy/app/views/tasks/show.html.erb +20 -0
  67. data/test/dummy/config/initializers/secret_token.rb +1 -1
  68. data/test/dummy/config/railstar.yml +10 -0
  69. data/test/dummy/config/routes.rb +5 -56
  70. data/test/dummy/db/development.sqlite3 +0 -0
  71. data/test/dummy/db/migrate/20120305073308_create_tasks.rb +11 -0
  72. data/test/dummy/db/migrate/20120306035929_create_projects.rb +9 -0
  73. data/test/dummy/db/schema.rb +30 -0
  74. data/test/dummy/db/test.sqlite3 +0 -0
  75. data/test/dummy/log/development.log +15372 -0
  76. data/test/dummy/test/fixtures/projects.yml +7 -0
  77. data/test/dummy/test/fixtures/tasks.yml +11 -0
  78. data/test/dummy/test/functional/general_controller_test.rb +9 -0
  79. data/test/dummy/test/functional/tasks_controller_test.rb +49 -0
  80. data/test/dummy/test/unit/helpers/general_helper_test.rb +4 -0
  81. data/test/dummy/test/unit/helpers/tasks_helper_test.rb +4 -0
  82. data/test/dummy/test/unit/project_test.rb +7 -0
  83. data/test/dummy/test/unit/task_test.rb +7 -0
  84. data/test/dummy/tmp/cache/assets/BDB/F80/sprockets%2Fd092351b54cb720432480172c4550671 +0 -0
  85. data/test/dummy/tmp/cache/assets/C0E/6F0/sprockets%2F26725ce722134754103cc60f4113f741 +0 -0
  86. data/test/dummy/tmp/cache/assets/C16/850/sprockets%2Ff4c43aa1311657553d81a21368338645 +0 -0
  87. data/test/dummy/tmp/cache/assets/C41/B70/sprockets%2F711502a8b1581b81fae03815e6943350 +0 -0
  88. data/test/dummy/tmp/cache/assets/C4C/070/sprockets%2F340993b012bf8035917e042533856bfe +0 -0
  89. data/test/dummy/tmp/cache/assets/C53/DB0/sprockets%2F40d0821d8f791b174067645637bf4e24 +0 -0
  90. data/test/dummy/tmp/cache/assets/C76/160/sprockets%2F49c594d143212b346d11f1ecf9358103 +0 -0
  91. data/test/dummy/tmp/cache/assets/C8C/B80/sprockets%2F371bf96e99717688ed7313a0c53f4212 +0 -0
  92. data/test/dummy/tmp/cache/assets/CA7/800/sprockets%2Fe69178b5678ba83ba797559476fd6771 +0 -0
  93. data/test/dummy/tmp/cache/assets/CC1/390/sprockets%2F6c2a3ad7293b20d74f629fd692953985 +0 -0
  94. data/test/dummy/tmp/cache/assets/CD1/190/sprockets%2F2dfba8128914fcc04e4621b03b614656 +0 -0
  95. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  96. data/test/dummy/tmp/cache/assets/CEB/770/sprockets%2Fd47389dcf7a3411b695e5a7f88032e42 +0 -0
  97. data/test/dummy/tmp/cache/assets/CF0/1D0/sprockets%2F6fc757c2c8329244ca95d6909865bbc2 +0 -0
  98. data/test/dummy/tmp/cache/assets/D02/840/sprockets%2F5c24c1571e8550c21caf59bfa2048b63 +0 -0
  99. data/test/dummy/tmp/cache/assets/D06/910/sprockets%2Fcd3a511c04c4949626d23b83de17c37b +0 -0
  100. data/test/dummy/tmp/cache/assets/D1A/340/sprockets%2Fc91959db477af6672fae11158d0e574a +0 -0
  101. data/test/dummy/tmp/cache/assets/D1D/F20/sprockets%2Fd6bb8c79b5667def69f4301e7013628b +0 -0
  102. data/test/dummy/tmp/cache/assets/D2C/E30/sprockets%2F1142f2a14b9b84e21b28f864d223bdbb +0 -0
  103. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  104. data/test/dummy/tmp/cache/assets/D43/620/sprockets%2F179c3d423f233e8ad85e1e59bf14c4a8 +0 -0
  105. data/test/dummy/tmp/cache/assets/D45/650/sprockets%2F751853950dfa5eaa0329d25cf68ad4e9 +0 -0
  106. data/test/dummy/tmp/cache/assets/D46/0F0/sprockets%2F268fc8d914b620b386f2abcdf846085c +0 -0
  107. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  108. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  109. data/test/dummy/tmp/cache/assets/D5E/4E0/sprockets%2F27425a534e3a0132fc0b54ceced18f5f +0 -0
  110. data/test/dummy/tmp/cache/assets/D6F/530/sprockets%2F4b2f4da153cfe1bf54f95b25f1b94646 +0 -0
  111. data/test/dummy/tmp/cache/assets/D70/CD0/sprockets%2F4c8b0d0ed73cf706749e0f44ca4b49e3 +0 -0
  112. data/test/dummy/tmp/cache/assets/D72/F00/sprockets%2Fab9c6d46e48d2f4e92085bd1a921da66 +0 -0
  113. data/test/dummy/tmp/cache/assets/D89/460/sprockets%2Fd3da7452aa3ad6cf1528dcf542af0043 +0 -0
  114. data/test/dummy/tmp/cache/assets/D9A/290/sprockets%2F6190a38e1e28b2d90e3fb276af7bbbd5 +0 -0
  115. data/test/dummy/tmp/cache/assets/DA8/900/sprockets%2Fde7a2b3987b89b9d9afb268ce4204a4a +0 -0
  116. data/test/dummy/tmp/cache/assets/DD2/B10/sprockets%2F3fbe0f1ad09409fb8f1c66767bdd35bf +0 -0
  117. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  118. data/test/dummy/tmp/cache/assets/DF0/4D0/sprockets%2F6af61cc3fe9e7d3f7e758e38ff649ed2 +0 -0
  119. data/test/dummy/tmp/cache/assets/DFC/960/sprockets%2Fc9e6a7da83b5ea8666fa4422cabfa80b +0 -0
  120. data/test/dummy/tmp/cache/assets/E04/5A0/sprockets%2Fc8052f0d827a69d3feef3e3efef0e4b2 +0 -0
  121. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  122. data/test/dummy/tmp/cache/assets/E21/980/sprockets%2F1888a60aeec9e026ccc1b4e8a2a2acdf +0 -0
  123. data/test/dummy/tmp/cache/assets/E28/6A0/sprockets%2F7d5af50b0e7b5ca1eaaf9f7a87c51e1d +0 -0
  124. data/test/dummy/tmp/cache/assets/E3C/400/sprockets%2Fa5d07c411dccbbba1db3fe5cae5001f6 +0 -0
  125. data/test/dummy/tmp/cache/assets/E50/390/sprockets%2Ff2d2b0db1ed0f3a7daedf49c2d9d0d80 +0 -0
  126. data/test/dummy/tmp/pids/server.pid +1 -0
  127. data/test/functional/railstar/feedbacks_controller_test.rb +9 -0
  128. data/test/functional/railstar/general_controller_test.rb +11 -0
  129. data/test/integration/navigation_test.rb +10 -0
  130. data/test/unit/helpers/railstar/feedbacks_helper_test.rb +6 -0
  131. data/test/unit/helpers/railstar/general_helper_test.rb +6 -0
  132. metadata +223 -8
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ module Railstar
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Railstar
2
+ class FeedbacksController < ApplicationController
3
+ end
4
+ end
@@ -0,0 +1,19 @@
1
+ module Railstar
2
+ class GeneralController < ApplicationController
3
+ layout "railstar/application"
4
+
5
+ def index
6
+ end
7
+
8
+ def database
9
+ @connection = ActiveRecord::Base.connection
10
+ @tables = @connection.tables.sort
11
+ @tables.delete "schema_migrations"
12
+
13
+ @cols = %w(name human_name sql_type klass default type null)
14
+ end
15
+
16
+ def code
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,4 @@
1
+ module Railstar
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Railstar
2
+ module FeedbacksHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Railstar
2
+ module GeneralHelper
3
+ end
4
+ end
@@ -0,0 +1,52 @@
1
+ <!DOCTYPE html>
2
+ <html lang="ja">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title><%= Railstar.env["product_name"] %></title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+
8
+ <%= stylesheet_link_tag "railstar/application", :media => "all" %>
9
+ <style type="text/css">
10
+ body {
11
+ padding-top: 60px;
12
+ padding-bottom: 40px;
13
+ }
14
+ .sidebar-nav {
15
+ padding: 9px 0;
16
+ }
17
+ </style>
18
+
19
+ <%= javascript_include_tag "railstar/application" %>
20
+ <%= csrf_meta_tags %>
21
+
22
+ <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
23
+ <!--[if lt IE 9]>
24
+ <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
25
+ <![endif]-->
26
+ </head>
27
+
28
+ <body>
29
+ <div class="navbar navbar-fixed-top">
30
+ <div class="navbar-inner">
31
+ <div class="container">
32
+
33
+ <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
34
+ <span class="icon-bar"></span>
35
+ <span class="icon-bar"></span>
36
+ <span class="icon-bar"></span>
37
+ </a>
38
+ <%= link_to Railstar.env["product_name"], root_path, :class => "brand" %>
39
+ <div class="nav-collapse">
40
+ <ul class="nav">
41
+ <li class="<%= "active" if current_page?(database_path) %>"><%= link_to "Database", database_path %></li>
42
+ <li class="<%= "active" if current_page?(code_path) %>"><%= link_to "Code", code_path, {} %></li>
43
+ </ul>
44
+ </div><!--/.nav-collapse -->
45
+ </div>
46
+ </div>
47
+ </div>
48
+
49
+ <%= yield %>
50
+
51
+ </body>
52
+ </html>
@@ -0,0 +1,83 @@
1
+ <div class="container-fluid">
2
+ <div class="row-fluid">
3
+ <div class="span3">
4
+ <div class="well sidebar-nav">
5
+ <ul class="nav nav-list">
6
+
7
+ <li class="nav-header">Sidebar</li>
8
+ <li class="active"><a href="#">Link</a></li>
9
+ <li><a href="#">Link</a></li>
10
+ <li><a href="#">Link</a></li>
11
+ <li><a href="#">Link</a></li>
12
+ <li class="nav-header">Sidebar</li>
13
+
14
+ <li><a href="#">Link</a></li>
15
+ <li><a href="#">Link</a></li>
16
+ <li><a href="#">Link</a></li>
17
+ <li><a href="#">Link</a></li>
18
+ <li><a href="#">Link</a></li>
19
+ <li><a href="#">Link</a></li>
20
+
21
+ <li class="nav-header">Sidebar</li>
22
+ <li><a href="#">Link</a></li>
23
+ <li><a href="#">Link</a></li>
24
+ <li><a href="#">Link</a></li>
25
+ </ul>
26
+ </div><!--/.well -->
27
+ </div><!--/span-->
28
+
29
+ <div class="span9">
30
+ <div class="hero-unit">
31
+ <h1>Hello, world!</h1>
32
+ <p>This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
33
+ <p><a class="btn btn-primary btn-large">Learn more &raquo;</a></p>
34
+ </div>
35
+ <div class="row-fluid">
36
+
37
+ <div class="span4">
38
+ <h2>Heading</h2>
39
+ <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
40
+ <p><a class="btn" href="#">View details &raquo;</a></p>
41
+ </div><!--/span-->
42
+ <div class="span4">
43
+ <h2>Heading</h2>
44
+
45
+ <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
46
+ <p><a class="btn" href="#">View details &raquo;</a></p>
47
+ </div><!--/span-->
48
+ <div class="span4">
49
+ <h2>Heading</h2>
50
+ <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
51
+ <p><a class="btn" href="#">View details &raquo;</a></p>
52
+
53
+ </div><!--/span-->
54
+ </div><!--/row-->
55
+ <div class="row-fluid">
56
+ <div class="span4">
57
+ <h2>Heading</h2>
58
+ <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
59
+ <p><a class="btn" href="#">View details &raquo;</a></p>
60
+
61
+ </div><!--/span-->
62
+ <div class="span4">
63
+ <h2>Heading</h2>
64
+ <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
65
+ <p><a class="btn" href="#">View details &raquo;</a></p>
66
+ </div><!--/span-->
67
+ <div class="span4">
68
+
69
+ <h2>Heading</h2>
70
+ <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
71
+ <p><a class="btn" href="#">View details &raquo;</a></p>
72
+ </div><!--/span-->
73
+ </div><!--/row-->
74
+ </div><!--/span-->
75
+ </div><!--/row-->
76
+
77
+ <hr>
78
+
79
+ <footer>
80
+ <p>&copy; Company 2012</p>
81
+ </footer>
82
+
83
+ </div><!--/.fluid-container-->
@@ -0,0 +1,40 @@
1
+ <div class="container-fluid">
2
+ <div class="row-fluid">
3
+ <div class="span2">
4
+ <div class="well sidebar-nav">
5
+ <ul class="nav nav-list">
6
+
7
+ <li class="nav-header">Tables</li>
8
+ <% @tables.each do |table| %>
9
+ <li><%= link_to table, :anchor => table %></li>
10
+ <% end %>
11
+ </ul>
12
+ </div><!--/.well -->
13
+ </div><!--/span-->
14
+
15
+ <div class="span10">
16
+ <% @tables.each do |table| %>
17
+ <a name="<%= table %>"></a><h2><%= table %></h2>
18
+ <table class="table table-bordered table-condensed">
19
+ <thead>
20
+ <tr>
21
+ <% @cols.each do |c| %>
22
+ <th><%= c %></th>
23
+ <% end %>
24
+ </tr>
25
+ </thead>
26
+ <tbody>
27
+ <% @connection.columns(table).each do |column| %>
28
+ <tr>
29
+ <% @cols.each do |c| %>
30
+ <td><%= column.send(c) %></td>
31
+ <% end %>
32
+ </tr>
33
+ <% end %>
34
+ </tbody>
35
+ </table>
36
+ <% end %>
37
+ </div><!--/span-->
38
+ </div><!--/row-->
39
+
40
+ </div><!--/.fluid-container-->
@@ -0,0 +1,33 @@
1
+ <div class="container">
2
+
3
+ <!-- Main hero unit for a primary marketing message or call to action -->
4
+ <div class="hero-unit">
5
+ <h1>Hello, world!</h1>
6
+ <p>This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
7
+ <p><a class="btn btn-primary btn-large">Learn more &raquo;</a></p>
8
+
9
+ </div>
10
+
11
+ <!-- Example row of columns -->
12
+ <div class="row">
13
+ <div class="span4">
14
+ <h2>Heading</h2>
15
+ <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
16
+ <p><a class="btn" href="#">View details &raquo;</a></p>
17
+
18
+ </div>
19
+ <div class="span4">
20
+ <h2>Heading</h2>
21
+ <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
22
+ <p><a class="btn" href="#">View details &raquo;</a></p>
23
+ </div>
24
+ <div class="span4">
25
+
26
+ <h2>Heading</h2>
27
+ <p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
28
+ <p><a class="btn" href="#">View details &raquo;</a></p>
29
+ </div>
30
+ </div>
31
+
32
+ <hr>
33
+ </div> <!-- /container -->
data/config/routes.rb ADDED
@@ -0,0 +1,8 @@
1
+ Railstar::Engine.routes.draw do
2
+ root :to => "general#index"
3
+
4
+ match "database" => "general#database"
5
+ match "code" => "general#code"
6
+
7
+ resources :feedbacks
8
+ end
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Explain the generator
3
+
4
+ Example:
5
+ rails generate install Thing
6
+
7
+ This will create:
8
+ what/will/it/create
@@ -0,0 +1,7 @@
1
+ class Railstar::InstallGenerator < Rails::Generators::NamedBase
2
+ source_root File.expand_path('../templates', __FILE__)
3
+
4
+ def copy_config_file
5
+ template "railstar.yml", "config/railstar.yml"
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ default:
2
+ product_name: "Railstar"
3
+
4
+ development:
5
+
6
+ test:
7
+
8
+ staging:
9
+
10
+ production:
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Explain the generator
3
+
4
+ Example:
5
+ rails generate scaffold Thing
6
+
7
+ This will create:
8
+ what/will/it/create
@@ -0,0 +1,39 @@
1
+ class Railstar::ScaffoldGenerator < Rails::Generators::NamedBase
2
+ source_root File.expand_path('../templates', __FILE__)
3
+
4
+ argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
5
+ class_option :model, :type => :string, :default => nil
6
+
7
+ def create_scaffold_file
8
+ template "controller.rb", "app/controllers/#{plural_name}_controller.rb"
9
+
10
+ view_files.each do |f|
11
+ template "views/#{f}.html.erb", "app/views/#{plural_name}/#{f}.html.erb"
12
+ end
13
+ end
14
+
15
+ def model_class_name
16
+ if options.model.present?
17
+ options.model.singularize.camelize
18
+ else
19
+ class_name.demodulize.singularize
20
+ end
21
+ end
22
+
23
+ def controller_class_name
24
+ class_name.pluralize
25
+ end
26
+
27
+ def controller_file_name
28
+ controller_class_name.underscore
29
+ end
30
+
31
+ def singular_name
32
+ controller_file_name.singularize
33
+ end
34
+
35
+ private
36
+ def view_files
37
+ %w(_form _detail confirm index show new edit destroy)
38
+ end
39
+ end
@@ -0,0 +1,59 @@
1
+ # -*- coding: utf-8 -*-
2
+ # destroyメソッドに注意。モバイル対応&テキストリンク利用のためイレギュラーなことをしている
3
+ # restに対応した形を徹底したい場合は、削除確認ページへのリンクを以下の様に、formにする
4
+ # <%%= form_tag(<%= class_name %>_path(<%= file_name %>, :mode => "draft"), :method=>:delete) do %><%%= submit_tag "delete", :name => "delete" %><%% end %>
5
+
6
+ class <%= controller_class_name %>Controller < ApplicationController
7
+ def index
8
+ @<%= plural_name %> = <%= model_class_name %>.order("created_at desc").all
9
+ end
10
+
11
+ def show
12
+ @<%= singular_name %> = <%= model_class_name %>.find(params[:id])
13
+ render "destroy" if params[:mode] == "draft"
14
+ end
15
+
16
+ def new
17
+ @<%= singular_name %> = <%= model_class_name %>.new(params[:<%= singular_name %>])
18
+ end
19
+
20
+ def edit
21
+ @<%= singular_name %> = <%= model_class_name %>.find(params[:id])
22
+ end
23
+
24
+ def create
25
+ @<%= singular_name %> = <%= model_class_name %>.new(params[:<%= singular_name %>])
26
+ save
27
+ end
28
+
29
+ def update
30
+ @<%= singular_name %> = <%= model_class_name %>.find(params[:id])
31
+ @<%= singular_name %>.attributes = params[:<%= singular_name %>]
32
+ save
33
+ end
34
+
35
+ def destroy
36
+ @<%= singular_name %> = <%= model_class_name %>.find(params[:id])
37
+ if params.key?("back")
38
+ redirect_to(<%= singular_name %>_url)
39
+ elsif params[:mode] != "draft"
40
+ @<%= singular_name %>.destroy
41
+ redirect_to(<%= singular_name %>_url, :notice => "deleted success.")
42
+ end
43
+ end
44
+
45
+
46
+ private
47
+ def save
48
+ if !params.key?("back") && @<%= file_name %>.valid?
49
+ if params[:mode] == "draft"
50
+ render :action => 'confirm'
51
+ else
52
+ @<%= file_name %>.save!
53
+ redirect_to <%= singular_name %>_path(@<%= singular_name %>), :notice => 'saved success.'
54
+ end
55
+ else
56
+ render (@<%= singular_name %>.new_record? ? :new : :edit)
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,10 @@
1
+ <table class="bordered-table zebra-striped">
2
+ <% for attribute in attributes -%>
3
+
4
+ <tr>
5
+ <th><%= attribute.human_name %></th>
6
+ <td><%%= @<%= singular_name %>.<%= attribute.name %> %></td>
7
+ </tr>
8
+
9
+ <% end -%>
10
+ </table>
@@ -0,0 +1,19 @@
1
+ <%%= form_for(@<%= singular_name %>, :url => save_action(@<%= singular_name %>, :mode => "draft")) do |f| %>
2
+ <%% if @<%= singular_name %>.errors.any? %>
3
+ <%% @<%= singular_name %>.errors.full_messages.each do |msg| %>
4
+ <p><%%= msg %></p>
5
+ <%% end %>
6
+ <%% end %>
7
+
8
+
9
+ <table class="bordered-table zebra-striped">
10
+ <% for attribute in attributes -%>
11
+ <tr>
12
+ <th><%%= f.label :<%= attribute.name %> %></th>
13
+ <td><%%= f.<%= attribute.field_type %> :<%= attribute.name %> %></td>
14
+ </tr>
15
+ <% end -%>
16
+ </table>
17
+
18
+ <%%= f.submit :class => "btn primary" %>
19
+ <%% end %>
@@ -0,0 +1,9 @@
1
+ <h1>Confirm <%= singular_name %></h1>
2
+
3
+ <%%= render :partial => 'detail' %>
4
+
5
+ <%%= form_tag({}, :method => request.request_method) do %>
6
+ <%%= raw params_to_hidden_tag :<%= singular_name %> %>
7
+ <input type="submit" value="戻る" name="back" class="btn" />
8
+ <input type="submit" value="保存" class="btn primary" />
9
+ <%% end %>
@@ -0,0 +1,12 @@
1
+ <h1>Destroy <%= singular_name %></h1>
2
+
3
+ <%%= render :partial => 'detail' %>
4
+
5
+ <%%= form_tag({}, :method => "delete") do -%>
6
+ <input type="submit" value="Cancel" name="back" class="btn" />
7
+ <input type="submit" value="Destroy" class="btn error" />
8
+ <%% end -%>
9
+
10
+ <div>
11
+ <%%= link_to 'Back', <%= plural_name %>_path, :class => "btn" %>
12
+ </div>
@@ -0,0 +1,8 @@
1
+ <h1>Editing <%= singular_name %></h1>
2
+
3
+ <%%= render :partial => 'form' %>
4
+
5
+ <div>
6
+ <%%= link_to 'Show', <%= singular_name %>_path(@<%= singular_name %>), :class => "btn" %>
7
+ <%%= link_to 'Back', <%= plural_name %>_path, :class => "btn" %>
8
+ </div>
@@ -0,0 +1,31 @@
1
+ <h1>Listing <%= plural_name %></h1>
2
+
3
+ <table>
4
+ <thead>
5
+ <tr>
6
+ <% for attribute in attributes -%>
7
+ <th><%= attribute.human_name %></th>
8
+ <% end -%>
9
+ <th></th>
10
+ <th></th>
11
+ <th></th>
12
+ </tr>
13
+ </thead>
14
+
15
+
16
+ <tbody>
17
+ <%% @<%= plural_name %>.each do |<%= singular_name %>| %>
18
+ <tr>
19
+ <% for attribute in attributes -%>
20
+ <th><%= attribute.human_name.titleize %></th>
21
+ <td><%%= <%= file_name %>.<%= attribute.name %> %></td>
22
+ <% end -%>
23
+ <td><%%= link_to 'Show', <%= singular_name %> %></td>
24
+ <td><%%= link_to 'Edit', edit_<%= singular_name %>_path(<%= singular_name %>) %></td>
25
+ <td><%%= link_to 'Delete', <%= singular_name %>_path(<%= singular_name %>, :mode => "draft") %></td>
26
+ </tr>
27
+ <%% end %>
28
+ </tbody>
29
+ </table>
30
+
31
+ <%%= link_to 'New <%= human_name %>', new_<%= singular_name %>_path %>
@@ -0,0 +1,7 @@
1
+ <h1>New <%= singular_name %></h1>
2
+
3
+ <%%= render :partial => 'form' %>
4
+
5
+ <div>
6
+ <%%= link_to 'Back', <%= plural_name %>_path, :class => "btn" %>
7
+ </div>
@@ -0,0 +1,8 @@
1
+ <h1>Showing <%= singular_name %></h1>
2
+ <%%= render :partial => 'detail' %>
3
+
4
+ <div>
5
+ <%%= link_to 'Edit', edit_<%= singular_name %>_path(@<%= singular_name %>), :class => "btn" %>
6
+ <%%= link_to 'Back', <%= plural_name %>_path, :class => "btn" %>
7
+ </div>
8
+
@@ -0,0 +1,5 @@
1
+ module Railstar
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Railstar
4
+ end
5
+ end
@@ -0,0 +1,66 @@
1
+ module Railstar
2
+ module Helper
3
+ def title(page_title)
4
+ content_for(:title) { page_title }
5
+ end
6
+
7
+ def stylesheet(*css)
8
+ content_for(:head) { stylesheet_link_tag(*css) }
9
+ end
10
+
11
+ def javascript(*js)
12
+ content_for(:head) { javascript_include_tag(*js) }
13
+ end
14
+
15
+ def auto_discovery_rss(rss)
16
+ content_for(:head) do
17
+ %Q(<link rel="alternate" type="application/rss+xml" href="#{rss}" title="RSS 2.0" />)
18
+ end
19
+ end
20
+
21
+ def hbr(str)
22
+ str = html_escape(str)
23
+ br(str)
24
+ end
25
+
26
+ def br(str)
27
+ str.gsub(/\r\n|\r|\n/, "<br />")
28
+ end
29
+
30
+ def url2link(str)
31
+ str.gsub(/(https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:@&=+$,%#]+)/){"<a href='#{$1}'>#{$1}</a>"}
32
+ end
33
+
34
+ def params_to_hidden_tag(object, options={})
35
+ str = ''
36
+ str << hidden_field_tag('back', 1) if options[:back]
37
+ attributes = params[object]
38
+ return str unless attributes
39
+ attributes.each do |method,value|
40
+ next if options[:except] && options[:except].include?(method.to_sym)
41
+ if value.is_a? Hash
42
+ value.each do |k,v|
43
+ if v.is_a? Hash
44
+ v.each do |l,w|
45
+ str << hidden_field_tag("#{object}[#{method}][#{k}][#{l}]", w)
46
+ end
47
+ else
48
+ str << hidden_field_tag("#{object}[#{method}][#{k}]", v)
49
+ end
50
+ end
51
+ else
52
+ str << hidden_field(object, method, :value => attributes[method])
53
+ end
54
+ end
55
+ raw(str)
56
+ end
57
+
58
+ def save_action(object, options={})
59
+ if object.new_record?
60
+ {:action => "create"}
61
+ else
62
+ {:action => "update", :id => object}
63
+ end.merge(options)
64
+ end
65
+ end
66
+ end
@@ -1,3 +1,3 @@
1
1
  module Railstar
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/railstar.rb CHANGED
@@ -1,2 +1,22 @@
1
+ require 'railstar/engine'
2
+
3
+ require 'railstar/helper'
4
+ ActionView::Base.send(:include, Railstar::Helper)
5
+
6
+
7
+
1
8
  module Railstar
9
+ def self.env
10
+ @env ||= load_env
11
+ end
12
+
13
+ def self.load_env
14
+ puts "################# LOAD railstar.yml #################"
15
+ if File.exist?(file = File.join(Rails.root.to_s, 'config', 'railstar.yml'))
16
+ rs = YAML.load_file(file)
17
+ (rs["default"] || {}).merge(rs[Rails.env] || {})
18
+ else
19
+ {}
20
+ end
21
+ end
2
22
  end
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */