rails_layout 0.3.0 → 0.4.1
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.
- 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
|