cortex-snippets-client 0.8.1 → 1.0.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: a0b0723a93b68708387d68b12c61bd6a9dd83317
4
- data.tar.gz: 6a1bdac0593168b74292de6b7672e8968b8fc162
3
+ metadata.gz: 5a0a5085dbcbd4d1d792cff72f4e0b60dd38eee3
4
+ data.tar.gz: 550740427579f08cbc93f0e33f52c3cc44985bec
5
5
  SHA512:
6
- metadata.gz: 3f66164f7e8d53e2b8b0cd492b3d9881ef62798974d22d6c16c0516d108682305f371193658b9f5bd74d43ca02adba856002ffee2c7837f34d015846f62c0667
7
- data.tar.gz: 7080574753504e32b766ae1cf98a6bff1f2d111639bb254f7b09e10a97edc4b40993e459d706eeaf82e85afabc122866edbdc3d7a6717bb54fb79c55e7f71e86
6
+ metadata.gz: 086cb48328524926153665e802951de93679a79e798f133c62271e7576551dd72b989993e022812eb54745a0b534a9540b3d00ba251e5adb68ce7a3640c84416
7
+ data.tar.gz: bbd67ff27361d4157645fad1ba4e7659de1f86ec740f5a37f4a32a6e211fb93c092b2b35856f3e2c1bbb51ca6719d69e7d9095e2fb4fd3c225cbc1ce1ba526ed
data/CHANGELOG.md CHANGED
@@ -3,6 +3,7 @@ Version History
3
3
  * All Version bumps are required to update this file as well!!
4
4
  ----
5
5
 
6
+ * 1.0.0 - Multi-tenancy Rebuild, now takes in Cortex Client
6
7
  * 0.8.1 - Dependency upgrades, etc
7
8
  * 0.8.0 - Add Dynamic Yield Metadata
8
9
  * 0.7.0 - Add SEO Robot Metadata
@@ -19,7 +19,6 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ['lib']
20
20
 
21
21
  spec.add_dependency 'cortex-client', '~> 0.10'
22
- spec.add_dependency 'connection_pool', '~> 2.2'
23
22
  spec.add_dependency 'addressable', '~> 2.5'
24
23
 
25
24
  spec.add_development_dependency 'rake', '~> 12.0'
@@ -1,7 +1,7 @@
1
1
  module Cortex
2
2
  module Snippets
3
3
  module Client
4
- VERSION = '0.8.1'
4
+ VERSION = '1.0.0'
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,69 @@
1
+ module Cortex
2
+ module Snippets
3
+ module Client
4
+ class Webpage
5
+ def initialize(cortex_client, url)
6
+ @webpage = cortex_client.webpages.get_feed(url).contents
7
+ end
8
+
9
+ def seo_title
10
+ @webpage[:seo_title]
11
+ end
12
+
13
+ def seo_description
14
+ @webpage[:seo_description]
15
+ end
16
+
17
+ def seo_keywords
18
+ @webpage[:seo_keyword_list]
19
+ end
20
+
21
+ def seo_robots
22
+ robot_information = []
23
+ index_options = [:noindex, :nofollow, :noodp, :nosnippet, :noarchive, :noimageindex]
24
+
25
+ index_options.each do |index_option|
26
+ robot_information << index_option if @webpage[index_option]
27
+ end
28
+
29
+ robot_information
30
+ end
31
+
32
+ def noindex
33
+ @webpage[:noindex]
34
+ end
35
+
36
+ def nofollow
37
+ @webpage[:nofollow]
38
+ end
39
+
40
+ def noodp
41
+ @webpage[:noodp]
42
+ end
43
+
44
+ def nosnippet
45
+ @webpage[:nosnippet]
46
+ end
47
+
48
+ def noarchive
49
+ @webpage[:noarchive]
50
+ end
51
+
52
+ def noimageindex
53
+ @webpage[:noimageindex]
54
+ end
55
+
56
+ def dynamic_yield
57
+ {
58
+ sku: @webpage[:dynamic_yield_sku],
59
+ category: @webpage[:dynamic_yield_category]
60
+ }
61
+ end
62
+
63
+ def snippets
64
+ @webpage[:snippets]
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -1,37 +1,41 @@
1
- require 'cortex/snippets/client/helper'
2
- require 'cortex/snippets/client/railtie' if defined?(Rails)
3
- require 'cortex-client'
4
- require 'connection_pool'
5
- require 'addressable/template'
1
+ require 'cortex/snippets/client/webpage'
2
+ require 'addressable/uri'
6
3
 
7
4
  module Cortex
8
5
  module Snippets
9
- module Client
10
- class << self
11
- def cortex_client
12
- if ENV['CORTEX_SNIPPET_ACCESS_TOKEN'].nil? || ENV['CORTEX_SNIPPET_ACCESS_TOKEN'].empty?
13
- @cortex_client ||= ConnectionPool::Wrapper.new(size: 5, timeout: 3) { Cortex::Client.new(key: ENV['CORTEX_SNIPPET_KEY'], secret: ENV['CORTEX_SNIPPET_SECRET'], base_url: ENV['CORTEX_SNIPPET_BASE_URL'], scopes: ENV['CORTEX_SNIPPET_SCOPES']) }
14
- else
15
- @cortex_client ||= ConnectionPool::Wrapper.new(size: 5, timeout: 3) { Cortex::Client.new(access_token: ENV['CORTEX_SNIPPET_ACCESS_TOKEN']) }
16
- end
6
+ class Client
7
+ def initialize(cortex_client)
8
+ @cortex_client = cortex_client
9
+ end
10
+
11
+ def snippet(options = {}, &block)
12
+ snippets = current_webpage(@cortex_client).snippets || []
13
+ snippet = snippets.find { |snippet| snippet[:document][:name] == options[:id] }
14
+
15
+ if snippet.nil? || snippet[:document][:body].nil? || snippet[:document][:body].empty?
16
+ content_tag(:snippet, capture(&block), options)
17
+ else
18
+ content_tag(:snippet, snippet[:document][:body].html_safe, options)
17
19
  end
