seo_landing_pages 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 77d15341615a1eaef42e7ea13588d6837ff9da30
4
- data.tar.gz: 0f38fd88a97ad81d5df5b3f4b32525686a97c1b3
3
+ metadata.gz: 6cec4cab3f4abdb309717bd20fc068efc9e33b9c
4
+ data.tar.gz: 264bea4b83ed3efe70930eff90e22ecaaabb837a
5
5
  SHA512:
6
- metadata.gz: ae1473d234033c963fa61655ce458902e0e57ecad76b31492e2f643e148e9bbffcaac25148991ef99f1cd62e8b39e97add4b50a0885c3b0b9b394f81f200141e
7
- data.tar.gz: 20ab9063e8686716e5d67378617abcc9a6e6996ba8ef428e1b877ee6b1f3eef4db8c883d6fc450e3ffc16069a770b966c5501cdeffe747cbd8d8f4bc8e2099d3
6
+ metadata.gz: f5d88d0a9d15a095145bac860aaf65b7ef98afe1a7c86bee32762b809109ffdd43a23b715d23c50db00382704be4f305619bc59698fcb256918f373dec821c91
7
+ data.tar.gz: 0700a977b0517f01d724561ad036092f93067b72fd839f9b0b2f7761708ad430ddffe21a47f08155d7f3931b1103127892358fa48e02b5fbaea96bcdab896b96
data/README.md CHANGED
@@ -80,6 +80,25 @@ tag for you to concatenate them or so.
80
80
  = seo_landing_page_keywords
