pinkman 0.9.9.8 → 0.9.9.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +12 -12
  3. data/app/assets/javascripts/pinkman_base/collection.coffee +48 -20
  4. data/app/assets/javascripts/pinkman_base/common.coffee +38 -9
  5. data/app/assets/javascripts/pinkman_base/controller.coffee +134 -36
  6. data/app/assets/javascripts/pinkman_base/mixins.coffee +8 -4
  7. data/app/assets/javascripts/pinkman_base/object.coffee.erb +15 -13
  8. data/app/assets/javascripts/pinkman_base/pinkman.coffee +16 -0
  9. data/app/assets/javascripts/pinkman_base/render.coffee.erb +17 -5
  10. data/app/assets/javascripts/pinkman_base/router.coffee +95 -46
  11. data/app/assets/javascripts/pinkman_base/tools.coffee +3 -3
  12. data/app/assets/stylesheets/_colors.scss +45 -0
  13. data/app/assets/stylesheets/_custom_colors.scss +7 -0
  14. data/app/assets/stylesheets/_mixins.scss +39 -0
  15. data/app/assets/stylesheets/_settings.scss +1 -0
  16. data/app/assets/stylesheets/pinkman/buttons.scss +15 -0
  17. data/app/assets/stylesheets/pinkman/colors.scss +99 -0
  18. data/app/assets/stylesheets/pinkman/containers.scss +15 -0
  19. data/app/assets/stylesheets/pinkman/elements.scss +33 -0
  20. data/app/assets/stylesheets/pinkman/forms.scss +89 -0
  21. data/app/assets/stylesheets/pinkman/grid.scss +120 -0
  22. data/app/assets/stylesheets/pinkman/imgs.scss +7 -0
  23. data/app/assets/stylesheets/pinkman/lists.scss +58 -0
  24. data/app/assets/stylesheets/pinkman/loaders.scss +495 -0
  25. data/app/assets/stylesheets/pinkman/margins.scss +65 -0
  26. data/app/assets/stylesheets/pinkman/portfolio.scss +59 -0
  27. data/app/assets/stylesheets/pinkman/pygments.css.erb +1 -0
  28. data/app/assets/stylesheets/pinkman/reset.scss +51 -0
  29. data/app/assets/stylesheets/pinkman/sector.scss +10 -0
  30. data/app/assets/stylesheets/pinkman/tables.scss +62 -0
  31. data/app/assets/stylesheets/pinkman/typo.scss +104 -0
  32. data/app/assets/stylesheets/pinkman.css +17 -0
  33. data/app/controllers/pinkman/pinkman_controller.rb +6 -0
  34. data/app/helpers/pinkman/pinkman_helper.rb +14 -0
  35. data/app/views/pinkman/_error_for.html.slim +4 -0
  36. data/app/views/pinkman/pinkman/_form_input.html.slim +4 -0
  37. data/app/views/pinkman/pinkman/_form_select.html.slim +13 -0
  38. data/app/views/pinkman/pinkman/_form_textarea.html.slim +4 -0
  39. data/app/views/pinkman/pinkman/hello.html.erb +53 -0
  40. data/config/routes.rb +7 -0
  41. data/lib/generators/pinkman/USAGE +60 -14
  42. data/lib/generators/pinkman/app_base_generator.rb +16 -4
  43. data/lib/generators/pinkman/controller_generator.rb +29 -0
  44. data/lib/generators/pinkman/crud_generator.rb +24 -0
  45. data/lib/generators/pinkman/initializer_generator.rb +12 -0
  46. data/lib/generators/pinkman/install_generator.rb +29 -2
  47. data/lib/generators/pinkman/model_generator.rb +2 -2
  48. data/lib/generators/pinkman/page_generator.rb +15 -0
  49. data/lib/generators/pinkman/route_generator.rb +40 -0
  50. data/lib/generators/pinkman/route_resource_generator.rb +40 -0
  51. data/lib/generators/pinkman/template_generator.rb +47 -0
  52. data/lib/generators/pinkman/templates/api.rb.erb +6 -6
  53. data/lib/generators/pinkman/templates/api_controller.rb +22 -18
  54. data/lib/generators/pinkman/templates/app.coffee.erb +1 -0
  55. data/lib/generators/pinkman/templates/app_app.coffee.erb +1 -0
  56. data/lib/generators/pinkman/templates/app_collection.coffee.erb +1 -1
  57. data/lib/generators/pinkman/templates/app_object.coffee.erb +1 -1
  58. data/lib/generators/pinkman/templates/app_router.coffee.erb +1 -0
  59. data/lib/generators/pinkman/templates/app_routes.coffee.erb +34 -0
  60. data/lib/generators/pinkman/templates/controller.coffee.erb +4 -0
  61. data/lib/generators/pinkman/templates/example.mixin.coffee.erb +32 -0
  62. data/lib/generators/pinkman/templates/hello.controller.coffee.erb +98 -0
  63. data/lib/generators/pinkman/templates/initializer.rb.erb +6 -0
  64. data/lib/generators/pinkman/templates/my.pinkman.app.js +70 -0
  65. data/lib/generators/pinkman/templates/pink_template.html.erb.erb +4 -0
  66. data/lib/generators/pinkman/templates/pink_template.html.haml.erb +3 -0
  67. data/lib/generators/pinkman/templates/pink_template.html.slim.erb +3 -0
  68. data/lib/generators/pinkman/templates/serializer.rb.erb +6 -6
  69. data/lib/pinkman/base_helper.rb +15 -0
  70. data/lib/pinkman/form_helper/form_helpers.rb +65 -0
  71. data/lib/pinkman/form_helper.rb +36 -0
  72. data/lib/pinkman/serializer/base.rb +0 -1
  73. data/lib/pinkman/version.rb +1 -1
  74. data/lib/pinkman/views_helpers/collection_helper.rb +16 -0
  75. data/lib/pinkman/views_helpers/conditional_helper.rb +19 -0
  76. data/lib/pinkman/views_helpers/dispatcher.rb +27 -0
  77. data/lib/pinkman/views_helpers/form_helper.rb +63 -0
  78. data/lib/pinkman/views_helpers/template_helper.rb +65 -0
  79. data/lib/pinkman/views_helpers/writer_helper.rb +31 -0
  80. data/lib/pinkman/views_helpers.rb +71 -0
  81. data/lib/pinkman.rb +31 -5
  82. data/public/jquery.pinkman.min.js +4 -0
  83. data/public/pinkman.min.js +2 -29
  84. metadata +61 -4
  85. data/app/helpers/pinkman_helper.rb +0 -87
