rails_layout 0.3.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.textile +8 -0
- data/README.textile +59 -9
- data/lib/generators/layout/layout_generator.rb +9 -14
- data/lib/generators/layout/templates/bootstrap2-application.html.erb +2 -6
- data/lib/generators/layout/templates/bootstrap2-application.html.haml +2 -4
- data/lib/generators/layout/templates/bootstrap2-navigation.html.erb +10 -3
- data/lib/generators/layout/templates/bootstrap2-navigation.html.haml +6 -2
- data/lib/generators/layout/templates/bootstrap3-application.html.erb +1 -15
- data/lib/generators/layout/templates/bootstrap3-application.html.haml +1 -10
- data/lib/generators/layout/templates/bootstrap3-navigation.html.erb +18 -3
- data/lib/generators/layout/templates/bootstrap3-navigation.html.haml +12 -2
- data/lib/generators/layout/templates/foundation4-application.html.erb +1 -9
- data/lib/generators/layout/templates/foundation4-application.html.haml +1 -9
- data/lib/generators/layout/templates/foundation4-navigation.html.erb +12 -3
- data/lib/generators/layout/templates/foundation4-navigation.html.haml +11 -2
- data/lib/generators/layout/templates/navigation_links.html.erb +2 -0
- data/lib/generators/layout/templates/simple-navigation.html.erb +2 -2
- data/lib/generators/layout/templates/simple-navigation.html.haml +1 -1
- data/lib/generators/navigation/navigation_generator.rb +54 -0
- data/lib/generators/navigation/templates/navigation_links.html.erb +2 -0
- data/lib/rails_layout/version.rb +1 -1
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4cb2d7684106cd92eafacf25404500f020a6581
|
4
|
+
data.tar.gz: d8acf6da27ec2a6d3602d814e4f4653ddae60eee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f71d2f02f29f4949bdc4e557e703375073eb5b3b116658c5658be2c785f32f73efa3ee5ef15ada53d1b8be5b62547fc6d74cd068ec9d75751f00831a72db32af
|
7
|
+
data.tar.gz: e7d98d8105772adf776c4b353438fd254803c8c506490304c65ee351cab5b590d0ce9938ec31c876b9b224cf9133859640387657c403357572d76193b62e9c85
|
data/CHANGELOG.textile
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
h1. CHANGELOG
|
2
2
|
|
3
|
+
h3. 0.4.1 November 9, 2013
|
4
|
+
|
5
|
+
* add option to generate navigation links for Devise
|
6
|
+
|
7
|
+
h3. 0.4.0 November 9, 2013
|
8
|
+
|
9
|
+
* separate file for navigation links; isolate framework-specific markup in navigation partial
|
10
|
+
|
3
11
|
h3. 0.3.0 November 9, 2013
|
4
12
|
|
5
13
|
* create a file 'framework_and_overrides' instead of 'bootstrap_and_overrides' or 'foundation_and_overrides'
|
data/README.textile
CHANGED
@@ -10,19 +10,15 @@ Use it to set up a front-end framework:
|
|
10
10
|
* Twitter Bootstrap 3.0
|
11
11
|
* Zurb Foundation 4.0
|
12
12
|
|
13
|
-
It will rename *application.css
|
13
|
+
It will rename *application.css* to *application.css.scss*.
|
14
14
|
|
15
|
-
And
|
15
|
+
And add:
|
16
16
|
|
17
|
-
*
|
18
|
-
|
19
|
-
and add either:
|
20
|
-
|
21
|
-
* bootstrap_and_overrides.css.scss
|
17
|
+
* framework_and_overrides.css.scss
|
22
18
|
|
23
|
-
|
19
|
+
And modify the JavaScript asset file:
|
24
20
|
|
25
|
-
*
|
21
|
+
* application.js
|
26
22
|
|
27
23
|
It will set up a default application layout.
|
28
24
|
|
@@ -31,6 +27,8 @@ You also get partials for
|
|
31
27
|
* Rails flash messages
|
32
28
|
* navigation links
|
33
29
|
|
30
|
+
Optionally, you can generate a navigation links file suitable for use with Devise (the authentication gem).
|
31
|
+
|
34
32
|
h4. Supported Frameworks
|
35
33
|
|
36
34
|
You can generate layout files suitable for use with the following front-end frameworks:
|
@@ -48,11 +46,23 @@ The RailsLayout gem generates application layout files:
|
|
48
46
|
* app/views/layouts/application.html.erb
|
49
47
|
* app/views/layouts/_messages.html.erb
|
50
48
|
* app/views/layouts/_navigation.html.erb
|
49
|
+
* app/views/layouts/_navigation_links.html.erb
|
51
50
|
|
52
51
|
Additionally, when the @simple@ option is selected:
|
53
52
|
|
54
53
|
* app/assets/stylesheets/simple.css
|
55
54
|
|
55
|
+
h4. Note About the Navigation Partials
|
56
|
+
|
57
|
+
Two navigation partials are created:
|
58
|
+
|
59
|
+
* app/views/layouts/_navigation.html.erb
|
60
|
+
* app/views/layouts/_navigation_links.html.erb
|
61
|
+
|
62
|
+
The first file exists to isolate framework-specific styling.
|
63
|
+
|
64
|
+
The second file contains no framework-specific styling. It is only a list of links. You can add additional links to this file as needed.
|
65
|
+
|
56
66
|
h4. Support for ERB or Haml
|
57
67
|
|
58
68
|
If you are using ERB for Rails views, the RailsLayout gem will generate ERB files.
|
@@ -260,6 +270,46 @@ Additionally, it will restore these files to the default versions:
|
|
260
270
|
|
261
271
|
The file *app/assets/stylesheets/application.css.scss* will contain a CSS rule but you can ignore it or remove it.
|
262
272
|
|
273
|
+
h2. Navigation Links for Devise
|
274
|
+
|
275
|
+
If you are using Devise for authentication, you can generate a navigation links partial containing links for Devise.
|
276
|
+
|
277
|
+
<pre>
|
278
|
+
$ rails generate navigation --force
|
279
|
+
</pre>
|
280
|
+
|
281
|
+
This creates a file *app/views/layouts/_navigation_links.html.erb*:
|
282
|
+
|
283
|
+
<pre>
|
284
|
+
<%# add navigation links to this file %>
|
285
|
+
<li><%= link_to 'Home', root_path %></li>
|
286
|
+
<li><%= link_to 'About', page_path('about') %></li>
|
287
|
+
<li><%= link_to 'Contact', new_contact_path %></li>
|
288
|
+
<% if user_signed_in? %>
|
289
|
+
<li><%= link_to 'Logout', destroy_user_session_path, :method=>'delete' %></li>
|
290
|
+
<% else %>
|
291
|
+
<li><%= link_to 'Login', new_user_session_path %></li>
|
292
|
+
<% end %>
|
293
|
+
<% if user_signed_in? %>
|
294
|
+
<li><%= link_to 'Edit account', edit_user_registration_path %></li>
|
295
|
+
<% else %>
|
296
|
+
<li><%= link_to 'Sign up', new_user_registration_path %></li>
|
297
|
+
<% end %>
|
298
|
+
<% if user_signed_in? %>
|
299
|
+
<% if current_user.has_role? :admin %>
|
300
|
+
<li><%= link_to 'Admin', users_path %></li>
|
301
|
+
<% end %>
|
302
|
+
<% end %>
|
303
|
+
</pre>
|
304
|
+
|
305
|
+
The full set of links will be created if the following files are found in your application:
|
306
|
+
|
307
|
+
* app/views/devise/sessions/new.html.erb
|
308
|
+
* app/views/devise/registrations/new.html.erb
|
309
|
+
* app/views/users/index.html.erb
|
310
|
+
|
311
|
+
The @rails generate navigation@ command is used by the "Rails Composer":http://railsapps.github.io/rails-composer/ tool. It may not be suitable for your application if you haven't created custom view for Devise.
|
312
|
+
|
263
313
|
h2. Help
|
264
314
|
|
265
315
|
To see help messages:
|
@@ -58,28 +58,23 @@ module Layout
|
|
58
58
|
if framework_name == 'none'
|
59
59
|
remove_file "app/views/layouts/_messages.html.#{ext}"
|
60
60
|
remove_file "app/views/layouts/_navigation.html.#{ext}"
|
61
|
+
remove_file "app/views/layouts/_navigation_links.html.#{ext}"
|
61
62
|
else
|
62
63
|
copy_file "#{framework_name}-messages.html.#{ext}", "app/views/layouts/_messages.html.#{ext}"
|
63
64
|
copy_file "#{framework_name}-navigation.html.#{ext}", "app/views/layouts/_navigation.html.#{ext}"
|
65
|
+
copy_file "navigation_links.html.erb", "app/views/layouts/_navigation_links.html.erb"
|
64
66
|
end
|
65
67
|
end
|
66
68
|
|
67
|
-
#
|
69
|
+
# Add navigation links
|
68
70
|
def add_navigation_links
|
71
|
+
app = ::Rails.application
|
72
|
+
ext = app.config.generators.options[:rails][:template_engine] || :erb
|
69
73
|
unless framework_name == 'none'
|
70
|
-
#
|
71
|
-
if File.exists?(
|
72
|
-
|
73
|
-
|
74
|
-
if File.exists?('app/views/contacts/new.html.erb')
|
75
|
-
insert_into_file 'app/views/layouts/_navigation.html.erb', "\n <li><%= link_to 'Contact', new_contact_path %></li>", :before => "\n</ul>"
|
76
|
-
end
|
77
|
-
if File.exists?('app/views/contacts/new.html.haml')
|
78
|
-
insert_into_file 'app/views/layouts/_navigation.html.haml', "\n %li= link_to 'Contact', new_contact_path", :after => "root_path"
|
79
|
-
end
|
80
|
-
if File.exists?('app/views/pages/about.html.haml')
|
81
|
-
insert_into_file 'app/views/layouts/_navigation.html.haml', "\n %li= link_to 'About', page_path('about')", :after => "root_path"
|
82
|
-
end
|
74
|
+
# ABOUT
|
75
|
+
append_file 'app/views/layouts/_navigation_links.html.erb', "<li><%= link_to 'About', page_path('about') %></li>\n" if File.exists?("app/views/pages/about.html.#{ext}")
|
76
|
+
# CONTACT
|
77
|
+
append_file 'app/views/layouts/_navigation_links.html.erb', "<li><%= link_to 'Contact', new_contact_path %></li>\n" if File.exists?("app/views/contacts/new.html.#{ext}")
|
83
78
|
end
|
84
79
|
end
|
85
80
|
|
@@ -10,12 +10,8 @@
|
|
10
10
|
</head>
|
11
11
|
<body>
|
12
12
|
<%%# application layout styled for Twitter Bootstrap 2.3 %>
|
13
|
-
<header
|
14
|
-
|
15
|
-
<div class="container">
|
16
|
-
<%%= render 'layouts/navigation' %>
|
17
|
-
</div>
|
18
|
-
</nav>
|
13
|
+
<header>
|
14
|
+
<%%= render 'layouts/navigation' %>
|
19
15
|
</header>
|
20
16
|
<main role="main">
|
21
17
|
<div class="container">
|
@@ -9,10 +9,8 @@
|
|
9
9
|
= csrf_meta_tags
|
10
10
|
%body
|
11
11
|
-# application layout styled for Twitter Bootstrap 2.3
|
12
|
-
%header
|
13
|
-
|
14
|
-
.container
|
15
|
-
= render 'layouts/navigation'
|
12
|
+
%header
|
13
|
+
= render 'layouts/navigation'
|
16
14
|
%main{:role => "main"}
|
17
15
|
.container
|
18
16
|
.content
|
@@ -1,3 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
<%# navigation styled for Twitter Bootstrap 2.3 %>
|
2
|
+
<div class="navbar navbar-fixed-top">
|
3
|
+
<nav class="navbar-inner">
|
4
|
+
<div class="container">
|
5
|
+
<ul class="nav">
|
6
|
+
<%= render 'layouts/navigation_links' %>
|
7
|
+
</ul>
|
8
|
+
</div>
|
9
|
+
</nav>
|
10
|
+
</div>
|
@@ -11,21 +11,7 @@
|
|
11
11
|
<body>
|
12
12
|
<%%# application layout styled for Twitter Bootstrap 3.0 %>
|
13
13
|
<header>
|
14
|
-
|
15
|
-
<div class="container">
|
16
|
-
<div class="navbar-header">
|
17
|
-
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
18
|
-
<span class="sr-only">Toggle navigation</span>
|
19
|
-
<span class="icon-bar"></span>
|
20
|
-
<span class="icon-bar"></span>
|
21
|
-
<span class="icon-bar"></span>
|
22
|
-
</button>
|
23
|
-
</div>
|
24
|
-
<div class="collapse navbar-collapse">
|
25
|
-
<%%= render 'layouts/navigation' %>
|
26
|
-
</div>
|
27
|
-
</div>
|
28
|
-
</nav>
|
14
|
+
<%%= render 'layouts/navigation' %>
|
29
15
|
</header>
|
30
16
|
<main role="main">
|
31
17
|
<div class="container">
|
@@ -10,16 +10,7 @@
|
|
10
10
|
%body
|
11
11
|
-# application layout styled for Twitter Bootstrap 3.0
|
12
12
|
%header
|
13
|
-
|
14
|
-
.container
|
15
|
-
.navbar-header
|
16
|
-
%button.navbar-toggle{"data-target" => ".navbar-collapse", "data-toggle" => "collapse", :type => "button"}
|
17
|
-
%span.sr-only Toggle navigation
|
18
|
-
%span.icon-bar
|
19
|
-
%span.icon-bar
|
20
|
-
%span.icon-bar
|
21
|
-
.collapse.navbar-collapse
|
22
|
-
= render 'layouts/navigation'
|
13
|
+
= render 'layouts/navigation'
|
23
14
|
%main{:role => "main"}
|
24
15
|
.container
|
25
16
|
.container
|
@@ -1,3 +1,18 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
<%# navigation styled for Twitter Bootstrap 3.0 %>
|
2
|
+
<nav class="navbar navbar-default navbar-fixed-top">
|
3
|
+
<div class="container">
|
4
|
+
<div class="navbar-header">
|
5
|
+
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
6
|
+
<span class="sr-only">Toggle navigation</span>
|
7
|
+
<span class="icon-bar"></span>
|
8
|
+
<span class="icon-bar"></span>
|
9
|
+
<span class="icon-bar"></span>
|
10
|
+
</button>
|
11
|
+
</div>
|
12
|
+
<div class="collapse navbar-collapse">
|
13
|
+
<ul class="nav navbar-nav">
|
14
|
+
<%= render 'layouts/navigation_links' %>
|
15
|
+
</ul>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</nav>
|
@@ -1,2 +1,12 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
-# navigation styled for Twitter Bootstrap 3.0
|
2
|
+
%nav.navbar.navbar-default.navbar-fixed-top
|
3
|
+
.container
|
4
|
+
.navbar-header
|
5
|
+
%button.navbar-toggle{"data-target" => ".navbar-collapse", "data-toggle" => "collapse", :type => "button"}
|
6
|
+
%span.sr-only Toggle navigation
|
7
|
+
%span.icon-bar
|
8
|
+
%span.icon-bar
|
9
|
+
%span.icon-bar
|
10
|
+
.collapse.navbar-collapse
|
11
|
+
%ul.nav.navbar-nav
|
12
|
+
= render 'layouts/navigation_links'
|
@@ -13,15 +13,7 @@
|
|
13
13
|
<body>
|
14
14
|
<%%# application layout styled for Zurb Foundation 4 %>
|
15
15
|
<header>
|
16
|
-
|
17
|
-
<ul class="title-area">
|
18
|
-
<li class="name"><!-- add site name or logo here --></li>
|
19
|
-
<li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li>
|
20
|
-
</ul>
|
21
|
-
<section class="top-bar-section">
|
22
|
-
<%%= render 'layouts/navigation' %>
|
23
|
-
</section>
|
24
|
-
</nav>
|
16
|
+
<%%= render 'layouts/navigation' %>>
|
25
17
|
</header>
|
26
18
|
<main role="main">
|
27
19
|
<div class="container">
|
@@ -12,15 +12,7 @@
|
|
12
12
|
%body
|
13
13
|
-# application layout styled for Zurb Foundation 4
|
14
14
|
%header
|
15
|
-
|
16
|
-
%ul.title-area
|
17
|
-
%li.name
|
18
|
-
-# add site name or logo here
|
19
|
-
%li.toggle-topbar.menu-icon
|
20
|
-
%a{:href => "#"}
|
21
|
-
%span Menu
|
22
|
-
%section.top-bar-section
|
23
|
-
= render 'layouts/navigation'
|
15
|
+
= render 'layouts/navigation'
|
24
16
|
%main{:role => "main"}
|
25
17
|
.container
|
26
18
|
.content
|
@@ -1,3 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
<%# navigation styled for Zurb Foundation 4 %>
|
2
|
+
<nav class="top-bar">
|
3
|
+
<ul class="title-area">
|
4
|
+
<li class="name"><!-- add site name or logo here --></li>
|
5
|
+
<li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li>
|
6
|
+
</ul>
|
7
|
+
<section class="top-bar-section">
|
8
|
+
<ul>
|
9
|
+
<%= render 'layouts/navigation_links' %>
|
10
|
+
</ul>
|
11
|
+
</section>
|
12
|
+
</nav>
|
@@ -1,2 +1,11 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
-# navigation styled for Zurb Foundation 4
|
2
|
+
%nav.top-bar
|
3
|
+
%ul.title-area
|
4
|
+
%li.name
|
5
|
+
-# add site name or logo here
|
6
|
+
%li.toggle-topbar.menu-icon
|
7
|
+
%a{:href => "#"}
|
8
|
+
%span Menu
|
9
|
+
%section.top-bar-section
|
10
|
+
%ul
|
11
|
+
= render 'layouts/navigation_links'
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<ul class="nav">
|
2
|
-
|
3
|
-
</ul>
|
2
|
+
<%= render 'layouts/navigation_links' %>
|
3
|
+
</ul>
|
@@ -1,2 +1,2 @@
|
|
1
1
|
%ul.nav
|
2
|
-
|
2
|
+
= render 'layouts/navigation_links'
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Navigation
|
4
|
+
module Generators
|
5
|
+
class NavigationGenerator < ::Rails::Generators::Base
|
6
|
+
source_root File.expand_path("../templates", __FILE__)
|
7
|
+
|
8
|
+
# Add navigation links
|
9
|
+
def add_navigation_links
|
10
|
+
app = ::Rails.application
|
11
|
+
ext = app.config.generators.options[:rails][:template_engine] || :erb
|
12
|
+
copy_file "navigation_links.html.erb", "app/views/layouts/_navigation_links.html.erb"
|
13
|
+
# ABOUT
|
14
|
+
append_file 'app/views/layouts/_navigation_links.html.erb', "<li><%= link_to 'About', page_path('about') %></li>\n" if File.exists?("app/views/pages/about.html.#{ext}")
|
15
|
+
# CONTACT
|
16
|
+
append_file 'app/views/layouts/_navigation_links.html.erb', "<li><%= link_to 'Contact', new_contact_path %></li>\n" if File.exists?("app/views/contacts/new.html.#{ext}")
|
17
|
+
# DEVISE LOGIN and LOGOUT
|
18
|
+
if File.exists?("app/views/devise/sessions/new.html.#{ext}")
|
19
|
+
append_file 'app/views/layouts/_navigation_links.html.erb' do <<-LINKS
|
20
|
+
<% if user_signed_in? %>
|
21
|
+
<li><%= link_to 'Logout', destroy_user_session_path, :method=>'delete' %></li>
|
22
|
+
<% else %>
|
23
|
+
<li><%= link_to 'Login', new_user_session_path %></li>
|
24
|
+
<% end %>
|
25
|
+
LINKS
|
26
|
+
end
|
27
|
+
end
|
28
|
+
# DEVISE SIGN UP
|
29
|
+
if File.exists?("app/views/devise/registrations/new.html.#{ext}")
|
30
|
+
append_file 'app/views/layouts/_navigation_links.html.erb' do <<-LINKS
|
31
|
+
<% if user_signed_in? %>
|
32
|
+
<li><%= link_to 'Edit account', edit_user_registration_path %></li>
|
33
|
+
<% else %>
|
34
|
+
<li><%= link_to 'Sign up', new_user_registration_path %></li>
|
35
|
+
<% end %>
|
36
|
+
LINKS
|
37
|
+
end
|
38
|
+
end
|
39
|
+
# ADMIN LINK
|
40
|
+
if File.exists?("app/views/users/index.html.#{ext}")
|
41
|
+
append_file 'app/views/layouts/_navigation_links.html.erb' do <<-LINKS
|
42
|
+
<% if user_signed_in? %>
|
43
|
+
<% if current_user.has_role? :admin %>
|
44
|
+
<li><%= link_to 'Admin', users_path %></li>
|
45
|
+
<% end %>
|
46
|
+
<% end %>
|
47
|
+
LINKS
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/lib/rails_layout/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_layout
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Kehoe
|
@@ -79,6 +79,7 @@ files:
|
|
79
79
|
- lib/generators/layout/templates/foundation4-navigation.html.erb
|
80
80
|
- lib/generators/layout/templates/foundation4-navigation.html.haml
|
81
81
|
- lib/generators/layout/templates/foundation_and_overrides.css.scss
|
82
|
+
- lib/generators/layout/templates/navigation_links.html.erb
|
82
83
|
- lib/generators/layout/templates/none-application.html.erb
|
83
84
|
- lib/generators/layout/templates/none-application.html.haml
|
84
85
|
- lib/generators/layout/templates/simple-application.html.erb
|
@@ -88,6 +89,8 @@ files:
|
|
88
89
|
- lib/generators/layout/templates/simple-navigation.html.erb
|
89
90
|
- lib/generators/layout/templates/simple-navigation.html.haml
|
90
91
|
- lib/generators/layout/templates/simple.css
|
92
|
+
- lib/generators/navigation/navigation_generator.rb
|
93
|
+
- lib/generators/navigation/templates/navigation_links.html.erb
|
91
94
|
- lib/rails_layout.rb
|
92
95
|
- lib/rails_layout/version.rb
|
93
96
|
- rails_layout.gemspec
|