81
81
  ```
82
82
 
83
+ ### Internationalization support
84
+
85
+ For internationalization, instead of writing plain text in the title, description
86
+ and keywords write i18n keys, e.g. a landing page for your home page:
87
+
88
+ > SeoLandingPages::Model.create! slug: '/', title: 'title_home_page',
89
+ description: 'description_home_page',
90
+ keywords: 'keywords_home_page'
91
+
92
+ Create the translations in your locale files. Then use the view helpers like this:
93
+
94
+ ```ruby
95
+ = seo_landing_page_title_tag i18n: true
96
+ = seo_landing_page_description_tag i18n: true
97
+ = seo_landing_page_keywords_tag i18n: true
98
+ ```
99
+
100
+ Now your pages have the HTML elements localized.
101
+
83
102
  ### Admin section
84
103
 
85
104
  There's an Active Admin view provided, to get it run:
@@ -93,14 +112,11 @@ traffic increasing for your website.
93
112
 
94
113
  ## TODO
95
114
 
96
- - write another CRUD admin section for those not using Active Admin
115
+ - write another CRUD admin section for those not using Active Admin, or accept
116
+ a Pull Request having it ;-)
117
+ - fix the TODOs in the code
97
118
  - write tests
98
119
 
99
- ## Credits
100
-
101
- This gem was developed in the [Hack Week at XING Barcelona](http://www.xing.com), Big
102
- thanks to XING for providing the time to see ideas being realized.
103
-
104
120
  ## Contributing
105
121
 
106
122
  1. Fork it ( https://github.com/joahking/seo_landing_pages/fork )
@@ -109,3 +125,8 @@ thanks to XING for providing the time to see ideas being realized.
109
125
  4. Push to the branch (`git push origin my-new-feature`)
110
126
  5. Create a new Pull Request
111
127
 
128
+ ## Credits
129
+
130
+ This gem was developed in the [Hack Week at XING Barcelona](http://www.xing.com), Big
131
+ thanks to XING for providing the time to see ideas being realized.
132
+
@@ -3,47 +3,73 @@ module SeoLandingPages
3
3
  module Helper
4
4
 
5
5
  # Public: html title tag with the landing page title.
6
+ # - i18n: false = render plain text title. This is the default.
7
+ # true = title is an i18n key, so translate it.
6
8
  # If the landing page title is empty it returns nothing.
7
- def seo_landing_page_title_tag
8
- if seo_landing_page_title
9
- "<title>#{ seo_landing_page_title }</title>".html_safe
9
+ def seo_landing_page_title_tag(i18n: false)
10
+ title = seo_landing_page_title i18n: i18n
11
+ if title
12
+ "<title>#{ title }</title>".html_safe
10
13
  end
11
14
  end
12
15
 
13
16
  # Public: landing page title.
14
- def seo_landing_page_title
17
+ # - i18n: false = render plain text title. This is the default.
18
+ # true = title is an i18n key, so translate it.
19
+ def seo_landing_page_title(i18n: false)
15
20
  if seo_current_landing_page
16
- seo_current_landing_page.title
21
+ title = seo_current_landing_page.title
22
+ if title
23
+ i18n ? t(title) : title
24
+ end
17
25
  end
18
26
  end
19
27
 
20
28
  # Public: html description meta tag with the landing page description.
29
+ # - i18n: false = render plain text description. This is the default.
30
+ # true = description is an i18n key, so translate it.
21
31
  # If the landing page description is empty it returns nothing.
22
- def seo_landing_page_description_tag
23
- if seo_landing_page_description
24
- "<meta name='description' content='#{ seo_landing_page_description }'/>".html_safe
32
+ def seo_landing_page_description_tag(i18n: false)
33
+ description = seo_landing_page_description i18n: i18n
34
+ if description
35
+ "<meta name='description' content='#{ description }'/>".html_safe
25
36
  end
26
37
  end
27
38
 
28
39
  # Public: landing page description.
29
- def seo_landing_page_description
40
+ # - i18n: false = render plain text description. This is the default.
41
+ # true = description is an i18n key, so translate it.
42
+ # If the landing page description is empty it returns nothing.
43
+ def seo_landing_page_description(i18n: false)
30
44
  if seo_current_landing_page
31
- seo_current_landing_page.description
45
+ description = seo_current_landing_page.description
46
+ if description
47
+ i18n ? t(description) : description
48
+ end
32
49
  end
33
50
  end
34
51
 
35
52
  # Public: html keywords meta tag with the landing page keywords.
53
+ # - i18n: false = render plain text keywords. This is the default.
54
+ # true = keywords is an i18n key, so translate it.
36
55
  # If the landing page keywords is empty it returns nothing.
37
- def seo_landing_page_keywords_tag
38
- if seo_landing_page_keywords
39
- "<meta name='keywords' content='#{ seo_landing_page_keywords }'/>".html_safe
56
+ def seo_landing_page_keywords_tag(i18n: false)
57
+ keywords = seo_landing_page_keywords i18n: i18n
58
+ if keywords
59
+ "<meta name='keywords' content='#{ keywords }'/>".html_safe
40
60
  end
41
61
  end
42
62
 
43
63
  # Public: landing page keywords.
44
- def seo_landing_page_keywords
64
+ # - i18n: false = render plain text keywords. This is the default.
65
+ # true = keywords is an i18n key, so translate it.
66
+ # If the landing page keywords is empty it returns nothing.
67
+ def seo_landing_page_keywords(i18n: false)
45
68
  if seo_current_landing_page
46
- seo_current_landing_page.keywords
69
+ keywords = seo_current_landing_page.keywords
70
+ if keywords
71
+ i18n ? t(keywords) : keywords
72
+ end
47
73
  end
48
74
  end
49
75
 
@@ -1,4 +1,4 @@
1
1
  module SeoLandingPages
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
4
4
 
@@ -11,12 +11,13 @@ Gem::Specification.new do |spec|
11
11
  spec.summary = %q{Manage SEO key elements of landing pages in Rails easily.}
12
12
  spec.description = %q{Create landing pages matching your pages, and manage their title, description and keywords in Rails easily.}
13
13
  spec.homepage = 'https://github.com/joahking/seo-landing-pages'
14
- spec.license = "MIT"
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
+ spec.required_ruby_version = '~> 2'
20
21
 
21
22
  spec.add_development_dependency 'bundler', '~> 1.6'
22
23
  spec.add_development_dependency 'rake', '~> 10'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seo_landing_pages
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joaquin Rivera Padron
@@ -93,9 +93,9 @@ require_paths:
93
93
  - lib
94
94
  required_ruby_version: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - ">="
96
+ - - "~>"
97
97
  - !ruby/object:Gem::Version
98
- version: '0'
98
+ version: '2'
99
99
  required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="