glare 1.1.0 → 1.2.0

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: de9b063e4c69c21566a74862a623247fd9385cf31d7e24742e5970c9ab50cfed
4
- data.tar.gz: 121de9045bf2d3d05bad31ae5ffee1501e4e6c7b7f65726bba34ae7ab22e7add
3
+ metadata.gz: e226cb39d95b10c480df7d010890467f8f65af0d2640f80dc05bb9fe0cc38dd6
4
+ data.tar.gz: 80ffd27027901623f5ff3b79989d5f89bb8bd6c354889bc48fc037d41dfc9484
5
5
  SHA512:
6
- metadata.gz: 2ec90aa14e010e2a7c1a131e163438458127bee37774bca20d515773b19cc4d4f1e1a528907e2fbdaf77861838d25e7af7bb971b68a8dc6e8fa41e001bb9a961
7
- data.tar.gz: c88b3aff8e5572ab0f463b4a541aabb0610a5ddd100bd9349f338638b207913e4c56a199e9f8ec4966d96745b78be67bccfd81256db6e40494eb11c0d6923eb0
6
+ metadata.gz: a5610704ad3c8db6f575a98e491b94b5333c98113153fbd1ff54b0c1e6280bbc931330b8795c7a3297beda1793ee31c8de08e0092dd1a5adce5a81e65f13046c
7
+ data.tar.gz: 05bd9c85b68b445d88dba8610ae3b14c8587f2db31bf9f3453e334da50b2717f769d88f3cd6d27cb2c4abd1025607c737570b0a58e4decf1c235a37558deee49
data/.gitignore CHANGED
@@ -10,3 +10,4 @@
10
10
  .envrc
11
11
  /spec/examples.txt
12
12
  /.ruby-version
13
+ /vendor
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
@@ -1,5 +1,7 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ # frozen_string_literal: true
3
+
4
+ lib = File.expand_path('lib', __dir__)
3
5
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
6
  require 'glare/version'
5
7
 
@@ -25,7 +27,7 @@ Gem::Specification.new do |spec|
25
27
  spec.add_development_dependency 'rake', '~> 12.3'
26
28
  spec.add_development_dependency 'rspec', '~> 3.7'
27
29
 
30
+ spec.add_dependency 'faraday', '~> 1.0'
31
+ spec.add_dependency 'faraday_middleware', '>= 1.0.0.rc1'
28
32
  spec.add_dependency 'public_suffix', '>= 3.0.2', '< 5.0'
29
- spec.add_dependency 'faraday', '>= 0.16.0'
30
- spec.add_dependency 'faraday_middleware', '>= 0.13.0'
31
33
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'public_suffix'
2
4
  require 'glare/version'
3
5
  require 'glare/credentials'
@@ -7,39 +9,49 @@ require 'glare/api_response'
7
9
  require 'glare/dns_record'
8
10
  require 'glare/cf_dns_records'
9
11
  require 'glare/errors'
12
+ require 'forwardable'
10
13
 
11
14
  module Glare
12
15
  class << self
16
+ extend Forwardable
17
+
18
+ def_delegators :new, :register, :resolve, :deregister, :proxied?, :records
19
+
20
+ def new
21
+ Instance.new
22
+ end
23
+ end
24
+
25
+ class Instance
26
+ def initialize
27
+ @client = Domain.new(build_client)
28
+ end
29
+
13
30
  def register(fqdn, destination, type, proxied: false, ttl: 1)
14
- client = build_client
15
- Domain.new(client).register(fqdn, destination, type, proxied: proxied, ttl: ttl)
31
+ @client.register(fqdn, destination, type, proxied: proxied, ttl: ttl)
16
32
  end
17
33
 
18
34
  def resolve(fqdn, type)
19
- client = build_client
20
- Domain.new(client).resolve(fqdn, type)
35
+ @client.resolve(fqdn, type)
21
36
  end
22
37
 
