seo_sensei 0.0.5 → 0.0.6

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
  SHA256:
3
- metadata.gz: f665c41ec11676e7fd1f59a67d2995e33cc1c4255cfe6702707b92bd3aed33a3
4
- data.tar.gz: 4c50946086ef17a9f17d78f7e5703a21f377e0ae6a6f976014529920915a55e7
3
+ metadata.gz: 039b4d7451379832e9b2dde51b174b8161cea974f920b0dd04052721c84c6431
4
+ data.tar.gz: 40e9ed89593176b74804b78efc7faef877b5939f178d94dd4af8a7759c081f21
5
5
  SHA512:
6
- metadata.gz: 0b8f67b65c201ab05b35a482a475b00edeff8e57139b24cb5ac43c7094c34eb4efcef740fd86e1843a0c0c9b51f6a6874e6fd9dfdcb3ff1c177fec2953914cc4
7
- data.tar.gz: b0a1f0602b49cd35ec24e2ee011fd7ef78bcef11d341bbb4f4f829726308d5ae7e19bdc6fe9e4316ee83b81eeae31d4614697da178fe0e7fbe5c8bd8318d3ab3
6
+ metadata.gz: adeb0f223ca94b05663a02883c9f7b29086de23acfcb817f53adb2e994d3a20ff24cf7bb5a1d22164f32bdef5990354f3a416d5c9ef8b42747cca1f146654f4d
7
+ data.tar.gz: b37e1f5be403af45fa7d72cc364774f56712a40a8aed9357e5009efc098171d7730a9d50717cca482146154d012b864879e0c0aa0c2804dbcdbbeb0ea59cdced
@@ -4,12 +4,12 @@ module SeoSensei
4
4
  module Attributes
5
5
  module Image
6
6
  def self.call(resource)
7
- return {} unless resource.respond_to?(:use_seo_image?) && resource.use_seo_image?
7
+ return {} unless resource.use_image?
8
8
 
9
9
  {
10
10
  image: resource.seo_image_url,
11
- "image:width" => resource.seo_image_dimensions[:width].to_s,
12
- "image:height" => resource.seo_image_dimensions[:height].to_s
11
+ "image:width" => resource.seo_image_width,
12
+ "image:height" => resource.seo_image_height
13
13
  }
14
14
  end
15
15
  end
@@ -3,18 +3,16 @@
3
3
  module SeoSensei
4
4
  module Attributes
5
5
  module Twitter
6
- def self.call(seo_translation, resource, url)
7
- image_attributes = SeoSensei::Attributes::Image.call(resource)
8
-
6
+ def self.call(resource)
9
7
  base_attributes = {
10
- title: seo_translation['title'],
11
- description: seo_translation['description'],
12
- url: url
8
+ title: resource.title,
9
+ description: resource.description,
10
+ url: resource.url
13
11
  }
14
12
 
15
- unless image_attributes[:image].nil?
13
+ if resource.use_image?
16
14
  base_attributes.merge!(
17
- image: image_attributes[:image],
15
+ image: resource.seo_image_url,
18
16
  card: 'summary_large_image'
19
17
  )
20
18
  end
@@ -10,7 +10,11 @@ module SeoSensei
10
10
  before_action(options) do
11
11
  resource_name = options.delete(:for) || controller_name
12
12
  if (translated_seo = ::SeoSensei::Lookup.call(controller_name: resource_name, action_name: action_name))
13
- set_meta_tags(translated_seo)
13
+ attributes_service = ::SeoSensei::SeoAttributes.new(
14
+ translated_seo, nil, url_for(only_path: false)
15
+ )
16
+
17
+ set_meta_tags(attributes_service.call)
14
18
  end
15
19
  end
16
20
  end
@@ -24,15 +28,11 @@ module SeoSensei
24
28
 
25
29
  def seo_tags_with(resource)
26
30
  if (translated_seo = ::SeoSensei::Lookup.call(controller_name: controller_name, action_name: action_name, resource: resource))
