apollo-ruby 1.0.4 → 1.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8109a5c40706105f9e14020da6983533eb9cbcaf562a44ca0e9707e52cfe527
4
- data.tar.gz: 22672ddec88c105940dc3ffdf9c3841496a3cc56df24dbdb3ed04b7d597a2fff
3
+ metadata.gz: fa906b6533d57f7c1955a74a9203a95461b2bfdf7a3e2ce21431a7ffd75bbf33
4
+ data.tar.gz: e755a001930a5108182c95dacc89a3e5b5bc48cb7215e6636f45b843759c1777
5
5
  SHA512:
6
- metadata.gz: 2da4e8aaedfbcc6d77687335cbb68be0af333c8f297b13cd1af6975f0e4ae84d8222c976cbc804c72b2cf8c193256b07f52fe84b1a37272d5c5382055fc15d12
7
- data.tar.gz: a9498cbac9a9b8d535404de27d895299ab0ac941bb8902416253e837298246fd05770af61ab750cdc80aea11d219b40a48569f14f3e48e577ad475dfbe58a72d
6
+ metadata.gz: 4529548f583cf9830a6df51d07ca94e52020e6bd71d8df51f08ec5bdbc46f9e316ea280fcd554925e2fe0267d94111a1ff7d1f2e800426dae2b8277d6f3d44f6
7
+ data.tar.gz: 0f8df44eaf1841473ea8f642937ce737aff7c50aae37f096ce9d629b64d649d3d55cde2a1b3fb0c129b9542d3e34391968b7240601fcff0d0d7a26a909eafac6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,6 @@
1
1
  ## [Released]
2
2
 
3
+ ## [1.0.5] - 2023-07-10
3
4
  ## [1.0.2] - 2023-04-17
4
5
 
5
6
  - Initial release
data/Gemfile CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- # Specify your gem's dependencies in apollo.gemspec
5
+ # Specify dependencies in apollo.gemspec
6
6
  gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
@@ -10,5 +10,3 @@ gem "rake", "~> 13.0"
10
10
  gem "rspec", "~> 3.0"
11
11
 
12
12
  gem "rubocop", "~> 1.21"
13
-
14
- gem "rest-client"
data/Gemfile.lock CHANGED
@@ -1,36 +1,20 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- apollo-ruby (1.0.4)
5
- json
6
- rest-client
4
+ apollo-ruby (1.0.5)
7
5
 
8
6
  GEM
9
7
  remote: https://rubygems.org/
10
8
  specs:
11
9
  ast (2.4.2)
12
10
  diff-lcs (1.5.0)
13
- domain_name (0.5.20190701)
14
- unf (>= 0.0.5, < 1.0.0)
15
- http-accept (1.7.0)
16
- http-cookie (1.0.5)
17
- domain_name (~> 0.5)
18
11
  json (2.6.2)
19
- mime-types (3.4.1)
20
- mime-types-data (~> 3.2015)
21
- mime-types-data (3.2023.0218.1)
22
- netrc (0.11.0)
23
12
  parallel (1.22.1)
24
13
  parser (3.1.2.1)
25
14
  ast (~> 2.4.1)
26
15
  rainbow (3.1.1)
27
16
  rake (13.0.6)
28
17
  regexp_parser (2.6.0)
29
- rest-client (2.1.0)
30
- http-accept (>= 1.7.0, < 2.0)
31
- http-cookie (>= 1.0.2, < 2.0)
32
- mime-types (>= 1.16, < 4.0)
33
- netrc (~> 0.8)
34
18
  rexml (3.2.5)
35
19
  rspec (3.12.0)
36
20
  rspec-core (~> 3.12.0)
@@ -58,9 +42,6 @@ GEM
58
42
  rubocop-ast (1.23.0)
59
43
  parser (>= 3.1.1.0)
60
44
  ruby-progressbar (1.11.0)
61
- unf (0.1.4)
62
- unf_ext
63
- unf_ext (0.0.8.2)
64
45
  unicode-display_width (2.3.0)
65
46
 
66
47
  PLATFORMS
@@ -70,7 +51,6 @@ DEPENDENCIES
70
51
  apollo-ruby!
71
52
  bundler
72
53
  rake (~> 13.0)
73
- rest-client
74
54
  rspec (~> 3.0)
75
55
  rubocop (~> 1.21)
76
56
 
data/lib/apollo/auth.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "base64"
2
4
  require "openssl"
3
5
 
data/lib/apollo/client.rb CHANGED
@@ -1,7 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Apollo
2
4
  # Get configuration data from Apollo server.
3
5
  class Client
4
-
5
6
  attr_accessor :configuration
6
7
 
7
8
  def initialize(configuration)
@@ -9,11 +10,9 @@ module Apollo
9
10
  end
10
11
 
11
12
  def fetch(key, disable_cache)