23
38
  def deregister(fqdn, type)
24
- client = build_client
25
- Domain.new(client).deregister(fqdn, type)
39
+ @client.deregister(fqdn, type)
26
40
  end
27
41
 
28
42
  def proxied?(fqdn, type)
29
- client = build_client
30
- Domain.new(client).proxied?(fqdn, type)
43
+ @client.proxied?(fqdn, type)
31
44
  end
32
45
 
33
46
  def records(fqdn, type)
34
- client = build_client
35
- Domain.new(client).records(fqdn, type)
47
+ @client.records(fqdn, type)
36
48
  end
37
49
 
38
50
  private
39
51
 
40
- CF_EMAIL = 'CF_EMAIL'.freeze
41
- CF_AUTH_KEY = 'CF_AUTH_KEY'.freeze
42
- CF_API_TOKEN = 'CF_API_TOKEN'.freeze
52
+ CF_EMAIL = 'CF_EMAIL'
53
+ CF_AUTH_KEY = 'CF_AUTH_KEY'
54
+ CF_API_TOKEN = 'CF_API_TOKEN'
43
55
 
44
56
  def default_credentials
45
57
  email = ENV.fetch(CF_EMAIL)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare/errors'
2
4
 
3
5
  module Glare
@@ -12,6 +14,7 @@ module Glare
12
14
 
13
15
  def valid!
14
16
  raise Glare::Errors::ApiError.new(errors) unless success?
17
+
15
18
  self
16
19
  end
17
20
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Glare
2
4
  class CfDnsRecord
3
5
  def initialize(id:, name:, type:, content:, proxied: false, ttl:)
@@ -9,12 +11,12 @@ module Glare
9
11
  @ttl = ttl
10
12
  end
11
13
 
12
- def ==(cf_dns_record)
13
- @type == cf_dns_record.type &&
14
- @name == cf_dns_record.name &&
15
- @content == cf_dns_record.content &&
16
- @proxied == cf_dns_record.proxied &&
17
- @ttl == cf_dns_record.ttl
14
+ def ==(other)
15
+ @type == other.type &&
16
+ @name == other.name &&
17
+ @content == other.content &&
18
+ @proxied == other.proxied &&
19
+ @ttl == other.ttl
18
20
  end
19
21
 
20
22
  def to_h
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare/cf_dns_record'
2
4
  require 'glare/cf_dns_records/updater'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Glare
2
4
  class CfDnsRecords
3
5
  class Updater
@@ -33,9 +35,9 @@ module Glare
33
35
  @action = action
34
36
  end
35
37
 
36
- def ==(operation)
37
- @record == operation.record &&
38
- @action == operation.action
38
+ def ==(other)
39
+ @record == other.record &&
40
+ @action == other.action
39
41
  end
40
42
 
41
43
  attr_reader :action, :record
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'faraday'
2
4
  require 'faraday_middleware'
3
5
  require 'logger'
@@ -6,15 +8,15 @@ require 'glare/api_response'
6
8
  module Glare
7
9
  class Client
8
10
  BASE_HOST = 'https://api.cloudflare.com'
9
- BASE_PATH = '/client/v4'.freeze
11
+ BASE_PATH = '/client/v4'
10
12
 
11
13
  def initialize
12
14
  @http = Faraday::Connection.new(BASE_HOST) do |builder|
13
15
  builder.request :json
14
16
  builder.response :logger, Logger.new(STDERR) if ENV['CF_DEBUG']
15
- builder.response :json, :content_type => /\bjson$/
17
+ builder.response :json, content_type: /\bjson$/
16
18
 
17
- builder.adapter :net_http
19
+ builder.adapter :net_http
18
20
  end
19
21
  end
20
22
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Glare
2
4
  class Credentials
3
5
  def initialize(email, auth_key)
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Glare
2
4
  class DnsRecord