27
- og_attributes = ::SeoSensei::Attributes::Og.call(
28
- translated_seo, resource, url_for(:only_path => false)
29
- )
30
-
31
- twitter_attributes = ::SeoSensei::Attributes::Twitter.call(
32
- translated_seo, resource, url_for(:only_path => false)
31
+ attributes_service = ::SeoSensei::SeoAttributes.new(
32
+ translated_seo, resource, url_for(only_path: false)
33
33
  )
34
34
 
35
- set_meta_tags(translated_seo.merge(og_attributes).merge(twitter_attributes))
35
+ set_meta_tags(attributes_service.call)
36
36
  end
37
37
  end
38
38
  end
@@ -0,0 +1,67 @@
1
+ module SeoSensei
2
+ class Resource
3
+ def initialize(translation, obj, url)
4
+ @translation = translation
5
+ @obj = obj
6
+ @url = url
7
+ end
8
+
9
+ def url
10
+ @url
11
+ end
12
+
13
+ def title
14
+ @translation['title']
15
+ end
16
+
17
+ def description
18
+ @translation['description']
19
+ end
20
+
21
+ def keywords
22
+ @translation['keywords']
23
+ end
24
+
25
+ def use_image?
26
+ use_obj_image? || use_translation_image?
27
+ end
28
+
29
+ def seo_image_url
30
+ if use_obj_image?
31
+ @obj.seo_image_url
32
+ elsif use_translation_image?
33
+ @translation['seo_image_url']
34
+ end
35
+ end
36
+
37
+ def seo_image_width
38
+ if use_obj_image?
39
+ @obj.seo_image_dimensions[:width].to_s
40
+ elsif use_translation_image?
41
+ @translation['seo_image_width']
42
+ end
43
+ end
44
+
45
+ def seo_image_height
46
+ if use_obj_image?
47
+ @obj.seo_image_dimensions[:height].to_s
48
+ elsif use_translation_image?
49
+ @translation['seo_image_height']
50
+ end
51
+ end
52
+
53
+ private
54
+
55
+ def use_obj_image?
56
+ !@obj.nil? &&
57
+ @obj.respond_to?(:use_seo_image?) &&
58
+ @obj.use_seo_image?
59
+ end
60
+
61
+ def use_translation_image?
62
+ !@translation['seo_image_url'].nil? &&
63
+ !@translation['seo_image_width'].nil? &&
64
+ !@translation['seo_image_height'].nil?
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,30 @@
1
+ module SeoSensei
2
+ class SeoAttributes
3
+ def initialize(translation, obj, url)
4
+ @translation = translation
5
+ @obj = obj
6
+ @url = url
7
+ end
8
+
9
+ def call
10
+ attributes = {}
11
+
12
+ image_attributes = SeoSensei::Attributes::Image.call(resource)
13
+ twitter_attributes = SeoSensei::Attributes::Twitter.call(resource)
14
+
15
+ {
16
+ og: {
17
+ title: resource.title,
18
+ description: resource.description,
19
+ url: resource.url
20
+ }.merge(image_attributes)
21
+ }.merge(twitter_attributes)
22
+ end
23
+
24
+ private
25
+
26
+ def resource
27
+ @resource ||= SeoSensei::Resource.new(@translation, @obj, @url)
28
+ end
29
+ end
30
+ end
@@ -6,7 +6,7 @@ module SeoSensei
6
6
  #
7
7
  # @return [String]
8
8
  def to_s
9
- "0.0.5"
9
+ "0.0.6"
10
10
  end
11
11
  end
12
12
  end
data/lib/seo_sensei.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'meta-tags'
4
+ require 'seo_sensei/seo_attributes'
5
+ require 'seo_sensei/resource'
4
6
  require 'seo_sensei/attributes/twitter'
5
- require 'seo_sensei/attributes/og'
6
7
  require 'seo_sensei/attributes/image'
7
8
  require 'seo_sensei/lookup'
8
9
  require 'seo_sensei/controllers/helpers'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seo_sensei
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paweł Dąbrowski
@@ -84,7 +84,6 @@ files:
84
84
  - lib/generators/templates/seo_sensei.rb
85
85
  - lib/seo_sensei.rb
86
86
  - lib/seo_sensei/attributes/image.rb
87
- - lib/seo_sensei/attributes/og.rb
88
87
  - lib/seo_sensei/attributes/twitter.rb
89
88
  - lib/seo_sensei/controllers/helpers.rb
90
89
  - lib/seo_sensei/lookup.rb
@@ -94,6 +93,8 @@ files:
94
93
  - lib/seo_sensei/lookups/translation_attributes.rb
95
94
  - lib/seo_sensei/models/helpers.rb
96
95
  - lib/seo_sensei/models/seo_tag.rb
96
+ - lib/seo_sensei/resource.rb
97
+ - lib/seo_sensei/seo_attributes.rb
97
98
  - lib/seo_sensei/version.rb
98
99
  homepage: http://github.com/rubyhero/seo_sensei
99
100
  licenses:
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SeoSensei
4
- module Attributes
5
- module Og
6
- def self.call(seo_translation, resource, url)
7
- image_attributes = SeoSensei::Attributes::Image.call(resource)
8
-
9
- base_attributes = {
10
- title: seo_translation['title'],
11
- description: seo_translation['description'],
12
- url: url
13
- }
14
-
15
- { og: base_attributes.merge(image_attributes) }
16
- end
17
- end
18
- end
19
- end