kube-rails 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +35 -0
- data/Rakefile +1 -1
- data/lib/generators/kube/themed/templates/_form.html.erb +15 -0
- data/lib/generators/kube/themed/templates/_form.html.haml +11 -0
- data/lib/generators/kube/themed/templates/_form.html.slim +11 -0
- data/lib/generators/kube/themed/templates/edit.html.erb +2 -0
- data/lib/generators/kube/themed/templates/edit.html.haml +2 -0
- data/lib/generators/kube/themed/templates/edit.html.slim +2 -0
- data/lib/generators/kube/themed/templates/index.html.erb +35 -0
- data/lib/generators/kube/themed/templates/index.html.haml +24 -0
- data/lib/generators/kube/themed/templates/index.html.slim +24 -0
- data/lib/generators/kube/themed/templates/new.html.erb +2 -0
- data/lib/generators/kube/themed/templates/new.html.haml +2 -0
- data/lib/generators/kube/themed/templates/new.html.slim +2 -0
- data/lib/generators/kube/themed/templates/show.html.erb +18 -0
- data/lib/generators/kube/themed/templates/show.html.haml +13 -0
- data/lib/generators/kube/themed/templates/show.html.slim +13 -0
- data/lib/generators/kube/themed/themed_generator.rb +96 -0
- data/lib/kube/rails/version.rb +1 -1
- metadata +19 -3
data/README.md
CHANGED
@@ -1,3 +1,38 @@
|
|
1
1
|
# Kube for Rails 3.1 Asset Pipeline
|
2
|
+
[Kube](http://imperavi.com/kube/) is a minimal CSS-framework for developers. This projects integrates it for Rails 3.1 Asset Pipeline.
|
2
3
|
|
3
4
|
[![Build Status](https://secure.travis-ci.org/mmozuras/kube-rails.png)](http://travis-ci.org/mmozuras/kube-rails)
|
5
|
+
|
6
|
+
## Installing Gem
|
7
|
+
|
8
|
+
Include the [Kube Rails gem](http://rubygems.org/gems/kube-rails) in Gemfile to install it from [RubyGems.org](http://rubygems.org);
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem "kube-rails"
|
12
|
+
```
|
13
|
+
|
14
|
+
Then run ```bundle install``` from the command line.
|
15
|
+
|
16
|
+
## Using Generators
|
17
|
+
|
18
|
+
#### Install
|
19
|
+
|
20
|
+
Installs Kube to Asset Pipeline.
|
21
|
+
|
22
|
+
Usage:
|
23
|
+
|
24
|
+
rails g kube:install
|
25
|
+
|
26
|
+
#### Themed
|
27
|
+
|
28
|
+
Generate Kube compatible scaffold views. Support for Haml and Slim is available.
|
29
|
+
|
30
|
+
Usage:
|
31
|
+
|
32
|
+
rails g kube:themed [RESOURCE]
|
33
|
+
|
34
|
+
Example:
|
35
|
+
|
36
|
+
rails g scaffold Post title:string description:text
|
37
|
+
rake db:migrate
|
38
|
+
rails s kube:themed Posts
|
data/Rakefile
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
<%%= form_for @<%= resource_name %>, :html => { :class => 'forms' } do |f| %>
|
2
|
+
<ul>
|
3
|
+
<%- columns.each do |column| -%>
|
4
|
+
<li>
|
5
|
+
<%%= f.label :<%= column.name %>, :class => 'bold' %>
|
6
|
+
<%%= f.<%= column.field_type %> :<%= column.name %> %>
|
7
|
+
</li>
|
8
|
+
<%- end -%>
|
9
|
+
|
10
|
+
<li>
|
11
|
+
<%%= f.submit nil, :class => 'btn' %>
|
12
|
+
<%%= link_to 'Cancel', <%= controller_routing_path %>_path, :class => 'btn' %>
|
13
|
+
<li>
|
14
|
+
</ul>
|
15
|
+
<%% end %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
= form_for @<%= resource_name %>, :html => { :class => 'forms' } do |f|
|
2
|
+
%ul
|
3
|
+
<%- columns.each do |column| -%>
|
4
|
+
%li
|
5
|
+
= f.label :<%= column.name %>, :class => 'bold'
|
6
|
+
= f.<%= column.field_type %> :<%= column.name %>
|
7
|
+
<%- end -%>
|
8
|
+
|
9
|
+
%li
|
10
|
+
= f.submit nil, :class => 'btn'
|
11
|
+
= link_to 'Cancel', <%= controller_routing_path %>_path, :class => 'btn'
|
@@ -0,0 +1,11 @@
|
|
1
|
+
= form_for @<%= resource_name %>, :html => { :class => 'forms' } do |f|
|
2
|
+
ul
|
3
|
+
<%- columns.each do |column| -%>
|
4
|
+
li
|
5
|
+
= f.label :<%= column.name %>, :class => 'bold'
|
6
|
+
= f.<%= column.field_type %> :<%= column.name %>
|
7
|
+
<%- end -%>
|
8
|
+
|
9
|
+
li
|
10
|
+
= f.submit nil, :class => 'btn'
|
11
|
+
= link_to 'Cancel', <%= controller_routing_path %>_path, :class => 'btn'
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<%%- model_class = <%= model_class %> -%>
|
2
|
+
<h1><%%= model_class.model_name.human.pluralize %></h1>
|
3
|
+
|
4
|
+
<table class="striped">
|
5
|
+
<thead class="thead-black">
|
6
|
+
<tr>
|
7
|
+
<th><%%= model_class.human_attribute_name(:id) %></th>
|
8
|
+
<%- columns.each do |column| -%>
|
9
|
+
<th><%%= model_class.human_attribute_name(:<%= column.name %>) %></th>
|
10
|
+
<%- end -%>
|
11
|
+
<th><%%= model_class.human_attribute_name(:created_at) %></th>
|
12
|
+
<th>Actions</th>
|
13
|
+
</tr>
|
14
|
+
</thead>
|
15
|
+
<tbody>
|
16
|
+
<%% @<%= plural_resource_name %>.each do |<%= resource_name %>| %>
|
17
|
+
<tr>
|
18
|
+
<td><%%= link_to <%= resource_name %>.id, <%= singular_controller_routing_path %>_path(<%= resource_name %>) %></td>
|
19
|
+
<%- columns.each do |column| -%>
|
20
|
+
<td><%%= <%= resource_name %>.<%= column.name %> %></td>
|
21
|
+
<%- end -%>
|
22
|
+
<td><%%=l <%= resource_name %>.created_at %></td>
|
23
|
+
<td>
|
24
|
+
<%%= link_to 'Edit', edit_<%= singular_controller_routing_path %>_path(<%= resource_name %>), :class => 'btn btn-small' %>
|
25
|
+
<%%= link_to 'Destroy', <%= singular_controller_routing_path %>_path(<%= resource_name %>),
|
26
|
+
:method => :delete,
|
27
|
+
:data => { :confirm => 'Are you sure?' },
|
28
|
+
:class => 'btn btn-small' %>
|
29
|
+
</td>
|
30
|
+
</tr>
|
31
|
+
<%% end %>
|
32
|
+
</tbody>
|
33
|
+
</table>
|
34
|
+
|
35
|
+
<%%= link_to 'New', new_<%= singular_controller_routing_path %>_path, :class => 'btn' %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
- model_class = <%= model_class %>
|
2
|
+
%h1= model_class.model_name.human.pluralize
|
3
|
+
%table.striped
|
4
|
+
%thead.thead-black
|
5
|
+
%tr
|
6
|
+
%th= model_class.human_attribute_name(:id)
|
7
|
+
<%- columns.each do |column| -%>
|
8
|
+
%th= model_class.human_attribute_name(:<%= column.name %>)
|
9
|
+
<%- end -%>
|
10
|
+
%th= model_class.human_attribute_name(:created_at)
|
11
|
+
%th Actions
|
12
|
+
%tbody
|
13
|
+
- @<%= plural_resource_name %>.each do |<%= resource_name %>|
|
14
|
+
%tr
|
15
|
+
%td= link_to <%= resource_name %>.id, <%= singular_controller_routing_path %>_path(<%= resource_name %>)
|
16
|
+
<%- columns.each do |column| -%>
|
17
|
+
%td= <%= resource_name %>.<%= column.name %>
|
18
|
+
<%- end -%>
|
19
|
+
%td=l <%= resource_name %>.created_at
|
20
|
+
%td
|
21
|
+
= link_to 'Edit', edit_<%= singular_controller_routing_path %>_path(<%= resource_name %>), :class => 'btn btn-small'
|
22
|
+
= link_to 'Destroy', <%= singular_controller_routing_path %>_path(<%= resource_name %>), :method => :delete, :data => { :confirm => 'Are you sure?' }, :class => 'btn btn-small'
|
23
|
+
|
24
|
+
= link_to 'New', new_<%= singular_controller_routing_path %>_path, :class => 'btn'
|
@@ -0,0 +1,24 @@
|
|
1
|
+
- model_class = <%= model_class %>
|
2
|
+
h1= model_class.model_name.human.pluralize
|
3
|
+
table.striped
|
4
|
+
thead.thead-black
|
5
|
+
tr
|
6
|
+
th= model_class.human_attribute_name(:id)
|
7
|
+
<%- columns.each do |column| -%>
|
8
|
+
th= model_class.human_attribute_name(:<%= column.name %>)
|
9
|
+
<%- end -%>
|
10
|
+
th= model_class.human_attribute_name(:created_at)
|
11
|
+
th Actions
|
12
|
+
tbody
|
13
|
+
- @<%= plural_resource_name %>.each do |<%= resource_name %>|
|
14
|
+
tr
|
15
|
+
td= link_to <%= resource_name %>.id, <%= singular_controller_routing_path %>_path(<%= resource_name %>)
|
16
|
+
<%- columns.each do |column| -%>
|
17
|
+
td= <%= resource_name %>.<%= column.name %>
|
18
|
+
<%- end -%>
|
19
|
+
td=l <%= resource_name %>.created_at
|
20
|
+
td
|
21
|
+
= link_to 'Edit', edit_<%= singular_controller_routing_path %>_path(<%= resource_name %>), :class => 'btn btn-small'
|
22
|
+
= link_to 'Destroy', <%= singular_controller_routing_path %>_path(<%= resource_name %>), :method => :delete, :data => { :confirm => 'Are you sure?' }, :class => 'btn btn-small'
|
23
|
+
|
24
|
+
= link_to 'New', new_<%= singular_controller_routing_path %>_path, :class => 'btn'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%%- model_class = <%= model_class %> -%>
|
2
|
+
<h1><%%= model_class.model_name.human %></h1>
|
3
|
+
|
4
|
+
<dl>
|
5
|
+
<%- columns.each do |column| -%>
|
6
|
+
<dt class="bold"><%%= model_class.human_attribute_name(:<%= column.name %>) %>:</dt>
|
7
|
+
<dd><%%= @<%= resource_name %>.<%= column.name %> %></dd>
|
8
|
+
<%- end -%>
|
9
|
+
</dl>
|
10
|
+
|
11
|
+
<div>
|
12
|
+
<%%= link_to 'Back', <%= controller_routing_path %>_path, :class => 'btn' %>
|
13
|
+
<%%= link_to 'Edit', edit_<%= singular_controller_routing_path %>_path(@<%= resource_name %>), :class => 'btn' %>
|
14
|
+
<%%= link_to 'Destroy', <%= singular_controller_routing_path %>_path(@<%= resource_name %>),
|
15
|
+
:method => 'delete',
|
16
|
+
:data => { :confirm => 'Are you sure?' },
|
17
|
+
:class => 'btn' %>
|
18
|
+
</div>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
- model_class = <%= model_class %>
|
2
|
+
%h1= model_class.model_name.human
|
3
|
+
|
4
|
+
%dl
|
5
|
+
<%- columns.each do |column| -%>
|
6
|
+
%dt.bold= model_class.human_attribute_name(:<%= column.name %>) + ':'
|
7
|
+
%dd= @<%= resource_name %>.<%= column.name %>
|
8
|
+
<%- end -%>
|
9
|
+
|
10
|
+
%div
|
11
|
+
= link_to 'Back', <%= controller_routing_path %>_path, :class => 'btn'
|
12
|
+
= link_to 'Edit', edit_<%= singular_controller_routing_path %>_path(@<%= resource_name %>), :class => 'btn'
|
13
|
+
= link_to 'Destroy', <%= singular_controller_routing_path %>_path(@<%= resource_name %>), :method => "delete", :data => { :confirm => 'Are you sure?' }, :class => 'btn'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
- model_class = <%= model_class %>
|
2
|
+
h1= model_class.model_name.human
|
3
|
+
|
4
|
+
dl
|
5
|
+
<%- columns.each do |column| -%>
|
6
|
+
dt.bold= model_class.human_attribute_name(:<%= column.name %>) + ':'
|
7
|
+
dd= @<%= resource_name %>.<%= column.name %>
|
8
|
+
<%- end -%>
|
9
|
+
|
10
|
+
div
|
11
|
+
= link_to 'Back', <%= controller_routing_path %>_path, :class => 'btn'
|
12
|
+
= link_to 'Edit', edit_<%= singular_controller_routing_path %>_path(@<%= resource_name %>), :class => 'btn'
|
13
|
+
= link_to 'Destroy', <%= singular_controller_routing_path %>_path(@<%= resource_name %>), :method => "delete", :data => { :confirm => 'Are you sure?' }, :class => 'btn'
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'rails/generators/generated_attribute'
|
3
|
+
|
4
|
+
module Kube
|
5
|
+
module Generators
|
6
|
+
class ThemedGenerator < ::Rails::Generators::Base
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
|
+
argument :controller_path, :type => :string
|
9
|
+
argument :model_name, :type => :string, :required => false
|
10
|
+
argument :layout, :type => :string, :default => "application",
|
11
|
+
:banner => "Specify application layout"
|
12
|
+
|
13
|
+
def initialize(args, *options)
|
14
|
+
super(args, *options)
|
15
|
+
initialize_views_variables
|
16
|
+
end
|
17
|
+
|
18
|
+
def copy_views
|
19
|
+
generate_views
|
20
|
+
end
|
21
|
+
|
22
|
+
protected
|
23
|
+
|
24
|
+
def initialize_views_variables
|
25
|
+
@base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(controller_path)
|
26
|
+
@controller_routing_path = @controller_file_path.gsub(/\//, '_')
|
27
|
+
@model_name = @controller_class_nesting + "::#{@base_name.singularize.camelize}" unless @model_name
|
28
|
+
@model_name = @model_name.camelize
|
29
|
+
end
|
30
|
+
|
31
|
+
def controller_routing_path
|
32
|
+
@controller_routing_path
|
33
|
+
end
|
34
|
+
|
35
|
+
def singular_controller_routing_path
|
36
|
+
@controller_routing_path.singularize
|
37
|
+
end
|
38
|
+
|
39
|
+
def model_class
|
40
|
+
resource_name.classify
|
41
|
+
end
|
42
|
+
|
43
|
+
def resource_name
|
44
|
+
@model_name.demodulize.underscore
|
45
|
+
end
|
46
|
+
|
47
|
+
def plural_resource_name
|
48
|
+
resource_name.pluralize
|
49
|
+
end
|
50
|
+
|
51
|
+
def columns
|
52
|
+
begin
|
53
|
+
excluded_column_names = %w[id created_at updated_at]
|
54
|
+
begin
|
55
|
+
@model_name.constantize.columns.reject{|c| excluded_column_names.include?(c.name) }.collect{|c| ::Rails::Generators::GeneratedAttribute.new(c.name, c.type)}
|
56
|
+
rescue ActiveRecord::StatementInvalid => e
|
57
|
+
say e.message, :red
|
58
|
+
exit
|
59
|
+
end
|
60
|
+
rescue NoMethodError
|
61
|
+
@model_name.constantize.fields.collect{|c| c[1]}.reject{|c| excluded_column_names.include?(c.name) }.collect{|c| ::Rails::Generators::GeneratedAttribute.new(c.name, c.type.to_s)}
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def extract_modules(name)
|
66
|
+
modules = name.include?('/') ? name.split('/') : name.split('::')
|
67
|
+
name = modules.pop
|
68
|
+
path = modules.map { |m| m.underscore }
|
69
|
+
file_path = (path + [name.underscore]).join('/')
|
70
|
+
nesting = modules.map { |m| m.camelize }.join('::')
|
71
|
+
[name, path, file_path, nesting, modules.size]
|
72
|
+
end
|
73
|
+
|
74
|
+
def generate_views
|
75
|
+
views = {
|
76
|
+
"index.html.#{ext}" => File.join('app/views', @controller_file_path, "index.html.#{ext}"),
|
77
|
+
"new.html.#{ext}" => File.join('app/views', @controller_file_path, "new.html.#{ext}"),
|
78
|
+
"edit.html.#{ext}" => File.join('app/views', @controller_file_path, "edit.html.#{ext}"),
|
79
|
+
"_form.html.#{ext}" => File.join('app/views', @controller_file_path, "_form.html.#{ext}"),
|
80
|
+
"show.html.#{ext}" => File.join('app/views', @controller_file_path, "show.html.#{ext}")}
|
81
|
+
selected_views = views
|
82
|
+
options.engine == generate_templates(selected_views)
|
83
|
+
end
|
84
|
+
|
85
|
+
def generate_templates(views)
|
86
|
+
views.each do |template_name, output_path|
|
87
|
+
template template_name, output_path
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def ext
|
92
|
+
::Rails.application.config.generators.options[:rails][:template_engine] || :erb
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
data/lib/kube/rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kube-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -101,6 +101,22 @@ files:
|
|
101
101
|
- lib/generators/kube/install/install_generator.rb
|
102
102
|
- lib/generators/kube/install/templates/application.css
|
103
103
|
- lib/generators/kube/install/templates/kube.less
|
104
|
+
- lib/generators/kube/themed/templates/_form.html.erb
|
105
|
+
- lib/generators/kube/themed/templates/_form.html.haml
|
106
|
+
- lib/generators/kube/themed/templates/_form.html.slim
|
107
|
+
- lib/generators/kube/themed/templates/edit.html.erb
|
108
|
+
- lib/generators/kube/themed/templates/edit.html.haml
|
109
|
+
- lib/generators/kube/themed/templates/edit.html.slim
|
110
|
+
- lib/generators/kube/themed/templates/index.html.erb
|
111
|
+
- lib/generators/kube/themed/templates/index.html.haml
|
112
|
+
- lib/generators/kube/themed/templates/index.html.slim
|
113
|
+
- lib/generators/kube/themed/templates/new.html.erb
|
114
|
+
- lib/generators/kube/themed/templates/new.html.haml
|
115
|
+
- lib/generators/kube/themed/templates/new.html.slim
|
116
|
+
- lib/generators/kube/themed/templates/show.html.erb
|
117
|
+
- lib/generators/kube/themed/templates/show.html.haml
|
118
|
+
- lib/generators/kube/themed/templates/show.html.slim
|
119
|
+
- lib/generators/kube/themed/themed_generator.rb
|
104
120
|
- lib/kube/rails/engine.rb
|
105
121
|
- lib/kube/rails/kube.rb
|
106
122
|
- lib/kube/rails/version.rb
|
@@ -139,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
155
|
version: '0'
|
140
156
|
requirements: []
|
141
157
|
rubyforge_project: kube-rails
|
142
|
-
rubygems_version: 1.8.
|
158
|
+
rubygems_version: 1.8.23
|
143
159
|
signing_key:
|
144
160
|
specification_version: 3
|
145
161
|
summary: Kube for Rails 3.1 Asset Pipeline
|