20
+ end
18
21
 
19
- def current_webpage(request)
20
- if defined?(Rails)
21
- sanitized_url = sanitized_webpage_url(request.original_url)
22
- Rails.cache.fetch("webpages/#{sanitized_url}", race_condition_ttl: 10) do
23
- cortex_client.webpages.get_feed(sanitized_url).contents
24
- end
25
- else
26
- raise 'Your Web framework is not supported. Supported frameworks: Rails'
22
+ def current_webpage
23
+ if defined?(Rails)
24
+ url = sanitized_webpage_url(request.original_url)
25
+ Rails.cache.fetch("webpages/#{@cortex_client.access_token.client.id}/#{url}", race_condition_ttl: 10) do
26
+ Cortex::Snippets::Client::Webpage.new(@cortex_client, url)
27
27
  end
28
+ else
29
+ raise 'Your Web framework is not supported. Supported frameworks: Rails'
28
30
  end
31
+ end
29
32
 
30
- def sanitized_webpage_url(url)
31
- uri = Addressable::URI.parse(url)
32
- path = uri.path == '/' ? uri.path : uri.path.chomp('/')
33
- "#{uri.scheme}://#{uri.authority}#{path}"
34
- end
33
+ private
34
+
35
+ def sanitized_webpage_url(url)
36
+ uri = Addressable::URI.parse(url)
37
+ path = uri.path == '/' ? uri.path : uri.path.chomp('/')
38
+ "#{uri.scheme}://#{uri.authority}#{path}"
35
39
  end
36
40
  end
37
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cortex-snippets-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - CareerBuilder Employer Site & Content Products
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-18 00:00:00.000000000 Z
11
+ date: 2017-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cortex-client
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.10'
27
- - !ruby/object:Gem::Dependency
28
- name: connection_pool
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '2.2'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '2.2'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: addressable
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,9 +86,8 @@ files:
100
86
  - cortex-snippets-client-ruby.gemspec
101
87
  - lib/cortex-snippets-client.rb
102
88
  - lib/cortex/snippets/client.rb
103
- - lib/cortex/snippets/client/helper.rb
104
- - lib/cortex/snippets/client/railtie.rb
105
89
  - lib/cortex/snippets/client/version.rb
90
+ - lib/cortex/snippets/client/webpage.rb
106
91
  homepage: https://github.com/cortex-cms/cortex-snippets-client-ruby
107
92
  licenses:
108
93
  - Apache-2.0
@@ -123,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
108
  version: '0'
124
109
  requirements: []
125
110
  rubyforge_project:
126
- rubygems_version: 2.6.8
111
+ rubygems_version: 2.5.1
127
112
  signing_key:
128
113
  specification_version: 4
129
114
  summary: Provides loading of Cortex snippets for Ruby applications, with some Rails
@@ -1,78 +0,0 @@
1
- module Cortex
2
- module Snippets
3
- module Client
4
- module Helper
5
- def snippet(options = {}, &block)
6
- snippets = webpage[:snippets] || []
7
- snippet = snippets.find { |snippet| snippet[:document][:name] == options[:id] }
8
-
9
- if snippet.nil? || snippet[:document][:body].nil? || snippet[:document][:body].empty?
10
- content_tag(:snippet, capture(&block), options)
11
- else
12
- content_tag(:snippet, snippet[:document][:body].html_safe, options)
13
- end
14
- end
15
-
16
- def seo_title
17
- webpage[:seo_title]
18
- end
19
-
20
- def seo_description
21
- webpage[:seo_description]
22
- end
23
-
24
- def seo_keywords
25
- webpage[:seo_keyword_list]
26
- end
27
-
28
- def seo_robots
29
- robot_information = []
30
- index_options = [:noindex, :nofollow, :noodp, :nosnippet, :noarchive, :noimageindex]
31
-
32
- index_options.each do |index_option|
33
- robot_information << index_option if webpage[index_option]
34
- end
35
-
36
- robot_information
37
- end
38
-
39
- def noindex
40
- webpage[:noindex]
41
- end
42
-
43
- def nofollow
44
- webpage[:nofollow]
45
- end
46
-
47
- def noodp
48
- webpage[:noodp]
49
- end
50
-
51
- def nosnippet
52
- webpage[:nosnippet]
53
- end
54
-
55
- def noarchive
56
- webpage[:noarchive]
57
- end
58
-
59
- def noimageindex
60
- webpage[:noimageindex]
61
- end
62
-
63
- def dynamic_yield
64
- {
65
- sku: webpage[:dynamic_yield_sku],
66
- category: webpage[:dynamic_yield_category]
67
- }
68
- end
69
-
70
- private
71
-
72
- def webpage
73
- Cortex::Snippets::Client::current_webpage(request)
74
- end
75
- end
76
- end
77
- end
78
- end
@@ -1,17 +0,0 @@
1
- module Cortex
2
- module Snippets
3
- module Client
4
- class Railtie < Rails::Railtie
5
- initializer 'cortex-snippets-client.view_controller_helpers' do |app|
6
- ActiveSupport.on_load :action_view do
7
- include Helper
8
- end
9
-
10
- ActiveSupport.on_load :action_controller do
11
- include Helper
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end