3
- def initialize(name:, type:, content:, proxied:, ttl: )
5
+ def initialize(name:, type:, content:, proxied:, ttl:)
4
6
  @name = name
5
7
  @type = type
6
8
  @content = content
@@ -18,12 +20,12 @@ module Glare
18
20
  }
19
21
  end
20
22
 
21
- def ==(dns_record)
22
- @type == dns_record.type &&
23
- @name == dns_record.name &&
24
- @content == dns_record.content &&
25
- @proxied == dns_record.proxied &&
26
- @ttl == dns_record.ttl
23
+ def ==(other)
24
+ @type == other.type &&
25
+ @name == other.name &&
26
+ @content == other.content &&
27
+ @proxied == other.proxied &&
28
+ @ttl == other.ttl
27
29
  end
28
30
 
29
31
  attr_reader :content, :type, :name, :proxied, :ttl
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare/domain/zone'
2
4
  require 'glare/domain/record'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare/domain/cf_zones'
2
4
  require 'glare/errors'
3
5
 
@@ -23,6 +25,7 @@ module Glare
23
25
 
24
26
  def first_id
25
27
  raise ::Glare::Errors::NotExistingZoneError.new if @zones.empty?
28
+
26
29
  @zones.first.id
27
30
  end
28
31
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Glare
2
4
  class Domain
3
5
  class Record
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare/domain/cf_zones'
2
4
 
3
5
  module Glare
@@ -15,6 +17,7 @@ module Glare
15
17
 
16
18
  def id
17
19
  return @id if @id
20
+
18
21
  zone_search = @client.get('/zones', name: registered_domain)
19
22
  @id = CfZones.from_result(zone_search).first_id
20
23
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Glare
2
4
  module Errors
3
5
  class NotExistingZoneError < StandardError; end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Glare
2
- VERSION = '1.1.0'.freeze
4
+ VERSION = '1.2.0'
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare'
2
4
 
3
5
  RSpec.describe 'delete domain', integration: true do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare'
2
4
 
3
5
  RSpec.describe 'retrieves proxied values', integration: true do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare'
2
4
 
3
5
  RSpec.describe 'Resolve domain', integration: true do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'coveralls'
2
4
  Coveralls.wear!
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare'
2
4
 
3
5
  RSpec.describe 'retrieves proxied values', integration: true do
@@ -12,8 +14,8 @@ RSpec.describe 'retrieves proxied values', integration: true do
12
14
  let(:destination) { ['1.2.3.4', '5.6.7.8'] }
13
15
 
14
16
  it 'sets custom ttl' do
15
- records_with_correct_ttl = records(domain).all? { |r| r.ttl == 300 }
16
- expect(records_with_correct_ttl).to eq(true)
17
+ records_with_correct_ttl = records(domain).all? { |r| r.ttl == 300 }
18
+ expect(records_with_correct_ttl).to eq(true)
17
19
  end
18
20
  end
19
21
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare/api_response'
2
4
 
3
5
  RSpec.describe Glare::ApiResponse do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare'
2
4
 
3
5
  RSpec.describe Glare do
@@ -116,7 +118,8 @@ RSpec.describe Glare do
116
118
  name: 'not-exist.example.com', type: 'CNAME'
117
119
  ).and_return(empty_result)
118
120
 
119
- Glare.register('not-exist.example.com', ['a_destination', 'another_destination'].shuffle, 'CNAME', proxied: true, ttl: 1)
121
+ destinations = %w[a_destination another_destination].shuffle
122
+ Glare.register('not-exist.example.com', destinations, 'CNAME', proxied: true, ttl: 1)
120
123
 
121
124
  expect(client).not_to have_received(:put).
122
125
  with('/zones/9de4eb694c380d79845d35cd939cc7a7/dns_records', any_args)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'glare/cf_dns_records'
2
4
  require 'glare/domain/record'
