scorpio 0.4.3 → 0.4.4

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: ebea8c54d7cec0fb3572cffc6f2992882d6fd7a82739abf6656a96d095d523a7
4
- data.tar.gz: a76428a2b3c8cfd00f0a3f9f639795bdcb3ac770bd97813bf4a44336158ec753
3
+ metadata.gz: d8e4b8a415bbb35c491e9a563c438916a33049e596e879d022f6435e5a7c7ec1
4
+ data.tar.gz: ca3d1b9b6539e9c0351c51bee08ed18667eabae3038514ecbe4a375ae246066f
5
5
  SHA512:
6
- metadata.gz: f10e3c1ff2bdcfb1d3f5c8459f411508dadcd9a8f0531b1e770a5370011b4946790b6d248baace076fc99f52c0dcafcda0d7e16113ee185ae09baf9515e24f18
7
- data.tar.gz: ed13200947e100a9ecb6d9ea38ed57abd1649b16144652ee9ef772a74d253416514fdee186666469009a7abb41f247af809bdc4c29ba66e374d225c9a8bd58da
6
+ metadata.gz: 89b3da10d085ab62755defca0457f9dc1d8e9c1db8699e2727efecdd9d12f5d09c3dbeca309afe283ac7ed5f25e3f92368969434a789c334a4897627bf7cd64d
7
+ data.tar.gz: 3dc9d5722372386ec1040c3ad6707d8aed251882ab31d8f26ad559edf517f3fbd001178b94de78987d849ba285808dc5f27b7414b78ad34a437a7b08fe73e899
@@ -1,3 +1,7 @@
1
+ # v0.4.3
2
+ - JSI v0.2.0
3
+ - misc
4
+
1
5
  # v0.4.3
2
6
  - misc
3
7
 
@@ -12,10 +12,11 @@ module Scorpio
12
12
  # @param instance [#to_hash] the document to represent as a Scorpio OpenAPI Document
13
13
  # @return [Scorpio::OpenAPI::V2::Document, Scorpio::OpenAPI::V3::Document]
14
14
  def from_instance(instance)
15
- if instance.is_a?(Hash)
16
- instance = JSI::JSON::Node.new_doc(instance)
17
- end
18
- if instance.is_a?(JSI::JSON::Node)
15
+ if instance.is_a?(Scorpio::OpenAPI::Document)
16
+ instance
17
+ elsif instance.is_a?(JSI::Base)
18
+ raise(TypeError, "instance is unexpected JSI type: #{instance.class.inspect}")
19
+ elsif instance.respond_to?(:to_hash)
19
20
  if instance['swagger'] =~ /\A2(\.|\z)/
20
21
  instance = Scorpio::OpenAPI::V2::Document.new(instance)
21
22
  elsif instance['openapi'] =~ /\A3(\.|\z)/
@@ -23,13 +24,6 @@ module Scorpio
23
24
  else
24
25
  raise(ArgumentError, "instance does not look like a recognized openapi document")
25
26
  end
26
- end
27
- if instance.is_a?(Scorpio::OpenAPI::Document)
28
- instance
29
- elsif instance.is_a?(JSI::Base)
30
- raise(TypeError, "instance is unexpected JSI type: #{instance.class.inspect}")
31
- elsif instance.respond_to?(:to_hash)
32
- from_instance(instance.to_hash)
33
27
  else
34
28
  raise(TypeError, "instance does not look like a hash (json object)")
35
29
  end
@@ -55,16 +55,16 @@ module Scorpio
55
55
 
56
56
  # @return [Scorpio::OpenAPI::Document] the document whence this operation came
57
57
  def openapi_document
58
- parents.detect { |p| p.is_a?(Scorpio::OpenAPI::Document) }
58
+ parent_jsis.detect { |p| p.is_a?(Scorpio::OpenAPI::Document) }
59
59
  end
60
60
 
61
61
  def path_template_str
62
62
  return @path_template_str if instance_variable_defined?(:@path_template_str)
63
63
  @path_template_str = begin
64
- parent_is_pathitem = parent.is_a?(Scorpio::OpenAPI::V2::PathItem) || parent.is_a?(Scorpio::OpenAPI::V3::PathItem)
65
- parent_parent_is_paths = parent.parent.is_a?(Scorpio::OpenAPI::V2::Paths) || parent.parent.is_a?(Scorpio::OpenAPI::V3::Paths)
64
+ parent_is_pathitem = parent_jsi.is_a?(Scorpio::OpenAPI::V2::PathItem) || parent_jsi.is_a?(Scorpio::OpenAPI::V3::PathItem)
65
+ parent_parent_is_paths = parent_jsi.parent_jsi.is_a?(Scorpio::OpenAPI::V2::Paths) || parent_jsi.parent_jsi.is_a?(Scorpio::OpenAPI::V3::Paths)
66
66
  if parent_is_pathitem && parent_parent_is_paths
67
- parent.instance.path.last
67
+ parent_jsi.jsi_ptr.reference_tokens.last
68
68
  end
69
69
  end
70
70
  end
@@ -92,9 +92,9 @@ module Scorpio
92
92
  def http_method
93
93
  return @http_method if instance_variable_defined?(:@http_method)
94
94
  @http_method = begin
95
- parent_is_pathitem = parent.is_a?(Scorpio::OpenAPI::V2::PathItem) || parent.is_a?(Scorpio::OpenAPI::V3::PathItem)
95
+ parent_is_pathitem = parent_jsi.is_a?(Scorpio::OpenAPI::V2::PathItem) || parent_jsi.is_a?(Scorpio::OpenAPI::V3::PathItem)
96
96
  if parent_is_pathitem
