conduit 1.0.3 → 1.0.4

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: ff4f0e5f7f702375659f970ab9ed86f2ce673ca7
4
- data.tar.gz: 88ebd51ff6273ba6dad93c01d60f0b78851ddfec
3
+ metadata.gz: 3bb1b8f51e94f9a01e34b93b204ddcc665f0fa97
4
+ data.tar.gz: 83f0645c72bea202ad14ee8feda10aeb2a343847
5
5
  SHA512:
6
- metadata.gz: 6106383b60779d51424c96d3319c439a76498c6bc33918f4cdf5363deb6da42666144054210b93bcc0bdb44f4f24e75aa80b9cfd2138f2472d65c977b596a129
7
- data.tar.gz: 2b6eeb302b22fc3d3e91eb46555d3ad5eeb3c6e698288f2c1624733b02cf39de54a22456a833f5fef969d9ac1e815fcd2d0d5b1d65ce696e9fcafd5669aedc37
6
+ metadata.gz: 017b4f44d22ef1b74dd5d032ca1a8f52978e4e27abf59e730144d6a818891425613433b3a8e360174d7e06dbd4c4dfed0568b92a0a4fa7ce479136f474d47835
7
+ data.tar.gz: 41918d02a479a3fc530ca6061dc54d2982543f37cf7ac43b79ea4e43f5fdc64f48eb8fd9ad5f375f92dc70d6883c10480fe739742fa9849a6372345d7119cb3a
@@ -1,6 +1,5 @@
1
1
  require "thor/group"
2
2
  require "active_support"
3
- require "byebug"
4
3
 
5
4
  module Conduit
6
5
  module <%= classified_name %>
@@ -2,8 +2,6 @@ require_relative "base"
2
2
 
3
3
  module Conduit::Driver::<%= classified_name %>
4
4
  class <%%= classified_name %> < Conduit::Driver::<%= classified_name %>::Base
5
- operation :<%%= underscored_name %>
6
-
7
5
  # Required attributes go here
8
6
  # required_attributes :required_attribute_name
9
7
 
@@ -18,7 +18,7 @@ module Conduit::Driver::<%= classified_name %>
18
18
  # Extracts the camelized attribute from the xml response
19
19
  def self.attribute(attr_name, &block)
20
20
  block ||= lambda do
21
- content_for "//#{ActiveSupport::Inflector.camelize(attr_name, false)}"
21
+ content_for "//#{inflector_method(attr_name)}"
22
22
  end
23
23
  super(attr_name, &block)
24
24
  end
@@ -57,12 +57,8 @@ module Conduit::Driver::<%= classified_name %>
57
57
  # Returns normalized request errors if present.
58
58
  def response_errors
59
59
  if response_content?
60
- if !content_for("//Fault").nil?
61
- [normalized_fault]
62
- else
63
- # Returns empty array if no errors
64
- normalized_errors
65
- end
60
+ # Returns empty array if no errors
61
+ normalized_errors
66
62
  else
67
63
  [Conduit::Error.new(message: "Unexpected response from server.")]
68
64
  end
@@ -76,42 +72,29 @@ module Conduit::Driver::<%= classified_name %>
76
72
 
77
73
  private
78
74
 
75
+ # Camelize `attr_name` while keeping first character lower case
76
+ def inflector_method attr_name
77
+ ActiveSupport::Inflector.camelize(attr_name, false)
78
+ end
79
+
79
80
  # Indicates if a request is in progress. Used for async requests.
80
81
  # Should be overwritten in the action's parser in case true.
81
82
  def in_progress?
82
83
  false
83
84
  end
84
85
 
85
- # Returns a new `Conduit::Error` instance containing the fault text
86
- # and the fault code.
87
- def normalized_fault
88
- # TODO: replace this if error message and code not present in the
89
- # below paths
90
- Conduit::Error.new({
91
- message: content_for("//Fault//Text"),
92
- code: content_for("//Fault//Code//Value")
93
- })
94
- end
95
-
96
- # Extracts the error from either `errorMessage` or `errorText`
97
- def error_response
98
- # TODO: replace this if error response not present in any of the following
99
- # paths.
100
- content_for("//errorMessage") || content_for("//errorText")
101
- end
102
-
103
- # Returns a new `Conduit::Error` instance containing the error message and
104
- # its code.
86
+ # Returns an array of `Conduit::Error` instances containing the error
87
+ # messages and codes.
105
88
  def normalized_errors
106
- # TODO: replace this if error not present in `error_message` and code
107
- # not present in `errorNumber`
108
- if error_response && !error_response.empty?
109
- [
89
+ # TODO: replace this if error not present in `error` node or `code` and
90
+ # `message` paths different.
91
+ if content_for("//error")
92
+ root.xpath("//error").map do |error|
110
93
  Conduit::Error.new({
111
- message: error_response,
112
- code: content_for("errorNumber")
94
+ message: content_for("message", error),
95
+ code: content_for("code", error)
113
96
  })
114
- ]
97
+ end
115
98
  else
116
99
  []
117
100
  end
data/lib/conduit/cli.rb CHANGED
@@ -113,7 +113,7 @@ module Conduit
113
113
  # add gemspec dependencies
114
114
  str = " # Dependencies\n"\
115
115
  " #\n"\
116
- " spec.add_dependency \"conduit\", \"~> 1.0.3\"\n"\
116
+ " spec.add_dependency \"conduit\", \"~> 1.0.4\"\n"\
117
117
  " # xml parser\n"\
118
118
  " spec.add_dependency \"nokogiri\"\n"\
119
119
  " # to get string inflectors\n"\
@@ -136,7 +136,7 @@ module Conduit
136
136
  #
137
137
  def perform_request
138
138
  response = request(body: view, method: :post)
139
- parser_instance = parser.new(response.body)
139
+ parser_instance = parser_class.new(response.body)
140
140
 
141
141
  Conduit::ApiResponse.new(raw_response: response, parser: parser_instance)
142
142
  end
@@ -189,7 +189,7 @@ module Conduit
189
189
  # Returns the parser for this action subclasses responsible for providing
190
190
  # the response_body and response_status.
191
191
  #
192
- def parser
192
+ def parser_class
193
193
  self.class.const_get(:Parser)
194
194
  end
195
195
 
@@ -1,3 +1,3 @@
1
1
  module Conduit
2
- VERSION = '1.0.3'
2
+ VERSION = '1.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conduit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Kelley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-05 00:00:00.000000000 Z
11
+ date: 2016-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -237,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
237
237
  version: '0'
238
238
  requirements: []
239
239
  rubyforge_project:
240
- rubygems_version: 2.4.5
240
+ rubygems_version: 2.2.2
241
241
  signing_key:
242
242
  specification_version: 4
243
243
  summary: Conduit is an interface for debit platforms.