apollo-ruby 1.0.4 → 1.0.5

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: 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