12
- if disable_cache
13
- uncached_http_get(key)
14
- else
15
- cached_http_get(key)
16
- end
13
+ return nil if [configuration.server, configuration.appid, configuration.secret].any?(&:nil?)
14
+
15
+ disable_cache ? uncached_http_get(key) : cached_http_get(key)
17
16
  end
18
17
 
19
18
  def cached_http_get(key)
@@ -1,7 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Apollo
2
4
  # Set Apollo application configuration.
3
5
  class Configuration
4
-
5
6
  # Cluster name of Apollo application.
6
7
  attr_reader :cluster
7
8
 
data/lib/apollo/http.rb CHANGED
@@ -1,4 +1,6 @@
1
- require "rest-client"
1
+ # frozen_string_literal: true
2
+
3
+ require "net/http"
2
4
 
3
5
  module Apollo
4
6
  # HTTP Client.
@@ -9,12 +11,17 @@ module Apollo
9
11
  end
10
12
 
11
13
  def get(url, headers, _opts = {})
12
- response = RestClient.get(url, headers)
13
- [response.code.to_i, response.body, response.raw_headers]
14
+ uri = URI(url)
15
+ http = Net::HTTP.new(uri.host, uri.port)
16
+ http.use_ssl = (uri.scheme == "https")
17
+ request = Net::HTTP::Get.new(uri)
18
+ request.initialize_http_header(headers)
19
+ response = http.request(request)
20
+ [response.code.to_i, response.body, response.to_hash]
14
21
  rescue StandardError => e
15
- Log.logger.warn "#{e.message} => Apollo::HTTP.get('#{url}')"
22
+ Apollo.logger.warn "#{e.message} => Apollo::HTTP.get('#{url}')"
16
23
  if e.respond_to?(:response) && e.response.respond_to?(:code)
17
- return e.response.code, e.response.body, e.response.raw_headers
24
+ return e.response.code.to_i, e.response.body, e.response.to_hash
18
25
  end
19
26
 
20
27
  [nil, nil, nil]
@@ -22,4 +29,3 @@ module Apollo
22
29
  end
23
30
  end
24
31
  end
25
-
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Apollo
2
4
  # A copy of Apollo's base module class methods.
3
5
  class Instance
@@ -17,13 +19,17 @@ module Apollo
17
19
 
18
20
  def configure
19
21
  yield(configuration) if block_given?
20
- self.client = Client.new(configuration)
21
- client
22
+ self.client = @client || Client.new(configuration)
22
23
  end
23
24
 
24
- def fetch(key, opts = {})
25
+ def fetch(key, default = nil, opts = {}, &block)
25
26
  opts[:disable_cache] = false unless opts.key?(:disable_cache)
26
- client.fetch(key, opts[:disable_cache])
27
+ value = client.fetch(key, opts[:disable_cache])
28
+ value || (block_given? ? block.call(key) : default)
29
+ end
30
+
31
+ def [](key)
32
+ fetch(key)
27
33
  end
28
34
  end
29
35
  end
data/lib/apollo/utils.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "json"
2
4
  require "uri"
3
5
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Apollo
4
- VERSION = "1.0.4"
4
+ VERSION = "1.0.5"
5
5
  end
data/lib/apollo-ruby.rb CHANGED
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "apollo"
data/lib/apollo.rb CHANGED
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "logger"
1
4
  require "apollo/auth"
2
5
  require "apollo/client"
3
6
  require "apollo/configuration"
4
7
  require "apollo/http"
5
8
  require "apollo/instance"
6
- require "apollo/log"
7
9
  require "apollo/utils"
8
10
  require "apollo/version"
9
11
 
@@ -16,6 +18,10 @@ module Apollo
16
18
  @instance ||= Apollo::Instance.new
17
19
  end
18
20
 
19
- def_delegators :instance, :client=, :configuration=, :configuration, :client, :configure, :fetch
21
+ def logger
22
+ @logger ||= ::Logger.new($stderr)
23
+ end
24
+
25
+ def_delegators :instance, :client=, :configuration=, :configuration, :client, :configure, :fetch, :[]
20
26
  end
21
27
  end
metadata CHANGED
@@ -1,43 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apollo-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kervin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-25 00:00:00.000000000 Z
11
+ date: 2023-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: json
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: rest-client
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
13
  - !ruby/object:Gem::Dependency
42
14
  name: bundler
43
15
  requirement: !ruby/object:Gem::Requirement
@@ -91,7 +63,6 @@ files:
91
63
  - lib/apollo/configuration.rb
92
64
  - lib/apollo/http.rb
93
65
  - lib/apollo/instance.rb
94
- - lib/apollo/log.rb
95
66
  - lib/apollo/utils.rb
96
67
  - lib/apollo/version.rb
97
68
  - sig/apollo.rbs
data/lib/apollo/log.rb DELETED
@@ -1,12 +0,0 @@
1
- require "logger"
2
-
3
- module Apollo
4
- # Log.
5
- module Log
6
- class << self
7
- def logger
8
- @logger ||= ::Logger.new($stderr)
9
- end
10
- end
11
- end
12
- end