@@ -0,0 +1,65 @@
1
+ .space {
2
+ margin: 30px auto;
3
+ }
4
+ .space-xs{
5
+ margin: 10px auto;
6
+ }
7
+ .space-sm{
8
+ margin: 20px auto;
9
+ }
10
+ // .space-md{
11
+ // margin: 30px auto;
12
+ // }
13
+ .space-lg{
14
+ margin: 40px auto;
15
+ }
16
+ .space-xl{
17
+ margin: 60px auto;
18
+ }
19
+ .space-hg{
20
+ margin: 90px auto;
21
+ }
22
+ .space-xhg{
23
+ margin: 120px auto;
24
+ }
25
+
26
+ .space-top{
27
+ margin: 30px 0 15px 0;
28
+ }
29
+
30
+ .space-h{
31
+ margin-left: 10px;
32
+ margin-right: 10px
33
+ }
34
+
35
+ .breathe-h{
36
+ padding-left: 10px;
37
+ padding-right: 10px
38
+ }
39
+
40
+ .breathe{
41
+ padding: 30px 10px;
42
+ }
43
+
44
+ .breathe-xs{
45
+ padding: 10px 10px;
46
+ }
47
+ .breathe-sm{
48
+ padding: 20px 10px;
49
+ }
50
+ // .breathe-md{
51
+ // padding: 30px 10px;
52
+ // }
53
+
54
+ .breathe-lg{
55
+ padding: 40px 10px;
56
+ }
57
+ .breathe-xl{
58
+ padding: 60px 10px;
59
+ }
60
+ .breathe-hg{
61
+ padding: 90px 10px;
62
+ }
63
+ .breathe-xhg{
64
+ padding: 120px 10px;
65
+ }
@@ -0,0 +1,59 @@
1
+ @import '../settings';
2
+ @import '../colors';
3
+ @import '../mixins';
4
+
5
+ .portfolio{
6
+ font-size: 0;
7
+ .wrapper,.item{
8
+ vertical-align: top;
9
+ @include box_sizing;
10
+ display: inline-block;
11
+ overflow: hidden;
12
+ font-size: $default_font_size;
13
+ }
14
+ &.ten-per-row{
15
+ .wrapper,.item{
16
+ width: percentage(1/10);
17
+ }
18
+ }
19
+ &.nine-per-row{
20
+ .wrapper,.item{
21
+ width: percentage(1/9);
22
+ }
23
+ }
24
+ &.eight-per-row{
25
+ .wrapper,.item{
26
+ width: percentage(1/8);
27
+ }
28
+ }
29
+ &.seven-per-row{
30
+ .wrapper,.item{
31
+ width: percentage(1/7);
32
+ }
33
+ }
34
+ &.six-per-row{
35
+ .wrapper,.item{
36
+ width: percentage(1/6);
37
+ }
38
+ }
39
+ &.five-per-row{
40
+ .wrapper,.item{
41
+ width: percentage(1/5);
42
+ }
43
+ }
44
+ &.four-per-row{
45
+ .wrapper,.item{
46
+ width: percentage(1/4);
47
+ }
48
+ }
49
+ &.three-per-row{
50
+ .wrapper,.item{
51
+ width: percentage(1/3);
52
+ }
53
+ }
54
+ &.two-per-row{
55
+ .wrapper,.item{
56
+ width: percentage(1/2);
57
+ }
58
+ }
59
+ }
@@ -0,0 +1 @@
1
+ <%= Rouge::Theme.find('github').render %>
@@ -0,0 +1,51 @@
1
+ html, body, div, span, applet, object, iframe,
2
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
3
+ a, abbr, acronym, address, big, cite, code,
4
+ del, dfn, em, img, ins, kbd, q, s, samp,
5
+ small, strike, strong, sub, sup, tt, var,
6
+ b, u, i, center,
7
+ dl, dt, dd, ol, ul, li,
8
+ fieldset, form, label, legend,
9
+ table, caption, tbody, tfoot, thead, tr, th, td,
10
+ article, aside, canvas, details, embed,
11
+ figure, figcaption, footer, header, hgroup,
12
+ menu, nav, output, ruby, section, summary,
13
+ time, mark, audio, video {
14
+ margin: 0;
15
+ padding: 0;
16
+ border: 0;
17
+ font-size: 100%;
18
+ font: inherit;
19
+ color: inherit;
20
+ vertical-align: baseline;
21
+ }
22
+ /* HTML5 display-role reset for older browsers */
23
+ article, aside, details, figcaption, figure,
24
+ footer, header, hgroup, menu, nav, section {
25
+ display: block;
26
+ }
27
+ body {
28
+ line-height: 1.1;
29
+ }
30
+ blockquote, q {
31
+ quotes: none;
32
+ }
33
+ blockquote:before, blockquote:after,
34
+ q:before, q:after {
35
+ content: '';
36
+ content: none;
37
+ }
38
+ table {
39
+ border-collapse: collapse;
40
+ border-spacing: 0;
41
+ }
42
+
43
+ html,body{
44
+ min-height: 100%;
45
+ height: 100%;
46
+ }
47
+
48
+ @viewport {
49
+ width: device-width;
50
+ zoom: 1;
51
+ }
@@ -0,0 +1,10 @@
1
+ @import '../mixins';
2
+ @import '../colors';
3
+
4
+ .sector{
5
+ @include box_sizing;
6
+ overflow: hidden;
7
+ clear: both;
8
+ width: 100%;
9
+ height: auto;
10
+ }
@@ -0,0 +1,62 @@
1
+ @import '../settings';
2
+ @import '../colors';
3
+
4
+ table.ui{
5
+ width: 100%;
6
+ margin: 0;
7
+ border-collapse: separate;
8
+ border-spacing: 0;
9
+ border: 1px solid $line_color;
10
+
11
+ &.borderless, &.bordless, &.light{
12
+ border: none;
13
+ thead,tbody{
14
+ tr{
15
+ th,td{
16
+ border: none;
17
+ }
18
+ }
19
+ }
20
+ }
21
+
22
+ &.zebra{
23
+ tbody{
24
+ tr:nth-child(even){
25
+ background-color: $bg_light;
26
+ }
27
+ }
28
+ }
29
+
30
+ thead, tbody{
31
+ tr{
32
+ td,th{
33
+ text-align: left;
34
+ border-bottom: 1px solid $line_color;
35
+ border-right: 1px solid $line_color;
36
+ padding: 10px;
37
+ &:last-child{
38
+ border-right: none;
39
+ }
40
+ }
41
+ &:last-child{
42
+ td{
43
+ border-bottom: none;
44
+ }
45
+ }
46
+ }
47
+ }
48
+ thead{
49
+ tr{
50
+ th{
51
+ font-weight: bold;
52
+ }
53
+ }
54
+ }
55
+ tbody{
56
+ tr{
57
+ td{
58
+
59
+ }
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,104 @@
1
+ @import '../settings';
2
+ @import '../colors';
3
+
4
+ html, body{
5
+ font-size: $default_font_size;
6
+ font-family: 'Muli', sans-serif;
7
+ }
8
+
9
+ .centralized, .center{
10
+ &,* { text-align: center;}
11
+ }
12
+
13
+ h1,h2,h3,h4,h5,h6{
14
+ font-family: 'Oswald', sans-serif;
15
+ margin-bottom: 5px;
16
+ }
17
+
18
+
19
+ h1{
20
+ font-size: 3rem;
21
+ }
22
+
23
+ h2{
24
+ font-size: 2.5rem;
25
+ }
26
+
27
+ h3{
28
+ font-size: 2rem;
29
+ }
30
+
31
+ h4{
32
+ font-size: 1.8rem;
33
+ }
34
+
35
+ h5{
36
+ font-size: 1.5rem;
37
+ }
38
+
39
+ h6{
40
+ font-size: 1.2rem;
41
+ }
42
+
43
+ small{
44
+ font-size: 80%;
45
+ }
46
+
47
+ b,strong, .b{
48
+ font-weight: bold;
49
+ }
50
+
51
+ p{
52
+ font-size: 1em;
53
+ margin: 1.2em 0;
54
+ }
55
+
56
+ .extra-small, .xs{
57
+ font-size: 0.7rem;
58
+ }
59
+
60
+ .small, .sm{
61
+ font-size: 0.9rem;
62
+ }
63
+
64
+ .medium, .md{
65
+ font-size: 1.5rem;
66
+ }
67
+
68
+ .big, .lg{
69
+ font-size: 2rem;
70
+ }
71
+
72
+ .xl, .extra-large,.bigger, .larger{
73
+ font-size: 3rem;
74
+ }
75
+
76
+ .hg, .huge{
77
+ font-size: 4rem;
78
+ }
79
+
80
+ .xhg, .extra-huge{
81
+ font-size: 6rem;
82
+ }
83
+
84
+ .subline{
85
+ padding: 0 0 0.5em 0;
86
+ border-bottom-width: 1px;
87
+ border-bottom-style: solid;
88
+ }
89
+
90
+ .underline{
91
+ text-decoration: underline;
92
+ }
93
+
94
+ .line-through, .strike{
95
+ text-decoration: line-through;
96
+ }
97
+
98
+ .upcase{
99
+ text-transform: uppercase;
100
+ }
101
+
102
+ a{
103
+ text-decoration: none;
104
+ }
@@ -0,0 +1,17 @@
1
+ /*
2
+ *= require ./pinkman/reset
3
+ *= require ./pinkman/grid
4
+ *= require ./pinkman/colors
5
+ *= require ./pinkman/containers
6
+ *= require ./pinkman/elements
7
+ *= require ./pinkman/forms
8
+ *= require ./pinkman/buttons
9
+ *= require ./pinkman/tables
10
+ *= require ./pinkman/lists
11
+ *= require ./pinkman/sector
12
+ *= require ./pinkman/typo
13
+ *= require ./pinkman/margins
14
+ *= require ./pinkman/loaders
15
+ *= require ./pinkman/portfolio
16
+ *= require ./pinkman/imgs
17
+ */
@@ -0,0 +1,6 @@
1
+ class Pinkman::PinkmanController < ActionController::Base
2
+ def hello
3
+ redirect_to '/' unless Rails.env.in? ['development','test']
4
+ render layout: nil
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ require 'pinkman/views_helpers'
2
+
3
+ module Pinkman
4
+ module PinkmanHelper
5
+
6
+ def p
7
+ Pinkman::ViewsHelpers.dispatcher(self)
8
+ end
9
+
10
+ alias pink p
11
+ alias pinkman p
12
+
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ = pinkman.wrap_in "errors.#{attribute}" do
2
+ .form-error
3
+ span.attr #{label}
4
+ span.msg {{ . }}
@@ -0,0 +1,4 @@
1
+ .form-field
2
+ label for=attr_name = label
3
+ == p.input input_options
4
+ == p.error_for attr_name, label
@@ -0,0 +1,13 @@
1
+ .form-field
2
+ label for=attr_name = label
3
+ == p.select attr_name, html_options
4
+ - if placeholder
5
+ - if obligatory.present?
6
+ option value="" selected='selected' disabled='disabled' = placeholder
7
+ - else
8
+ option value="" selected='selected' = placeholder
9
+
10
+ - options_hash.each do |k,v|
11
+ option value=k = v
12
+
13
+ == p.error_for attr_name, label
@@ -0,0 +1,4 @@
1
+ .form-field
2
+ label for=attr_name = label
3
+ == p.textarea textarea_options
4
+ == p.error_for attr_name, label
@@ -0,0 +1,53 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Pinkman.js</title>
6
+ <%= javascript_include_tag 'application' %>
7
+ </head>
8
+ <body>
9
+ <%= p.template 'pinkman-hello' do %>
10
+ <div style='background-color: #352946; width: 100%; height: 100%; position: fixed; top: 0; left: 0; overflow: hidden; z-index: 999999; padding: 15% 0; text-align: center;'>
11
+ <div style="color: white; text-align: center; font-family: Arial, sans; font-size: 64px;">
12
+ <b style='color: #EC3680;'>Pink</b>man
13
+ </div>
14
+ <div style="color: white; text-align: center; font-family: Arial, sans; font-size: 12px;">
15
+ JS/Rails Framework <br/>Version: <b style='font-weight: bold;'><%= Pinkman::VERSION %></b>
16
+ </div>
17
+ <div style="color: white; text-align: center; font-family: Arial, sans; margin: 15px auto; font-size: 24px;">
18
+ {{ title }}
19
+ </div>
20
+ <div style="color: white; text-align: center; font-family: Arial, sans; display: inline-block; padding: 15px; border-radius: 5px; background-color: #EC3680; margin: 30px auto;" data-action='you-are-over-me'>
21
+ Come here
22
+ </div>
23
+
24
+ <div style="color: white; text-align: center; font-family: Arial, sans; font-size: 12px; padding: 15px; background-color: #483a5a; margin: 30px auto;">
25
+ <b>assets/javascripts/pinkman/app/controllers/hello.coffee</b>
26
+ </div>
27
+ </div>
28
+ <% end %>
29
+ <div id='pinkman-hello'>
30
+ <h1>Ops...</h1>
31
+ <h4>Pinkman.js files could not be loaded.</h4>
32
+ <p>
33
+ It seems that Pinkman.js could not be loaded from <b>application.js.</b>
34
+ <br /><br /> Maybe Jquery is missing. Pinkman depends on Jquery.
35
+ </p>
36
+ <p>
37
+ Check out console (F12 on Chrome.) It may give you a clue of what is wrong.
38
+ </p>
39
+ <p>
40
+ This small test expects that:
41
+ </p>
42
+ <ol>
43
+ <li>You run <b>rails g pinkman:install</b></li>
44
+ <li>You are using <b>Asset Pipeline.</b></li>
45
+ <li><b>application.js</b> exists</li>
46
+ <li>application.js loads <b>jquery</b> before pinkman</li>
47
+ <li>application.js loads <b>my.pinkman.app.js</b></li>
48
+ </ol>
49
+ <p>Otherwise it won't work.</p>
50
+ </div>
51
+ </body>
52
+
53
+ </html>
data/config/routes.rb ADDED
@@ -0,0 +1,7 @@
1
+ Pinkman::Engine.routes.draw do
2
+
3
+ namespace :pinkman do
4
+ root to: 'pinkman#hello'
5
+ end
6
+
7
+ end
@@ -1,20 +1,66 @@
1
1
  Description:
2
- Pinkman generators
3
-
2
+ Pinkman generators
3
+
4
+ Install:
5
+ Setup pinkman. This creates common pinkman directories, defines a api namespace in routes.rb, etc.
6
+
7
+ Resource:
8
+ rails generate pinkman:resource model
9
+
10
+ Desc: Creates pinkman models (coffee) and rails api controllers to interact with a given Rails Model.
11
+ Files:
12
+ app/controllers/api/models_controller.rb
13
+ routes.rb
14
+ app/assets/.../pinkman/app/models/{object, collection}.coffee
15
+
16
+ Page:
17
+ rails generate pinkman:page page_name
18
+
19
+ Desc: Creates a pinkman controller, its template and route.
20
+ Files:
21
+ app/assets/.../pinkman/app/controllers/page_name.coffee
22
+ app/views/pinkman/page_name.html.erb
23
+ app/assets/.../pinkman/config/routes.coffee (add content)
24
+
25
+ CRUD:
26
+ rails generate pinkman:crud model
27
+
28
+ Desc: Creates CRUD routes, templates and controllers
29
+ Files:
30
+ app/assets/.../pinkman/app/controllers/model/{index,edit,new,show}.coffee
31
+ app/views/pinkman/model/{index,edit,new,show}.html.erb
32
+ app/assets/.../pinkman/config/routes.coffee (add content)
33
+
4
34
  Api:
5
- rails generate pinkman:api name
6
-
7
- This will create an api controller and its routes.
8
- app/controllers/api/pluralized_name_controller.rb
35
+ rails generate pinkman:api name
36
+
37
+ Desc: This will create an api controller and its routes.
38
+ Files:
39
+ app/controllers/api/pluralized_name_controller.rb
9
40
 
10
41
  Model:
11
42
  rails generate pinkman:model name
12
- Pinkman model: app/assets/javascripts/pinkman/models/name/name.js
13
- Pinkman collection: app/assets/javascripts/pinkman/models/name/pluralized_name.js
43
+
44
+ Files:
45
+ app/assets/javascripts/pinkman/models/name/name.js
46
+ app/assets/javascripts/pinkman/models/name/pluralized_name.js
47
+
48
+ Controller:
49
+ rails generate pinkman:controller level:sublevel:controller_name
50
+
51
+ Desc: Creates a controller, a template and a route.
52
+ Files:
53
+ app/assets/.../pinkman/app/controllers/level/sublevel/controller_name.coffee
54
+
55
+ Template:
56
+ rails generate pinkman:template level:sublevel:template_name
57
+
58
+ Desc: Generates a template.
59
+ Files:
60
+ app/views/pinkman/level/sublevel/_template_name.html.erb
14
61
 
15
- Install:
16
- Setup pinkman. This creates common pinkman directories, defines a api namespace in routes.rb, etc.
17
-
18
- Resource:
19
- rails generate pinkman:resource model
20
- Creates all coffeescripts and api resources to interact with a Rails Model named model.
62
+ Route:
63
+ rails generate pinkman:route level:sublevel:route
64
+
65
+ Desc: Generates a route to '/level/sublevel/route'
66
+ Files: app/assets/.../pinkman/config/routes.coffee (add content)
@@ -6,18 +6,30 @@ module Pinkman
6
6
  source_root File.expand_path('../templates', __FILE__)
7
7
 
8
8
  def generate_files
9
- template 'app_collection.coffee.erb', "app/assets/javascripts/pinkman/#{collection_filename}"
10
- template 'app_object.coffee.erb', "app/assets/javascripts/pinkman/#{object_filename}"
9
+ template 'app_app.coffee.erb', "app/assets/javascripts/pinkman/base/#{app_filename}"
10
+ template 'app_router.coffee.erb', "app/assets/javascripts/pinkman/base/#{router_filename}"
11
+ template 'app_collection.coffee.erb', "app/assets/javascripts/pinkman/base/#{collection_filename}"
12
+ template 'app_object.coffee.erb', "app/assets/javascripts/pinkman/base/#{object_filename}"
13
+ template 'app_routes.coffee.erb', "app/assets/javascripts/pinkman/config/routes.coffee"
11
14
  end
12
15
 
13
16
  private
14
17
 
18
+
19
+ def app_filename
20
+ 'app.coffee'
21
+ end
22
+
23
+ def router_filename
24
+ 'router.coffee'
25
+ end
26
+
15
27
  def object_filename
16
- 'app_object.coffee'
28
+ 'object.coffee'
17
29
  end
18
30
 
19
31
  def collection_filename
20
- 'app_collection.coffee'
32
+ 'collection.coffee'
21
33
  end
22
34
 
23
35
  def app_name
@@ -0,0 +1,29 @@
1
+ require 'rails/generators/base'
2
+
3
+ module Pinkman
4
+ class ControllerGenerator < ::Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ argument :controller_arg, type: :string
8
+
9
+ def normalize_argument
10
+ self.controller_arg = controller_arg.downcase.gsub(' ','_').strip.squeeze('_').gsub(/:/,'/')
11
+ end
12
+
13
+ def generate_controller
14
+ template "controller.coffee.erb", file_path
15
+ end
16
+
17
+ private
18
+
19
+ def file_path
20
+ path = (controller_arg + '.coffee').split('/')
21
+ Rails.root.join('app','assets','javascripts','pinkman','app','controllers',*path.map{|p| p})
22
+ end
23
+
24
+ def controller_name
25
+ controller_arg.split('/').join('-').gsub(/[_\/]/,'-')
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,24 @@
1
+ require 'rails/generators/base'
2
+
3
+ module Pinkman
4
+ class CrudGenerator < ::Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ argument :crud_name, type: :string, default: "nameHere"
8
+
9
+ def exec
10
+ generate "pinkman:route_resource #{crud_name}"
11
+ generate "pinkman:controller #{crud_name}:index"
12
+ generate "pinkman:template #{crud_name}:index"
13
+
14
+ generate "pinkman:controller #{crud_name}:show"
15
+ generate "pinkman:template #{crud_name}:show"
16
+
17
+ generate "pinkman:controller #{crud_name}:new"
18
+ generate "pinkman:template #{crud_name}:new"
19
+
20
+ generate "pinkman:controller #{crud_name}:edit"
21
+ generate "pinkman:template #{crud_name}:edit"
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,12 @@
1
+ require 'rails/generators/base'
2
+
3
+ module Pinkman
4
+ class InitializerGenerator < ::Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ def copy_initializer_file
8
+ template "initializer.rb.erb", "config/initializers/pinkman.rb"
9
+ end
10
+
11
+ end
12
+ end