aviator 0.2.1 → 0.2.2

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: c8e26c692d08f4a3414f7b3ff14b120cee73bad5
4
- data.tar.gz: 9d60456a3afe9eed57d27acd626a08c3a987b3be
3
+ metadata.gz: 9e05d6303dec010925adaadef7852044aec4dbc0
4
+ data.tar.gz: 76d05e1271d60e2040ed6e752c79d8641556ab1a
5
5
  SHA512:
6
- metadata.gz: ffae1b956dc180c585cfa847889a9e0e8267843600e9bac5471a25e8781797ebf6eccb3cedeb05501375372aeedc15348d7b963790bd18682eddce2387cc5a95
7
- data.tar.gz: f9ebba7e141c1f886d17573b04b0dd60b1708e7c814b3cbbaf6493096be8d78dd4bbc76a52a83c308df63d0fe9e0e8eaacbffc76f907d617b1e9ea7d68cefceb
6
+ metadata.gz: c2bae7d16b1364ee57d72c69d2e3449419315cd0702c9ab0fb2ae1a38f78f2025624c8b65b61faa1c22348848b67ad7588826c49a0f742a19b4ab260d311ae9d
7
+ data.tar.gz: 3e586d5770779da16528ff1a7ed924318c2a71bd5e1146afa4f079889439b91f14da4e4973ce56a54d8415bd9ebc2f285d9458b5487bce5a01f3aa575e1da2f2
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  ![Aviator](https://raw.github.com/aviator/www/gh-pages/images/logo-small.png)
2
- <br/>An elegantly designed OpenStack SDK for Ruby
2
+ <br/>A Framework for Writing REST API Clients
3
3
 
4
4
  [![Build Status](https://travis-ci.org/aviator/aviator.png?branch=master)](https://travis-ci.org/aviator/aviator)
5
5
  [![Coverage Status](https://coveralls.io/repos/aviator/aviator/badge.png?branch=master)](https://coveralls.io/r/aviator/aviator?branch=master)
@@ -33,8 +33,9 @@ module Aviator
33
33
 
34
34
  def self.describe_request(provider_name, service_name, api_version, endpoint_type, request_name)
35
35
  service = Aviator::Service.new :provider => provider_name, :service => service_name
36
- request_class = "Aviator::#{ provider_name.camelize }::#{ service_name.camelize }::Requests::"\
37
- "#{ api_version.camelize }::#{ endpoint_type.camelize }::#{ request_name.camelize }".constantize
36
+ request_class = "Aviator::#{ StrUtil.camelize(provider_name) }::#{ StrUtil.camelize(service_name) }::Requests::"\
37
+ "#{ StrUtil.camelize(api_version) }::#{ StrUtil.camelize(endpoint_type) }::#{ StrUtil.camelize(request_name) }"
38
+ request_class = StrUtil.constantize(request_class)
38
39
 
39
40
  display = "Request: #{ request_name }\n"
40
41
 
@@ -119,7 +120,7 @@ module Aviator
119
120
  str = "Available requests for #{ provider_name } #{ service_name }_service:\n"
120
121
 
121
122
  requests.each do |klass|
122
- str << " #{ klass.api_version } #{ klass.endpoint_type } #{ klass.name.split('::').last.underscore }\n"
123
+ str << " #{ klass.api_version } #{ klass.endpoint_type } #{ StrUtil.underscore(klass.name.split('::').last) }\n"
123
124
  end
124
125
 
125
126
  str
@@ -40,12 +40,12 @@ module Aviator
40
40
  ]
41
41
 
42
42
  namespace = namespace_arr.inject(root_namespace) do |namespace, sym|
43
- const_name = sym.to_s.camelize
43
+ const_name = StrUtil.camelize(sym.to_s)
44
44
  namespace.const_set(const_name, Module.new) unless namespace.const_defined?(const_name, false)
45
45
  namespace.const_get(const_name, false)
46
46
  end
47
47
 
48
- klassname = request_name.to_s.camelize
48
+ klassname = StrUtil.camelize(request_name.to_s)
49
49
 
50
50
  if namespace.const_defined?(klassname, false)
51
51
  raise RequestAlreadyDefinedError.new(namespace, klassname)
@@ -66,11 +66,11 @@ module Aviator
66
66
  end
67
67
 
68
68
  full_request_class_arr.inject(root_namespace) do |namespace, sym|
69
- namespace.const_get(sym.to_s.camelize, false)
69
+ namespace.const_get(StrUtil.camelize(sym.to_s), false)
70
70
  end
71
71
  rescue NameError => e
72
- if Aviator.const_defined?(full_request_class_arr[0].to_s.camelize)
73
- provider = "Aviator::#{ full_request_class_arr[0] }::Provider".constantize
72
+ if Aviator.const_defined?(StrUtil.camelize(full_request_class_arr[0].to_s))
73
+ provider = StrUtil.constantize("Aviator::#{ full_request_class_arr[0] }::Provider")
74
74
  arr = ['..'] + full_request_class_arr
75
75
  arr[-1,1] = arr.last.to_s + '.rb'
76
76
  path = Pathname.new(provider.root_dir).join(*arr.map{|i| i.to_s }).expand_path
@@ -79,7 +79,7 @@ module Aviator
79
79
  if provider && path.exist?
80
80
  require path
81
81
  full_request_class_arr.inject(root_namespace) do |namespace, sym|
82
- namespace.const_get(sym.to_s.camelize, false)
82
+ namespace.const_get(StrUtil.camelize(sym.to_s), false)
83
83
  end
84
84
  else
85
85
  raise BaseRequestNotFoundError.new(request_class_arr)
@@ -99,4 +99,4 @@ module Aviator
99
99
 
100
100
  end # class << self
101
101
 
102
- end
102
+ end
@@ -47,7 +47,7 @@ module Aviator
47
47
 
48
48
  class MissingServiceEndpointError < StandardError
49
49
  def initialize(service_name, request_name)
50
- request_name = request_name.to_s.split('::').last.underscore
50
+ request_name = StrUtil.underscore(request_name.to_s.split('::').last)
51
51
  super "The session's service catalog does not have an entry for the #{ service_name } "\
52
52
  "service. Therefore, I don't know to which base URL the request should be sent. "\
53
53
  "This may be because you are using a default or unscoped token. If this is not your "\
@@ -147,10 +147,10 @@ module Aviator
147
147
 
148
148
  constant_parts = request_file_paths \
149
149
  .map{|rf| rf.to_s.match(/#{provider}\/#{service}\/([\w\/]+)\.rb$/) } \
150
- .map{|rf| rf[1].split('/').map{|c| c.camelize }.join('::') }
150
+ .map{|rf| rf[1].split('/').map{|c| StrUtil.camelize(c) }.join('::') }
151
151
 
152
152
  @request_classes = constant_parts.map do |cp|
153
- "Aviator::#{provider.camelize}::#{service.camelize}::#{cp}".constantize
153
+ StrUtil.constantize("Aviator::#{StrUtil.camelize(provider)}::#{StrUtil.camelize(service)}::#{cp}")
154
154
  end
155
155
  end
156
156
 
@@ -161,7 +161,7 @@ module Aviator
161
161
 
162
162
 
163
163
  def provider_module
164
- @provider_module ||= "Aviator::#{provider.camelize}::Provider".constantize
164
+ @provider_module ||= StrUtil.constantize("Aviator::#{StrUtil.camelize(provider)}::Provider")
165
165
  end
166
166
 
167
167
  end
@@ -1,24 +1,26 @@
1
- class String
1
+ module Aviator
2
2
 
3
- unless instance_methods.include? 'camelize'
4
- define_method :camelize do
5
- word = self.slice(0,1).capitalize + self.slice(1..-1)
6
- word.gsub(/_([a-zA-Z\d])/) { "#{$1.capitalize}" }
7
- end
8
- end
3
+ class StrUtil
4
+
5
+ class <<self
9
6
 
10
- unless instance_methods.include? 'constantize'
11
- define_method :constantize do
12
- self.split("::").inject(Object) do |namespace, sym|
13
- namespace.const_get(sym.to_s.camelize, false)
7
+ def camelize(str)
8
+ word = str.slice(0,1).capitalize + str.slice(1..-1)
9
+ word.gsub(/_([a-zA-Z\d])/) { "#{$1.capitalize}" }
10
+ end
11
+
12
+ def constantize(str)
13
+ str.split("::").inject(Object) do |namespace, sym|
14
+ namespace.const_get(self.camelize(sym.to_s), false)
15
+ end
16
+ end
17
+
18
+ def underscore(str)
19
+ str.gsub(/([a-z\d])([A-Z])/, '\1_\2').downcase
14
20
  end
15
- end
16
- end
17
21
 
18
- unless instance_methods.include? 'underscore'
19
- define_method :underscore do
20
- self.gsub(/([a-z\d])([A-Z])/, '\1_\2').downcase
21
22
  end
23
+
22
24
  end
23
25
 
24
26
  end
@@ -95,24 +95,24 @@ EOF
95
95
  service = service.to_s
96
96
  endpoint_type = options[:endpoint_type]
97
97
  endpoint_types = if endpoint_type
98
- [endpoint_type.to_s.camelize]
98
+ [StrUtil.camelize(endpoint_type.to_s)]
99
99
  else
100
100
  ['Public', 'Admin']
101
101
  end
102
102
 
103
103
  namespace = Aviator.const_get('Openstack') \
104
- .const_get(service.camelize) \
104
+ .const_get(StrUtil.camelize(service)) \
105
105
  .const_get('Requests')
106
106
 
107
107
  if options[:api_version]
108
108
  m = options[:api_version].to_s.match(/(v\d+)\.?\d*/)
109
- version = m[1].to_s.camelize unless m.nil?
109
+ version = StrUtil.camelize(m[1].to_s) unless m.nil?
110
110
  end
111
111
 
112
112
  version ||= infer_version(session_data, name, service)
113
113
 
114
114
  unless version.nil?
115
- version = version.to_s.camelize
115
+ version = StrUtil.camelize(version.to_s)
116
116
  end
117
117
 
118
118
  return nil unless version && namespace.const_defined?(version)
@@ -120,7 +120,7 @@ EOF
120
120
  namespace = namespace.const_get(version, name)
121
121
 
122
122
  endpoint_types.each do |endpoint_type|
123
- name = name.to_s.camelize
123
+ name = StrUtil.camelize(name.to_s)
124
124
 
125
125
  next unless namespace.const_defined?(endpoint_type)
126
126
  next unless namespace.const_get(endpoint_type).const_defined?(name)
@@ -1,3 +1,3 @@
1
1
  module Aviator
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -13,7 +13,7 @@ class Aviator::Test
13
13
  request_path = [provider_name, service_name, :requests, base_ver, base_ept, base_name]
14
14
 
15
15
  @base = request_path.inject(Aviator) do |namespace, sym|
16
- const_name = sym.to_s.camelize
16
+ const_name = Aviator::StrUtil.camelize(sym.to_s)
17
17
 
18
18
  if namespace && namespace.const_defined?(const_name, false)
19
19
  namespace.const_get(const_name, false)
@@ -91,7 +91,7 @@ class Aviator::Test
91
91
  expected = "Available requests for #{ provider } #{ service }_service:\n"
92
92
 
93
93
  requests.each do |klass|
94
- expected << " #{ klass.api_version } #{ klass.endpoint_type } #{ klass.name.split('::').last.underscore }\n"
94
+ expected << " #{ klass.api_version } #{ klass.endpoint_type } #{ Aviator::StrUtil.underscore(klass.name.split('::').last) }\n"
95
95
  end
96
96
 
97
97
  klass.describe_service(provider, service).must_equal expected
@@ -26,7 +26,7 @@ class Aviator::Test
26
26
  end
27
27
 
28
28
  [provider, service, :requests, api_ver, ep_type, _name_].inject(builder) do |namespace, sym|
29
- const_name = sym.to_s.camelize
29
+ const_name = Aviator::StrUtil.camelize(sym.to_s)
30
30
 
31
31
  namespace.const_defined?(const_name, false).must_equal true
32
32
 
@@ -50,7 +50,7 @@ class Aviator::Test
50
50
  end
51
51
 
52
52
  [provider, service, :requests, api_ver, ep_type, _name_].inject(builder) do |namespace, sym|
53
- const_name = sym.to_s.camelize
53
+ const_name = Aviator::StrUtil.camelize(sym.to_s)
54
54
 
55
55
  namespace.const_defined?(const_name, false).must_equal true,
56
56
  "Expected #{ const_name } to be defined in #{ namespace }"
@@ -96,7 +96,7 @@ class Aviator::Test
96
96
  ]
97
97
 
98
98
  child_request = child_req_hierarchy.inject(builder) do |namespace, sym|
99
- namespace.const_get(sym.to_s.camelize, false)
99
+ namespace.const_get(Aviator::StrUtil.camelize(sym.to_s), false)
100
100
  end
101
101
 
102
102
  child_request.wont_be_nil
@@ -154,7 +154,7 @@ class Aviator::Test
154
154
  error = the_method.call rescue $!
155
155
 
156
156
  error.message.wont_be_nil
157
- error.request_name.must_equal request[:name].to_s.camelize
157
+ error.request_name.must_equal Aviator::StrUtil.camelize(request[:name].to_s)
158
158
  end
159
159
 
160
160
 
@@ -165,11 +165,11 @@ class Aviator::Test
165
165
  builder.define_request child_arr.last, :inherit => base_arr do; end
166
166
 
167
167
  base_klass = base_arr.insert(2, :requests).inject(builder) do |namespace, sym|
168
- namespace.const_get(sym.to_s.camelize, false)
168
+ namespace.const_get(Aviator::StrUtil.camelize(sym.to_s), false)
169
169
  end
170
170
 
171
171
  child_klass = child_arr.insert(2, :requests).inject(builder) do |namespace, sym|
172
- namespace.const_get(sym.to_s.camelize, false)
172
+ namespace.const_get(Aviator::StrUtil.camelize(sym.to_s), false)
173
173
  end
174
174
 
175
175
  base_klass.wont_be_nil
@@ -180,4 +180,4 @@ class Aviator::Test
180
180
 
181
181
  end
182
182
 
183
- end
183
+ end
@@ -83,17 +83,18 @@ class Aviator::Test
83
83
  it 'returns an array of the request classes' do
84
84
  provider_name = config[:provider]
85
85
  service_name = config[:auth_service][:name]
86
- provider_module = "Aviator::#{ provider_name.camelize }::Provider".constantize
86
+ provider_module = "Aviator::#{ Aviator::StrUtil.camelize(provider_name) }::Provider"
87
+ provider_module = Aviator::StrUtil.constantize(provider_module)
87
88
 
88
89
  request_file_paths = provider_module.request_file_paths(service_name)
89
90
  request_file_paths.each{ |path| require path }
90
91
 
91
92
  constant_parts = request_file_paths \
92
93
  .map{|rf| rf.to_s.match(/#{ provider_name }\/#{ service_name }\/([\w\/]+)\.rb$/) } \
93
- .map{|rf| rf[1].split('/').map{|c| c.camelize }.join('::') }
94
+ .map{|rf| rf[1].split('/').map{|c| Aviator::StrUtil.camelize(c) }.join('::') }
94
95
 
95
96
  classes = constant_parts.map do |cp|
96
- "Aviator::#{ provider_name.camelize }::#{ service_name.camelize }::#{ cp }".constantize
97
+ Aviator::StrUtil.constantize("Aviator::#{ Aviator::StrUtil.camelize(provider_name) }::#{ Aviator::StrUtil.camelize(service_name) }::#{ cp }")
97
98
  end
98
99
 
99
100
  service.request_classes.must_equal classes
@@ -8,8 +8,8 @@ module Provider
8
8
  class << self
9
9
 
10
10
  def find_request(service, name, session_data, options)
11
- fqrn = "Aviator::Dummy::#{service.to_s.camelize}::Requests::V1::Public::#{name.to_s.camelize}"
12
- fqrn.constantize
11
+ fqrn = "Aviator::Dummy::#{Aviator::StrUtil.camelize(service.to_s)}::Requests::V1::Public::#{Aviator::StrUtil.camelize(name.to_s)}"
12
+ Aviator::StrUtil.constantize(fqrn)
13
13
  rescue NameError => e
14
14
  raise NameError.new("#{fqrn} not found: #{e.message}")
15
15
  end
@@ -50,7 +50,7 @@ class Test
50
50
 
51
51
 
52
52
  def get_request_class(parent, *path)
53
- const_name = path.shift.to_s.camelize.gsub(/\.rb$/, '')
53
+ const_name = Aviator::StrUtil.camelize(path.shift.to_s).gsub(/\.rb$/, '')
54
54
 
55
55
  const = if parent.const_defined?(const_name)
56
56
  parent.const_get(const_name)
@@ -17,8 +17,9 @@ class Test < MiniTest::Spec
17
17
  .gsub(/^Aviator::Test::/, '') \
18
18
  .gsub(/::#/, '/i_') \
19
19
  .gsub(/::::/, '/c_') \
20
- .gsub(/::/, '/') \
21
- .underscore
20
+ .gsub(/::/, '/')
21
+
22
+ path = Aviator::StrUtil.underscore(path)
22
23
 
23
24
  basename = __name__.gsub(/test_\d+_/, '')
24
25
 
@@ -50,7 +50,7 @@ VCR.configure do |c|
50
50
  [:username, :password, :tenantName, :tokenId].each do |key|
51
51
  configs.each do |config|
52
52
  c.filter_sensitive_data("<#{ config.to_s.upcase }_#{key.to_s.upcase}>") do
53
- env.send(config)[:auth_credentials][key] || env.send(config)[:auth_credentials][key.to_s.underscore]
53
+ env.send(config)[:auth_credentials][key] || env.send(config)[:auth_credentials][Aviator::StrUtil.underscore(key.to_s)]
54
54
  end
55
55
  end
56
56
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aviator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Maglana
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-14 00:00:00.000000000 Z
11
+ date: 2015-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday