config_hub-client 0.1.2 → 0.1.3

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
  SHA1:
3
- metadata.gz: ded2e7b41345948796f321d899986236a91442a5
4
- data.tar.gz: da54e4b9442d68c7a5a14d9c04f6ed91056e16b2
3
+ metadata.gz: b7c252299059e21380862e2362f882bf534b3cfc
4
+ data.tar.gz: 8585460a99d9e9b090d137b347833122aac5c55b
5
5
  SHA512:
6
- metadata.gz: b6e2c168fe099481f055785d554fb8e99739dd62859c458d6399888fe44b4e096286ba51c0bce9c249f41eee7503d4120978289645b404bac3b6a29e92948640
7
- data.tar.gz: b69dd5553efc2cc33b9c9046b47ecff0971495d38089378c2598037c7a7234579bd1ba10f9884b0d0bb9fe85c50a11ea8590b8bea39334b2ed206ab67fe94cb7
6
+ metadata.gz: 3de2d68106317031b77e41929f3e6f81da5498bec4e35a0fed9bdfa0d6c7d504f323ca361a541a685c9c8f9a0364d26bdc19499d1a1527188e35321ff55b4236
7
+ data.tar.gz: 82772946f080a175a98ec3a18116c77ed7e84f22c75a940b9f8c7ce6f3906e623443f43af6e0c42ca26fcec78e6b5b8ea77398fe87617394609d8a34699c4088
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- config_hub-client (0.1.1)
4
+ config_hub-client (0.1.2)
5
5
  activerecord (>= 4.2.0)
6
6
  faraday (>= 0.12.2)
7
7
 
@@ -19,15 +19,21 @@ GEM
19
19
  i18n (~> 0.7)
20
20
  minitest (~> 5.1)
21
21
  tzinfo (~> 1.1)
22
+ addressable (2.5.2)
23
+ public_suffix (>= 2.0.2, < 4.0)
22
24
  arel (8.0.0)
23
25
  awesome_print (1.7.0)
24
26
  concurrent-ruby (1.0.5)
27
+ crack (0.4.3)
28
+ safe_yaml (~> 1.0.0)
25
29
  diff-lcs (1.3)
26
30
  faraday (0.12.2)
27
31
  multipart-post (>= 1.2, < 3)
32
+ hashdiff (0.3.6)
28
33
  i18n (0.8.6)
29
34
  minitest (5.10.3)
30
35
  multipart-post (2.0.0)
36
+ public_suffix (3.0.0)
31
37
  rake (10.4.2)
32
38
  rspec (3.6.0)
33
39
  rspec-core (~> 3.6.0)
@@ -42,9 +48,14 @@ GEM
42
48
  diff-lcs (>= 1.2.0, < 2.0)
43
49
  rspec-support (~> 3.6.0)
44
50
  rspec-support (3.6.0)
51
+ safe_yaml (1.0.4)
45
52
  thread_safe (0.3.6)
46
53
  tzinfo (1.2.3)
47
54
  thread_safe (~> 0.1)
55
+ webmock (3.0.1)
56
+ addressable (>= 2.3.6)
57
+ crack (>= 0.3.2)
58
+ hashdiff
48
59
 
49
60
  PLATFORMS
50
61
  ruby
@@ -55,6 +66,7 @@ DEPENDENCIES
55
66
  config_hub-client!
56
67
  rake (~> 10.0)
57
68
  rspec (~> 3.0)
69
+ webmock
58
70
 
59
71
  BUNDLED WITH
60
72
  1.15.4
@@ -36,4 +36,5 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency 'rake', '~> 10.0'
37
37
  spec.add_development_dependency 'rspec', '~> 3.0'
38
38
  spec.add_development_dependency 'awesome_print'
39
+ spec.add_development_dependency 'webmock'
39
40
  end
@@ -23,15 +23,19 @@ module ConfigHub
23
23
  end
24
24
 
25
25
  def fetch(key)
26
- if config_pulled?
26
+ if has?(key)
27
27
  item = @data['properties'][key.to_s]
28
- if item.nil?
29
- yield if block_given?
30
- else
31
- cast item['val'], item['type']
32
- end
28
+ cast item['val'], item['type']
29
+ elsif block_given?
30
+ yield
31
+ end
32
+ end
33
+
34
+ def fetch_file(key)
35
+ if config_pulled? && @data['files'].present?
36
+ @data.dig('files', key, 'content')
33
37
  else
34
- raise ConfigNotPulledError
38
+ retrieve_remote_file(key)
35
39
  end
36
40
  end
37
41
 
@@ -45,6 +49,15 @@ module ConfigHub
45
49
  end
46
50
  end
47
51
 
52
+ def has?(key)
53
+ if config_pulled?
54
+ props = @data['properties']
55
+ props && props.key?(key.to_s)
56
+ else
57
+ raise ConfigNotPulledError
58
+ end
59
+ end
60
+
48
61
  private
49
62
 
50
63
  def cast(val, type)
@@ -62,6 +75,19 @@ module ConfigHub
62
75
  end
63
76
  end
64
77
 
78
+ def retrieve_remote_file(key)
79
+ res = @conn.get('/rest/rawFile') do |req|
80
+ req.headers['File'] = key
81
+ end
82
+ if res.status == 200
83
+ res.body
84
+ elsif res.status == 204
85
+ nil
86
+ else
87
+ raise RequestError.new('Could not retrieve raw file', res)
88
+ end
89
+ end
90
+
65
91
  def retrieve_remote_config
66
92
  res = @conn.get('/rest/pull')
67
93
  if res.status == 200
@@ -1,5 +1,5 @@
1
1
  module ConfigHub
2
2
  class Client
3
- VERSION = '0.1.2'.freeze
3
+ VERSION = '0.1.3'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: config_hub-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Dunn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-23 00:00:00.000000000 Z
11
+ date: 2017-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: webmock
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description:
98
112
  email:
99
113
  - jeremy.dunn@vineti.com