97
- instance.path.last
97
+ jsi_ptr.reference_tokens.last
98
98
  end
99
99
  end
100
100
  end
@@ -272,7 +272,8 @@ module Scorpio
272
272
  end
273
273
  include Configurables
274
274
 
275
- # there should only be one body parameter; this returns it
275
+ # @return [#to_hash] the body parameter
276
+ # @raise [Scorpio::OpenAPI::SemanticError] if there's more than one body param
276
277
  def body_parameter
277
278
  body_parameters = (parameters || []).select { |parameter| parameter['in'] == 'body' }
278
279
  if body_parameters.size == 0
@@ -6,18 +6,20 @@ module Scorpio
6
6
 
7
7
  class ResourceBase
8
8
  class << self
9
- # a hash of accessor names (Symbol) to default getter methods (UnboundMethod), used to determine
10
- # what accessors have been overridden from their defaults.
9
+ # ResourceBase.inheritable_accessor_defaults is a hash of accessor names (Symbol) mapped
10
+ # to default getter methods (UnboundMethod), used to determine what accessors have been
11
+ # overridden from their defaults.
11
12
  (-> (x) { define_method(:inheritable_accessor_defaults) { x } }).({})
12
- def define_inheritable_accessor(accessor, options = {})
13
- if options[:default_getter]
14
- # the value before the field is set (overwritten) is the result of the default_getter proc
15
- define_singleton_method(accessor, &options[:default_getter])
16
- else
17
- # the value before the field is set (overwritten) is the default_value (which is nil if not specified)
18
- default_value = options[:default_value]
19
- define_singleton_method(accessor) { default_value }
20
- end
13
+
14
+ # @param accessor [String, Symbol] the name of the accessor
15
+ # @param default_getter [#to_proc] a proc to provide a default value when no value
16
+ # has been explicitly set
17
+ # @param default_value [Object] a default value to return when no value has been
18
+ # explicitly set. do not pass both :default_getter and :default_value.
19
+ # @param on_set [#to_proc] callback proc, invoked when a value is assigned
20
+ def define_inheritable_accessor(accessor, default_value: nil, default_getter: -> { default_value }, on_set: nil)
21
+ # the value before the field is set (overwritten) is the result of the default_getter proc
22
+ define_singleton_method(accessor, &default_getter)
21
23
  inheritable_accessor_defaults[accessor] = self.singleton_class.instance_method(accessor)
22
24
  # field setter method. redefines the getter, replacing the method with one that returns the
23
25
  # setter's argument (that being inherited to the scope of the define_method(accessor) block
@@ -33,8 +35,8 @@ module Scorpio
33
35
  # getter method
34
36
  define_method(accessor) { value_ }
35
37
  # invoke on_set callback defined on the class
36
- if options[:on_set]
37
- klass.instance_exec(&options[:on_set])
38
+ if on_set
39
+ klass.instance_exec(&on_set)
38
40
  end
39
41
  end
40
42
  end
@@ -349,10 +351,8 @@ module Scorpio
349
351
  if object.is_a?(Scorpio::ResourceBase)
350
352
  # TODO request_schema_fail unless schema is for given model type
351
353
  request_body_for_schema(object.attributes, schema)
352
- elsif object.is_a?(JSI::Base)
353
- request_body_for_schema(object.instance, schema)
354
- elsif object.is_a?(JSI::JSON::Node)
355
- request_body_for_schema(object.content, schema)
354
+ elsif object.is_a?(JSI::PathedNode)
355
+ request_body_for_schema(object.node_content, schema)
356
356
  else
357
357
  if object.respond_to?(:to_hash)
358
358
  object.map do |key, value|
@@ -431,8 +431,7 @@ module Scorpio
431
431
  mod = object.map do |key, value|
432
432
  {key => response_object_to_instances(value, initialize_options)}
433
433
  end.inject({}, &:update)
434
- mod = mod.instance if mod.is_a?(JSI::Base)
435
- mod = mod.content if mod.is_a?(JSI::JSON::Node)
434
+ mod = mod.node_content if mod.is_a?(JSI::PathedNode)
436
435
  mod
437
436
  end
438
437
  if model
@@ -23,7 +23,7 @@ module Scorpio
23
23
  end
24
24
 
25
25
  if response_schema && (body_object.respond_to?(:to_hash) || body_object.respond_to?(:to_ary))
26
- body_object = JSI.class_for_schema(response_schema).new(JSI::JSON::Node.new_doc(body_object))
26
+ body_object = JSI.class_for_schema(response_schema).new(body_object)
27
27
  end
28
28
 
29
29
  body_object
@@ -1,3 +1,3 @@
1
1
  module Scorpio
2
- VERSION = "0.4.3"
2
+ VERSION = "0.4.4"
3
3
  end
@@ -20,8 +20,8 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_dependency "jsi", "~> 0.1.0"
24
- spec.add_dependency "ur", "~> 0.0.3"
23
+ spec.add_dependency "jsi", "~> 0.2.0"
24
+ spec.add_dependency "ur", "~> 0.0.4"
25
25
  spec.add_dependency "faraday"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
27
27
  spec.add_development_dependency "minitest", "~> 5.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scorpio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-25 00:00:00.000000000 Z
11
+ date: 2019-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jsi
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.0
19
+ version: 0.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.0
26
+ version: 0.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ur
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.3
33
+ version: 0.0.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.3
40
+ version: 0.0.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: faraday
43
43
  requirement: !ruby/object:Gem::Requirement