confyio 2.0.0 → 2.1.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: 77ed0ba6c5ab8d60c7c39c315413f72b130f9f7b
4
- data.tar.gz: f33fabe1345355b732028fcdcaf8319b06d37d28
3
+ metadata.gz: 58372fe4871d226c0d4e12fcf1fd39f73be7e15e
4
+ data.tar.gz: d13686c5f09d80b3174eda687f70dcd050f02785
5
5
  SHA512:
6
- metadata.gz: 8e588a7f0a687049eacc1b0ee268f4d6ba6d2e198b2c8faecb27acbe7bad8bc27a55c8c4d17543cc7d944763ee91c665df640b5269645955cbcb70dd1901d1c1
7
- data.tar.gz: e2133bb0a2fef3a09a08c104dc9336e68f13907c29e498e0febf12819807fd9d029778f52dc32d1f18641811221adb8dfb3974f04a2b3c5bde2cef54d83445e5
6
+ metadata.gz: 4a738798bdbad4c78b45bc7078fd64780e3d13ec07bbc4a90ca822f2699c95def34d7a2c6f2132c5ee943438138b8c23fba99d617f2e3779c867fbabebabcf57
7
+ data.tar.gz: fc8bfd25c75d64948749b7b7cf3532348f9e8d9415423f10d0798666964fcff724d8222739a9ab3a19274f0dd4da8581d409d00a378af72f9406ab49a2dd31b5
@@ -7,27 +7,52 @@ module Confy
7
7
 
8
8
  class Config
9
9
 
10
- def self.load(url = {})
11
- if url.is_a?(String)
10
+ def self.match(url)
11
+ if url.is_a?(String)
12
12
  name_regex = '([a-z0-9][a-z0-9-]*[a-z0-9])'
13
- path_regex = 'orgs\\/' + name_regex + '\\/projects\\/' + name_regex + '\\/envs\\/' + name_regex
14
- url_regex = Regexp.new('(https?:\\/\\/)(.*):(.*)@(.*)\\/(' + path_regex + '|heroku)\\/config', true)
13
+ token_regex = '([a-f0-9]{40})'
14
+ path_regex = 'orgs\\/' + name_regex + '(\\/projects\\/' + name_regex + '\\/envs\\/' + name_regex + '\\/config|\\/config\\/' + token_regex + ')'
15
+ url_regex = Regexp.new('(https?:\\/\\/)((.*):(.*)@)?(.*)\\/(' + path_regex + '|heroku\\/config)', true)
15
16
 
16
17
  matches = url_regex.match(url)
17
18
 
18
- raise 'Invalid url' if matches.nil?
19
+ raise 'Invalid URL' if matches.nil?
19
20
 
20
21
  url = {
21
- :host => matches[1] + matches[4], :path => "/#{matches[5]}/config",
22
- :user => matches[2], :pass => matches[3]
22
+ :host => matches[1] + matches[5],
23
+ :user => matches[3], :pass => matches[4],
24
+ :org => matches[7], :project => matches[9], :env => matches[10],
25
+ :token => matches[11],
26
+ :heroku => (matches[6] == 'heroku/config')
23
27
  }
24
28
  end
25
29
 
26
- raise 'Invalid url' if !url.is_a?(Hash)
30
+ raise 'Invalid URL' if !url.is_a?(Hash)
31
+
32
+ if url[:host] and url[:user] and url[:pass] and url[:heroku]
33
+ url[:path] = '/heroku/config'
34
+ elsif url[:host] and url[:token] and url[:org]
35
+ url[:path] = '/orgs/' + url[:org] + '/config/' + url[:token]
36
+ elsif url[:host] and url[:user] and url[:pass] and url[:org] and url[:project] and url[:env]
37
+ url[:path] = '/orgs/' + url[:org] + '/projects/' + url[:project] + '/envs/' + url[:env] + '/config'
38
+ else
39
+ raise 'Invalid URL'
40
+ end
41
+
42
+ url
43
+ end
44
+
45
+ def self.load(url = {})
46
+ url = self.match(url)
47
+
48
+ auth = {}
49
+
50
+ if url[:user] and url[:pass]
51
+ auth[:username] = url[:user]
52
+ auth[:password] = url[:pass]
53
+ end
27
54
 
28
- client = Confy::Client.new({
29
- :username => url[:user], :password => url[:pass]
30
- }, { :base => url[:host] })
55
+ client = Confy::Client.new(auth, { :base => url[:host] })
31
56
 
32
57
  body = client.instance_variable_get(:@http_client).get(url[:path]).body
33
58
 
@@ -27,8 +27,6 @@ module Confy
27
27
  if !flag
28
28
  raise StandardError.new "Unable to calculate authorization method. Please check"
29
29
  end
30
- else
31
- raise StandardError.new "Server requires authentication to proceed further. Please check"
32
30
  end
33
31
 
34
32
  @app.call(env)
metadata CHANGED
@@ -1,53 +1,53 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: confyio
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavan Kumar Sunkara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-23 00:00:00.000000000 Z
11
+ date: 2016-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.9'
20
- - - '>='
20
+ - - ">="
21
21
  - !ruby/object:Gem::Version
22
22
  version: 0.9.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ~>
27
+ - - "~>"
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0.9'
30
- - - '>='
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.9.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: json
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ~>
37
+ - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '1.7'
40
- - - '>='
40
+ - - ">="
41
41
  - !ruby/object:Gem::Version
42
42
  version: 1.7.7
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ~>
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
49
  version: '1.7'
50
- - - '>='
50
+ - - ">="
51
51
  - !ruby/object:Gem::Version
52
52
  version: 1.7.7
53
53
  description: Official Confy API library client for ruby
@@ -86,19 +86,18 @@ require_paths:
86
86
  - lib
87
87
  required_ruby_version: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - '>='
89
+ - - ">="
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  requirements: []
98
98
  rubyforge_project:
99
- rubygems_version: 2.4.5
99
+ rubygems_version: 2.4.5.1
100
100
  signing_key:
101
101
  specification_version: 4
102
102
  summary: Official Confy API library client for ruby
103
103
  test_files: []
104
- has_rdoc: