lalala 4.0.0.dev.372 → 4.0.0.dev.374
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/lib/generators/lalala/assets/templates/bower.json.erb +1 -1
- data/lib/generators/lalala/install/install_generator.rb +13 -0
- data/lib/generators/lalala/install/templates/application.html.erb +13 -9
- data/lib/generators/lalala/install/templates/helpers/application_helper.rb +16 -0
- data/lib/generators/lalala/install/templates/helpers/html_helper.rb +60 -0
- data/lib/generators/lalala/install/templates/helpers/open_graph_helper.rb.erb +92 -0
- data/lib/generators/lalala/install/templates/helpers/pages_helper.rb +15 -0
- data/lib/generators/lalala/install/templates/locales/en.yml +6 -0
- data/lib/lalala/utils/install_template.rb +6 -0
- data/lib/lalala/version.rb +1 -1
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1306f4cd947f27b96f79a64b73bf44946a096c24
|
4
|
+
data.tar.gz: 501c70e5a5ab1a4f297f1d50ba4fbf0baafffdf8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dafc99c2cdec7e206d19ce5627c2d1c8002dc35d077c6c7319aa5b0d75c02598507920630f9b7b43d5d6855ba06973c37e1566624d2e926be01c47d2592566e3
|
7
|
+
data.tar.gz: 1ec4df9b7f58cfbca81f6b049db818cd8534da5f67647e22bfc4a9616fa94b7c07ddc48d5c4d3126dbcc3a59d1d13d59bc928425e3d4e7ebc8e4e1c6689aee89
|
@@ -71,6 +71,19 @@ module Lalala
|
|
71
71
|
gsub_file "config/environments/production.rb", " # config.assets.precompile += %w( search.js )", " config.assets.precompile += %w( modernizr.js )"
|
72
72
|
end
|
73
73
|
|
74
|
+
def setup_helpers
|
75
|
+
empty_directory "app/helpers"
|
76
|
+
copy_file "helpers/application_helper.rb", "app/helpers/application_helper.rb"
|
77
|
+
template "helpers/open_graph_helper.rb.erb", "app/helpers/open_graph_helper.rb"
|
78
|
+
copy_file "helpers/html_helper.rb", "app/helpers/html_helper.rb"
|
79
|
+
copy_file "helpers/pages_helper.rb", "app/helpers/pages_helper.rb"
|
80
|
+
end
|
81
|
+
|
82
|
+
def setup_locales
|
83
|
+
empty_directory 'config/locales'
|
84
|
+
copy_file 'locales/en.yml', 'config/locales/en.yml'
|
85
|
+
end
|
86
|
+
|
74
87
|
def setup_forklift
|
75
88
|
empty_directory ".forklift"
|
76
89
|
end
|
@@ -7,38 +7,42 @@
|
|
7
7
|
<meta charset="utf-8">
|
8
8
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
9
9
|
|
10
|
-
<title
|
10
|
+
<title><%= og_title %></title>
|
11
11
|
|
12
12
|
<meta name="viewport" content="width=device-width, initial-scale=1, minimal-ui" />
|
13
13
|
|
14
14
|
<meta name="description" content="<%= og_description %>" />
|
15
15
|
<meta name="distribution" content="global" />
|
16
|
-
|
17
|
-
<meta name="robots" content="noindex, nofollow" />
|
18
|
-
<% else %>
|
19
|
-
<meta name="robots" content="index, follow" />
|
20
|
-
<% end %>
|
16
|
+
<%= meta_name_robots %>
|
21
17
|
<meta name="revisit-after" content="31 days" />
|
22
18
|
<meta name="author" content="" />
|
23
19
|
<meta name="publisher" content="Mr. Henry" />
|
24
20
|
<meta name="copyright" content="" />
|
25
21
|
|
26
22
|
<link rel="shortcut icon" href="/assets/favicon.ico"/>
|
23
|
+
<link rel="canonical" href="<%= canonical_url(request.original_fullpath) %>" />
|
24
|
+
|
25
|
+
<meta property="og:url" content="<%= canonical_url(request.original_fullpath) %>" />
|
26
|
+
<meta property="og:title" content="<%= og_title %>" />
|
27
|
+
<meta property="og:site_name" content="<%= site_name %>">
|
28
|
+
<meta property="og:description" content="<%= og_description %>" />
|
29
|
+
<%= meta_property_og_image %>
|
30
|
+
<meta property="og:image" content="<%= og_image_default_url %>" />
|
27
31
|
|
28
32
|
<%= javascript_include_tag "modernizr" %>
|
29
33
|
<%= stylesheet_link_tag "application", media: "all" %>
|
30
34
|
|
31
35
|
<%= csrf_meta_tags %>
|
32
36
|
</head>
|
33
|
-
<body>
|
37
|
+
<body class="<%= body_class %>">
|
34
38
|
|
35
39
|
<!--[if lt IE 9]>
|
36
40
|
<p class="chromeframe" style="background-color: rgb(255,65,45); color: white; font-size: 12px; margin: 0; padding: 7px; text-align: center;">
|
37
41
|
You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/" style="color: black;">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true" style="color: black;">activate Google Chrome Frame</a> to improve your experience.</p>
|
38
42
|
<![endif]-->
|
39
|
-
|
43
|
+
|
40
44
|
<%= yield %>
|
41
|
-
|
45
|
+
|
42
46
|
<script type="text/javascript">
|
43
47
|
// Bridge between I18n YAML & JS
|
44
48
|
window.translations = { };
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module ApplicationHelper
|
2
|
+
|
3
|
+
# When on .mrhenry.eu domain, we don't want a search crawler to index
|
4
|
+
#
|
5
|
+
# @return {String}
|
6
|
+
def meta_name_robots
|
7
|
+
if request.host.match /.*\.a\.mrhenry\.eu.*/
|
8
|
+
tag("meta", name: "robots", content: "noindex, nofollow")
|
9
|
+
|
10
|
+
else
|
11
|
+
tag("meta", name: "robots", content: "index, follow")
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module HtmlHelper
|
2
|
+
|
3
|
+
# Returns class_name if x equals y
|
4
|
+
#
|
5
|
+
# @param {String} class_name
|
6
|
+
# @param {Mixed} x
|
7
|
+
# @param {Mixed} y
|
8
|
+
# @param {Boolean} exact
|
9
|
+
#
|
10
|
+
# @return {String}
|
11
|
+
def css_class(class_name, x, y = true, exact = false)
|
12
|
+
if exact
|
13
|
+
class_name if (x === y)
|
14
|
+
|
15
|
+
else
|
16
|
+
class_name if (x == y)
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
# Returns CSS body class
|
23
|
+
# By default it shows the current controller & action
|
24
|
+
# You can add items by using @body_class
|
25
|
+
#
|
26
|
+
# @return {String}
|
27
|
+
def body_class
|
28
|
+
body_class = [ params[:controller], params[:action] ]
|
29
|
+
body_class << @body_class if @body_class
|
30
|
+
body_class.join(" ")
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
# Return CSS background-image style
|
35
|
+
#
|
36
|
+
# @return {String}
|
37
|
+
def css_bg_img(img_url = nil)
|
38
|
+
"background-image: url('#{img_url}');"
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
# Includes inline SVG
|
43
|
+
#
|
44
|
+
# @param {String} path
|
45
|
+
#
|
46
|
+
# @return {String}
|
47
|
+
def inline_svg(path)
|
48
|
+
File.open("app/assets/images/#{path}", "rb") do |file|
|
49
|
+
raw file.read
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
# Render partial
|
55
|
+
#
|
56
|
+
def render_partial(partial_name, locals={}, &block)
|
57
|
+
render partial: partial_name, locals: locals.merge({ block: block })
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
module OpenGraphHelper
|
2
|
+
|
3
|
+
# Returns site name
|
4
|
+
#
|
5
|
+
# @return {String}
|
6
|
+
def site_name
|
7
|
+
"<%= Rails.application.class.name.split("::").first.titlecase.gsub("Client ", "") %>"
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
# Returns canonical url and following path for the given key in CANONICAL_URLS hash
|
12
|
+
#
|
13
|
+
# @params {String} path
|
14
|
+
#
|
15
|
+
# @return {String}
|
16
|
+
def canonical_url(path = '/', protocol = nil)
|
17
|
+
protocol ||= request.protocol
|
18
|
+
|
19
|
+
begin
|
20
|
+
"#{protocol}#{ENV["CANONICAL_DOMAIN"]}#{path}"
|
21
|
+
|
22
|
+
rescue
|
23
|
+
Rails.logger.error("canonical_url failed with following argument: #{path}")
|
24
|
+
"#{protocol}#{request.domain}#{path}"
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
# Returns meta description.
|
31
|
+
# Default lives in locale file. Add @og_description in your controller
|
32
|
+
# to override default.
|
33
|
+
#
|
34
|
+
# @return {String}
|
35
|
+
def og_description
|
36
|
+
@og_description.strip_tags rescue t("meta.description")
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
# Returns default OG image url based on current app name
|
41
|
+
#
|
42
|
+
# @return {String}
|
43
|
+
def og_image_default_url
|
44
|
+
"#{request.protocol}#{request.host_with_port}#{image_path("og-image.png")}"
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
# Returns meta og:image tags when @og_image(s) is given
|
49
|
+
#
|
50
|
+
# @return {String}
|
51
|
+
def meta_property_og_image
|
52
|
+
if @og_image
|
53
|
+
tag("meta", property: "og:image", content: "http:#{@og_image.url(:medium)}")
|
54
|
+
end
|
55
|
+
|
56
|
+
if @og_images
|
57
|
+
@og_images.each do |og_image|
|
58
|
+
tag("meta", property: "og:image", content: "http:#{og_image.url(:medium)}")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
# Returns the page title, build upon the current page chain, separated by |
|
65
|
+
# To prefix, use @og_title in your controller.
|
66
|
+
#
|
67
|
+
# @param {Integer} offset How many page chain levels you want to skip
|
68
|
+
#
|
69
|
+
# @return {String}
|
70
|
+
def og_title(offset = 0)
|
71
|
+
page_title = []
|
72
|
+
|
73
|
+
if @og_title
|
74
|
+
if offset > 0
|
75
|
+
offset -= 1
|
76
|
+
else
|
77
|
+
page_title << @og_title
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
current_page_chain.reverse.each_with_index do |page, idx|
|
82
|
+
next if idx < offset
|
83
|
+
|
84
|
+
page_title << page.title unless page.type == "HomePage"
|
85
|
+
end
|
86
|
+
|
87
|
+
page_title << site_name
|
88
|
+
|
89
|
+
page_title.join(' | ')
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module PagesHelper
|
2
|
+
|
3
|
+
# Returns page by class name & puts it in an instance variable
|
4
|
+
#
|
5
|
+
# @param {Class} page_class
|
6
|
+
#
|
7
|
+
# @return {ApplicationPage}
|
8
|
+
def get_page(page_class)
|
9
|
+
key = "@#{page_class.to_s.underscore.to_sym}"
|
10
|
+
|
11
|
+
page = instance_variable_get(key)
|
12
|
+
page ||= instance_variable_set(key, page_class.first)
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -5,6 +5,12 @@ class AppBuilder < Rails::AppBuilder
|
|
5
5
|
RUBY_VERSION = "2.0.0"
|
6
6
|
LALALA_VERSION = "4.0.0.dev"
|
7
7
|
|
8
|
+
# You can test the generator locally by pointing to your local gems:
|
9
|
+
#
|
10
|
+
# gem 'lalala', path: "~/Github/mrhenry/lalala-ng"
|
11
|
+
# gem 'lalala-development', path: "~/Github/mrhenry/lalala-ng", groups: [:development]
|
12
|
+
# gem 'lalala-assets', path: "~/Github/mrhenry/lalala-ng", groups: [:development, :assets]
|
13
|
+
# gem 'lalala-test', path: "~/Github/mrhenry/lalala-ng", groups: [:test]
|
8
14
|
def gemfile
|
9
15
|
create_file 'Gemfile', <<-DOC
|
10
16
|
|
data/lib/lalala/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lalala
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0.dev.
|
4
|
+
version: 4.0.0.dev.374
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Menke
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2014-11-
|
16
|
+
date: 2014-11-05 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: activeadmin
|
@@ -1421,6 +1421,11 @@ files:
|
|
1421
1421
|
- lib/generators/lalala/install/templates/dashboard.rb
|
1422
1422
|
- lib/generators/lalala/install/templates/devise.rb.erb
|
1423
1423
|
- lib/generators/lalala/install/templates/errors_controller.rb
|
1424
|
+
- lib/generators/lalala/install/templates/helpers/application_helper.rb
|
1425
|
+
- lib/generators/lalala/install/templates/helpers/html_helper.rb
|
1426
|
+
- lib/generators/lalala/install/templates/helpers/open_graph_helper.rb.erb
|
1427
|
+
- lib/generators/lalala/install/templates/helpers/pages_helper.rb
|
1428
|
+
- lib/generators/lalala/install/templates/locales/en.yml
|
1424
1429
|
- lib/generators/lalala/install/templates/models/admin_user.rb
|
1425
1430
|
- lib/generators/lalala/install/templates/models/application_page.rb
|
1426
1431
|
- lib/generators/lalala/install/templates/models/file_asset.rb
|