3
5
  require 'glare/dns_record'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glare
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jose Luis Salas
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-02-19 00:00:00.000000000 Z
12
+ date: 2020-03-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -54,53 +54,53 @@ dependencies:
54
54
  - !ruby/object:Gem::Version
55
55
  version: '3.7'
56
56
  - !ruby/object:Gem::Dependency
57
- name: public_suffix
57
+ name: faraday
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: 3.0.2
63
- - - "<"
60
+ - - "~>"
64
61
  - !ruby/object:Gem::Version
65
- version: '5.0'
62
+ version: '1.0'
66
63
  type: :runtime
67
64
  prerelease: false
68
65
  version_requirements: !ruby/object:Gem::Requirement
69
66
  requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- version: 3.0.2
73
- - - "<"
67
+ - - "~>"
74
68
  - !ruby/object:Gem::Version
75
- version: '5.0'
69
+ version: '1.0'
76
70
  - !ruby/object:Gem::Dependency
77
- name: faraday
71
+ name: faraday_middleware
78
72
  requirement: !ruby/object:Gem::Requirement
79
73
  requirements:
80
74
  - - ">="
81
75
  - !ruby/object:Gem::Version
82
- version: 0.16.0
76
+ version: 1.0.0.rc1
83
77
  type: :runtime
84
78
  prerelease: false
85
79
  version_requirements: !ruby/object:Gem::Requirement
86
80
  requirements:
87
81
  - - ">="
88
82
  - !ruby/object:Gem::Version
89
- version: 0.16.0
83
+ version: 1.0.0.rc1
90
84
  - !ruby/object:Gem::Dependency
91
- name: faraday_middleware
85
+ name: public_suffix
92
86
  requirement: !ruby/object:Gem::Requirement
93
87
  requirements:
94
88
  - - ">="
95
89
  - !ruby/object:Gem::Version
96
- version: 0.13.0
90
+ version: 3.0.2
91
+ - - "<"
92
+ - !ruby/object:Gem::Version
93
+ version: '5.0'
97
94
  type: :runtime
98
95
  prerelease: false
99
96
  version_requirements: !ruby/object:Gem::Requirement
100
97
  requirements:
101
98
  - - ">="
102
99
  - !ruby/object:Gem::Version
103
- version: 0.13.0
100
+ version: 3.0.2
101
+ - - "<"
102
+ - !ruby/object:Gem::Version
103
+ version: '5.0'
104
104
  description:
105
105
  email:
106
106
  - josacar@users.noreply.github.com
@@ -161,21 +161,22 @@ required_rubygems_version: !ruby/object:Gem::Requirement
161
161
  - !ruby/object:Gem::Version
162
162
  version: '0'
163
163
  requirements: []
164
- rubygems_version: 3.1.2
164
+ rubyforge_project:
165
+ rubygems_version: 2.7.7
165
166
  signing_key:
166
167
  specification_version: 4
167
168
  summary: API client for CloudFlare v4 API
168
169
  test_files:
169
- - spec/delete_domain_spec.rb
170
+ - spec/units/operations_spec.rb
171
+ - spec/units/api_response_spec.rb
172
+ - spec/units/glare_spec.rb
173
+ - spec/resolve_domain_spec.rb
170
174
  - spec/spec_helper.rb
171
- - spec/ttl_spec.rb
172
175
  - spec/proxied_spec.rb
173
- - spec/resolve_domain_spec.rb
174
- - spec/units/glare_spec.rb
175
- - spec/units/api_response_spec.rb
176
- - spec/units/operations_spec.rb
176
+ - spec/delete_domain_spec.rb
177
+ - spec/ttl_spec.rb
177
178
  - spec/fixtures/wadus_records_reverse_order.json
178
- - spec/fixtures/error_response.json
179
179
  - spec/fixtures/wadus_records.json
180
- - spec/fixtures/list_zone.json
181
180
  - spec/fixtures/empty_result.json
181
+ - spec/fixtures/error_response.json
182
+ - spec/fixtures/list_zone.json