sendregning 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 +5 -5
- data/.rubocop.yml +23 -0
- data/.rubocop_todo.yml +0 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +93 -0
- data/lib/sendregning.rb +14 -12
- data/lib/sendregning/client.rb +32 -24
- data/lib/sendregning/invoice.rb +20 -18
- data/lib/sendregning/invoice_parser.rb +14 -10
- data/lib/sendregning/invoice_serializer.rb +8 -6
- data/lib/sendregning/line.rb +7 -5
- data/lib/sendregning/line_serializer.rb +3 -1
- data/lib/sendregning/version.rb +4 -4
- data/lib/sendregning/xml_serializer.rb +9 -10
- data/sendregning.gemspec +14 -11
- metadata +32 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 8b771593610a6f4f488681d49b9779c8770dc347329f445ef53d3a376f8dd831
|
|
4
|
+
data.tar.gz: 14d3fe0461d33d1e0269b6c87deeee857bd6fe37a03165e3de5c971b6fa1b311
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bc21bc5404eec80df91cea1657fff4d3084f08ff6e34c38ab7adb72fbf48cdc53a1b3f1f0d634e1014bce7339202f48d0c8d66f709573f160ccb0cfcc5d259e6
|
|
7
|
+
data.tar.gz: 65159551c9c6a8d8c13e6ebf86e249f99a46377d0c39f9173e6d7a80ab85e74c989967bad29536acca096c8d42548acb8a4c79f84bb141f1221ac741415b70f5
|
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require: rubocop-rspec
|
|
2
|
+
|
|
3
|
+
inherit_from:
|
|
4
|
+
- .rubocop_todo.yml
|
|
5
|
+
|
|
6
|
+
AllCops:
|
|
7
|
+
NewCops: enable
|
|
8
|
+
|
|
9
|
+
Style/AsciiComments:
|
|
10
|
+
Enabled: false
|
|
11
|
+
|
|
12
|
+
Style/Documentation:
|
|
13
|
+
Enabled: false
|
|
14
|
+
|
|
15
|
+
Style/StringLiterals:
|
|
16
|
+
EnforcedStyle: double_quotes
|
|
17
|
+
|
|
18
|
+
Layout/LineLength:
|
|
19
|
+
AutoCorrect: true
|
|
20
|
+
Max: 80
|
|
21
|
+
|
|
22
|
+
Layout/MultilineOperationIndentation:
|
|
23
|
+
EnforcedStyle: aligned
|
data/.rubocop_todo.yml
ADDED
|
File without changes
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
sendregning (0.2.2)
|
|
5
|
+
builder (~> 3.1)
|
|
6
|
+
httmultiparty (~> 0.3)
|
|
7
|
+
httparty (~> 0.13)
|
|
8
|
+
|
|
9
|
+
GEM
|
|
10
|
+
remote: https://rubygems.org/
|
|
11
|
+
specs:
|
|
12
|
+
activesupport (6.0.3.1)
|
|
13
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
14
|
+
i18n (>= 0.7, < 2)
|
|
15
|
+
minitest (~> 5.1)
|
|
16
|
+
tzinfo (~> 1.1)
|
|
17
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
|
18
|
+
ast (2.4.0)
|
|
19
|
+
binding_of_caller (0.8.0)
|
|
20
|
+
debug_inspector (>= 0.0.1)
|
|
21
|
+
builder (3.2.4)
|
|
22
|
+
coderay (1.1.3)
|
|
23
|
+
concurrent-ruby (1.1.6)
|
|
24
|
+
debug_inspector (0.0.3)
|
|
25
|
+
httmultiparty (0.3.16)
|
|
26
|
+
httparty (>= 0.7.3)
|
|
27
|
+
mimemagic
|
|
28
|
+
multipart-post
|
|
29
|
+
httparty (0.18.0)
|
|
30
|
+
mime-types (~> 3.0)
|
|
31
|
+
multi_xml (>= 0.5.2)
|
|
32
|
+
i18n (1.8.2)
|
|
33
|
+
concurrent-ruby (~> 1.0)
|
|
34
|
+
method_source (1.0.0)
|
|
35
|
+
mime-types (3.3.1)
|
|
36
|
+
mime-types-data (~> 3.2015)
|
|
37
|
+
mime-types-data (3.2020.0512)
|
|
38
|
+
mimemagic (0.3.5)
|
|
39
|
+
minitest (5.14.1)
|
|
40
|
+
multi_xml (0.6.0)
|
|
41
|
+
multipart-post (2.1.1)
|
|
42
|
+
parallel (1.19.1)
|
|
43
|
+
parser (2.7.1.3)
|
|
44
|
+
ast (~> 2.4.0)
|
|
45
|
+
pry (0.13.1)
|
|
46
|
+
coderay (~> 1.1)
|
|
47
|
+
method_source (~> 1.0)
|
|
48
|
+
pry-stack_explorer (0.5.1)
|
|
49
|
+
binding_of_caller (~> 0.7)
|
|
50
|
+
pry (~> 0.13)
|
|
51
|
+
rack (2.2.2)
|
|
52
|
+
rainbow (3.0.0)
|
|
53
|
+
rake (13.0.1)
|
|
54
|
+
regexp_parser (1.7.0)
|
|
55
|
+
rexml (3.2.4)
|
|
56
|
+
rubocop (0.85.0)
|
|
57
|
+
parallel (~> 1.10)
|
|
58
|
+
parser (>= 2.7.0.1)
|
|
59
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
60
|
+
regexp_parser (>= 1.7)
|
|
61
|
+
rexml
|
|
62
|
+
rubocop-ast (>= 0.0.3)
|
|
63
|
+
ruby-progressbar (~> 1.7)
|
|
64
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
|
65
|
+
rubocop-ast (0.0.3)
|
|
66
|
+
parser (>= 2.7.0.1)
|
|
67
|
+
rubocop-rails (2.5.2)
|
|
68
|
+
activesupport
|
|
69
|
+
rack (>= 1.1)
|
|
70
|
+
rubocop (>= 0.72.0)
|
|
71
|
+
rubocop-rspec (1.39.0)
|
|
72
|
+
rubocop (>= 0.68.1)
|
|
73
|
+
ruby-progressbar (1.10.1)
|
|
74
|
+
thread_safe (0.3.6)
|
|
75
|
+
tzinfo (1.2.7)
|
|
76
|
+
thread_safe (~> 0.1)
|
|
77
|
+
unicode-display_width (1.7.0)
|
|
78
|
+
zeitwerk (2.3.0)
|
|
79
|
+
|
|
80
|
+
PLATFORMS
|
|
81
|
+
ruby
|
|
82
|
+
|
|
83
|
+
DEPENDENCIES
|
|
84
|
+
pry
|
|
85
|
+
pry-stack_explorer
|
|
86
|
+
rake
|
|
87
|
+
rubocop
|
|
88
|
+
rubocop-rails
|
|
89
|
+
rubocop-rspec
|
|
90
|
+
sendregning!
|
|
91
|
+
|
|
92
|
+
BUNDLED WITH
|
|
93
|
+
2.1.4
|
data/lib/sendregning.rb
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require
|
|
4
|
-
require
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "rubygems"
|
|
4
|
+
require "builder"
|
|
5
|
+
require "httparty"
|
|
6
|
+
require "httmultiparty"
|
|
5
7
|
|
|
6
8
|
dir = Pathname(__FILE__).dirname.expand_path
|
|
7
9
|
|
|
8
|
-
require dir +
|
|
9
|
-
require dir +
|
|
10
|
-
require dir +
|
|
11
|
-
require dir +
|
|
12
|
-
require dir +
|
|
13
|
-
require dir +
|
|
14
|
-
require dir +
|
|
15
|
-
require dir +
|
|
10
|
+
require dir + "sendregning/xml_serializer"
|
|
11
|
+
require dir + "sendregning/client"
|
|
12
|
+
require dir + "sendregning/invoice"
|
|
13
|
+
require dir + "sendregning/invoice_parser"
|
|
14
|
+
require dir + "sendregning/invoice_serializer"
|
|
15
|
+
require dir + "sendregning/line"
|
|
16
|
+
require dir + "sendregning/line_serializer"
|
|
17
|
+
require dir + "sendregning/version"
|
|
16
18
|
|
|
17
19
|
module Sendregning
|
|
18
20
|
end
|
data/lib/sendregning/client.rb
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
require "yaml"
|
|
4
4
|
|
|
5
|
+
module Sendregning
|
|
5
6
|
# Client for the SendRegning Web Services.
|
|
6
7
|
#
|
|
7
8
|
# Usage example:
|
|
@@ -11,69 +12,76 @@ module Sendregning
|
|
|
11
12
|
class Client
|
|
12
13
|
include HTTMultiParty
|
|
13
14
|
|
|
14
|
-
base_uri
|
|
15
|
+
base_uri "https://www.sendregning.no"
|
|
15
16
|
format :xml
|
|
16
17
|
|
|
17
|
-
def initialize(username, password, options={})
|
|
18
|
-
@auth = {:
|
|
18
|
+
def initialize(username, password, options = {})
|
|
19
|
+
@auth = { username: username, password: password }
|
|
19
20
|
@test = true if options[:test]
|
|
20
21
|
end
|
|
21
22
|
|
|
22
23
|
# Performs a GET request
|
|
23
|
-
def get(query={})
|
|
24
|
-
self.class.get(
|
|
24
|
+
def get(query = {})
|
|
25
|
+
self.class.get("/ws/butler.do", query_options(query))
|
|
25
26
|
end
|
|
26
27
|
|
|
27
28
|
# Performs a POST request
|
|
28
|
-
def post(query=nil)
|
|
29
|
-
self.class.post(
|
|
29
|
+
def post(query = nil)
|
|
30
|
+
self.class.post("/ws/butler.do", query_options(query))
|
|
30
31
|
end
|
|
31
32
|
|
|
32
|
-
def post_xml(xml, query={})
|
|
33
|
+
def post_xml(xml, query = {})
|
|
33
34
|
query[:xml] = xml_file(xml)
|
|
34
|
-
self.class.post(
|
|
35
|
+
self.class.post("/ws/butler.do",
|
|
36
|
+
query_options(query).merge(detect_mime_type: true))
|
|
35
37
|
end
|
|
36
38
|
|
|
37
39
|
# Returns a list of recipients
|
|
38
40
|
def recipients
|
|
39
|
-
response = get(:
|
|
40
|
-
response[
|
|
41
|
+
response = get(action: "select", type: "recipient")
|
|
42
|
+
response["recipients"]["recipient"]
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
# Instances a new invoice
|
|
44
|
-
def new_invoice(attributes={})
|
|
45
|
-
Sendregning::Invoice.new(attributes.merge({:
|
|
46
|
+
def new_invoice(attributes = {})
|
|
47
|
+
Sendregning::Invoice.new(attributes.merge({ client: self }))
|
|
46
48
|
end
|
|
47
49
|
|
|
48
50
|
# Sends an invoice
|
|
49
51
|
def send_invoice(invoice)
|
|
50
|
-
response = post_xml(invoice.to_xml,
|
|
52
|
+
response = post_xml(invoice.to_xml,
|
|
53
|
+
{ action: "send", type: "invoice" })
|
|
51
54
|
InvoiceParser.parse(response, invoice)
|
|
52
55
|
end
|
|
53
56
|
|
|
54
57
|
# Finds an invoice by invoice number
|
|
55
58
|
def find_invoice(invoice_id)
|
|
56
|
-
builder = Builder::XmlMarkup.new(:
|
|
57
|
-
builder.instruct! :xml, :
|
|
59
|
+
builder = Builder::XmlMarkup.new(indent: 2)
|
|
60
|
+
builder.instruct! :xml, version: "1.0", encoding: "UTF-8"
|
|
58
61
|
request_xml = builder.select do |select|
|
|
59
62
|
select.invoiceNumbers do |numbers|
|
|
60
63
|
numbers.invoiceNumber invoice_id
|
|
61
64
|
end
|
|
62
65
|
end
|
|
63
|
-
response = post_xml(request_xml,
|
|
64
|
-
|
|
66
|
+
response = post_xml(request_xml,
|
|
67
|
+
{ action: "select", type: "invoice" })
|
|
68
|
+
begin
|
|
69
|
+
InvoiceParser.parse(response)
|
|
70
|
+
rescue StandardError
|
|
71
|
+
nil
|
|
72
|
+
end
|
|
65
73
|
end
|
|
66
74
|
|
|
67
75
|
protected
|
|
68
76
|
|
|
69
77
|
# Prepares options for a request
|
|
70
|
-
def query_options(query={})
|
|
71
|
-
query[:test] =
|
|
72
|
-
{:
|
|
78
|
+
def query_options(query = {})
|
|
79
|
+
query[:test] = "true" if @test
|
|
80
|
+
{ basic_auth: @auth, query: query }
|
|
73
81
|
end
|
|
74
82
|
|
|
75
83
|
def xml_file(xml)
|
|
76
|
-
UploadIO.new(StringIO.new(xml),
|
|
84
|
+
UploadIO.new(StringIO.new(xml), "text/xml", "request.xml")
|
|
77
85
|
end
|
|
78
86
|
end
|
|
79
87
|
end
|
data/lib/sendregning/invoice.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
module Sendregning
|
|
3
4
|
class Invoice
|
|
4
5
|
OPTIONAL_ATTRIBUTES = [
|
|
5
6
|
# Request
|
|
@@ -10,29 +11,29 @@ module Sendregning
|
|
|
10
11
|
|
|
11
12
|
# Response
|
|
12
13
|
:tax, :dueDate, :dunningFee, :invoiceNo, :total, :accountNo, :orgNrSuffix, :kid, :orgNo, :interestRate, :state
|
|
13
|
-
]
|
|
14
|
+
].freeze
|
|
14
15
|
|
|
15
|
-
SHIPMENT_ATTRIBUTES = [
|
|
16
|
-
|
|
17
|
-
]
|
|
16
|
+
SHIPMENT_ATTRIBUTES = %i[
|
|
17
|
+
shipment emailaddresses copyaddresses
|
|
18
|
+
].freeze
|
|
18
19
|
|
|
19
20
|
SHIPMENT_MODES = {
|
|
20
|
-
:
|
|
21
|
-
:
|
|
22
|
-
:
|
|
23
|
-
}
|
|
21
|
+
paper: "PAPER",
|
|
22
|
+
email: "EMAIL",
|
|
23
|
+
paper_and_email: "PAPER_AND_EMAIL"
|
|
24
|
+
}.freeze
|
|
24
25
|
|
|
25
26
|
attr_accessor :client
|
|
26
27
|
attr_accessor :name, :zip, :city
|
|
27
28
|
attr_accessor :optional, :shipment
|
|
28
29
|
attr_accessor :lines
|
|
29
30
|
|
|
30
|
-
def initialize(attributes={})
|
|
31
|
-
|
|
31
|
+
def initialize(attributes = {})
|
|
32
|
+
update(attributes)
|
|
32
33
|
@lines = []
|
|
33
34
|
end
|
|
34
35
|
|
|
35
|
-
def update(attributes={})
|
|
36
|
+
def update(attributes = {})
|
|
36
37
|
@client = attributes[:client] if attributes[:client]
|
|
37
38
|
@name = attributes[:name] if attributes[:name]
|
|
38
39
|
@zip = attributes[:zip] if attributes[:zip]
|
|
@@ -42,35 +43,36 @@ module Sendregning
|
|
|
42
43
|
end
|
|
43
44
|
|
|
44
45
|
def add_line(line)
|
|
45
|
-
line = Sendregning::Line.new(line) unless line.
|
|
46
|
+
line = Sendregning::Line.new(line) unless line.is_a?(Sendregning::Line)
|
|
46
47
|
@lines << line
|
|
47
48
|
line
|
|
48
49
|
end
|
|
49
50
|
|
|
50
51
|
# Sends an invoice
|
|
51
52
|
def send!
|
|
52
|
-
|
|
53
|
+
client.send_invoice(self)
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
def paid?
|
|
56
|
-
state ==
|
|
57
|
+
state == "paid"
|
|
57
58
|
end
|
|
58
59
|
|
|
59
60
|
def shipment_mode
|
|
60
61
|
mode = (@shipment[:shipment] || :paper).to_sym
|
|
61
|
-
raise
|
|
62
|
+
raise "Invalid shipment mode!" unless SHIPMENT_MODES.keys.include?(mode)
|
|
63
|
+
|
|
62
64
|
SHIPMENT_MODES[mode]
|
|
63
65
|
end
|
|
64
66
|
|
|
65
67
|
# Renders invoice to XML
|
|
66
|
-
def to_xml(options={})
|
|
68
|
+
def to_xml(options = {})
|
|
67
69
|
InvoiceSerializer.build(self, options)
|
|
68
70
|
end
|
|
69
71
|
|
|
70
72
|
protected
|
|
71
73
|
|
|
72
74
|
def filter_attributes(attributes, filter)
|
|
73
|
-
attributes.dup.delete_if { |k,
|
|
75
|
+
attributes.dup.delete_if { |k, _v| !filter.include?(k.to_sym) }
|
|
74
76
|
end
|
|
75
77
|
|
|
76
78
|
def optional=(attributes)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Sendregning
|
|
2
4
|
class InvoiceParser
|
|
3
5
|
class << self
|
|
4
|
-
def parse(response, invoice=Sendregning::Invoice.new)
|
|
5
|
-
|
|
6
|
+
def parse(response, invoice = Sendregning::Invoice.new)
|
|
7
|
+
new(response, invoice).parse
|
|
6
8
|
end
|
|
7
9
|
end
|
|
8
10
|
|
|
@@ -12,21 +14,23 @@ module Sendregning
|
|
|
12
14
|
end
|
|
13
15
|
|
|
14
16
|
def parse
|
|
15
|
-
attributes = @response[
|
|
17
|
+
attributes = @response["invoices"]["invoice"]
|
|
16
18
|
|
|
17
19
|
# Flatten optional and shipment attributes
|
|
18
|
-
%w
|
|
19
|
-
if attributes.
|
|
20
|
+
%w[optional shipment].each do |section|
|
|
21
|
+
if attributes.key?(section)
|
|
20
22
|
attributes = attributes.merge(attributes[section])
|
|
21
23
|
attributes.delete(section)
|
|
22
24
|
end
|
|
23
25
|
end
|
|
24
26
|
|
|
25
|
-
lines = attributes[
|
|
26
|
-
attributes.delete(
|
|
27
|
+
lines = attributes["lines"]["line"]
|
|
28
|
+
attributes.delete("lines")
|
|
27
29
|
|
|
28
30
|
@invoice.update(stringify_hash(attributes))
|
|
29
|
-
@invoice.lines = lines.map
|
|
31
|
+
@invoice.lines = lines.map do |l|
|
|
32
|
+
Sendregning::Line.new(stringify_hash(l))
|
|
33
|
+
end
|
|
30
34
|
@invoice
|
|
31
35
|
end
|
|
32
36
|
|
|
@@ -35,9 +39,9 @@ module Sendregning
|
|
|
35
39
|
def stringify_hash(hash)
|
|
36
40
|
new_hash = {}
|
|
37
41
|
hash.each do |key, value|
|
|
38
|
-
new_hash[key] =
|
|
42
|
+
new_hash[key] = value.to_s
|
|
39
43
|
end
|
|
40
44
|
new_hash
|
|
41
45
|
end
|
|
42
46
|
end
|
|
43
|
-
end
|
|
47
|
+
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Sendregning
|
|
2
4
|
class InvoiceSerializer < Sendregning::XmlSerializer
|
|
3
5
|
def build
|
|
@@ -29,7 +31,7 @@ module Sendregning
|
|
|
29
31
|
invoice.optional do |optional|
|
|
30
32
|
item.optional.each do |key, value|
|
|
31
33
|
key = key.to_sym
|
|
32
|
-
if value.
|
|
34
|
+
if value.is_a?(Date) || value.is_a?(Time)
|
|
33
35
|
value = value.strftime("%d.%m.%y")
|
|
34
36
|
end
|
|
35
37
|
optional.tag! key, value
|
|
@@ -44,14 +46,14 @@ module Sendregning
|
|
|
44
46
|
shipment.text! item.shipment_mode
|
|
45
47
|
item.shipment.each do |key, values|
|
|
46
48
|
key = key.to_sym
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
next if key == :shipment
|
|
50
|
+
|
|
51
|
+
shipment.tag! key do |emails|
|
|
52
|
+
Array(values).each { |v| emails.email v }
|
|
51
53
|
end
|
|
52
54
|
end
|
|
53
55
|
end
|
|
54
56
|
end
|
|
55
57
|
end
|
|
56
58
|
end
|
|
57
|
-
end
|
|
59
|
+
end
|
data/lib/sendregning/line.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Sendregning
|
|
2
4
|
class Line
|
|
3
5
|
# Quantity, as decimal. Example: '7,5'
|
|
@@ -20,21 +22,21 @@ module Sendregning
|
|
|
20
22
|
|
|
21
23
|
attr_accessor :itemNo, :lineTaxAmount, :lineTotal
|
|
22
24
|
|
|
23
|
-
def initialize(new_attributes={})
|
|
25
|
+
def initialize(new_attributes = {})
|
|
24
26
|
self.attributes = new_attributes
|
|
25
27
|
end
|
|
26
28
|
|
|
27
29
|
# Renders line to XML
|
|
28
|
-
def to_xml(options={})
|
|
30
|
+
def to_xml(options = {})
|
|
29
31
|
LineSerializer.build(self, options)
|
|
30
32
|
end
|
|
31
33
|
|
|
32
34
|
protected
|
|
33
35
|
|
|
34
|
-
def attributes=(attributes={})
|
|
36
|
+
def attributes=(attributes = {})
|
|
35
37
|
attributes.each do |key, value|
|
|
36
|
-
set_method = "#{key
|
|
37
|
-
|
|
38
|
+
set_method = "#{key}=".to_sym
|
|
39
|
+
send(set_method, value) if respond_to?(set_method)
|
|
38
40
|
end
|
|
39
41
|
attributes
|
|
40
42
|
end
|
data/lib/sendregning/version.rb
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Sendregning
|
|
2
4
|
class XmlSerializer
|
|
3
5
|
class << self
|
|
4
|
-
def build(item, options={})
|
|
6
|
+
def build(item, options = {})
|
|
5
7
|
builder = options[:builder] || xml_builder
|
|
6
|
-
|
|
8
|
+
new(item, builder).build
|
|
7
9
|
end
|
|
8
10
|
|
|
9
11
|
protected
|
|
@@ -21,17 +23,14 @@ module Sendregning
|
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
def build
|
|
24
|
-
raise
|
|
26
|
+
raise("XmlSerializer is an abstract class, subclass and overwrite " \
|
|
27
|
+
"the build method")
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
protected
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
@builder
|
|
31
|
-
end
|
|
32
|
+
attr_reader :builder
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
@item
|
|
35
|
-
end
|
|
34
|
+
attr_reader :item
|
|
36
35
|
end
|
|
37
|
-
end
|
|
36
|
+
end
|
data/sendregning.gemspec
CHANGED
|
@@ -1,26 +1,29 @@
|
|
|
1
|
-
#
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
$LOAD_PATH.push File.expand_path("lib", __dir__)
|
|
4
4
|
require "sendregning/version"
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
|
-
s.name =
|
|
7
|
+
s.name = "sendregning"
|
|
8
8
|
s.version = Sendregning::VERSION
|
|
9
|
-
s.date = '2014-03-05'
|
|
10
9
|
s.summary = "Ruby client for the SendRegning Web Service"
|
|
11
10
|
s.description = "Ruby client for the SendRegning Web Service"
|
|
12
11
|
s.authors = ["Inge Jørgensen"]
|
|
13
|
-
s.email =
|
|
14
|
-
s.homepage =
|
|
15
|
-
s.license =
|
|
12
|
+
s.email = "inge@elektronaut.no"
|
|
13
|
+
s.homepage = "https://github.com/elektronaut/sendregning"
|
|
14
|
+
s.license = "MIT"
|
|
16
15
|
s.required_ruby_version = Gem::Requirement.new(">= 1.9.3")
|
|
17
16
|
|
|
18
17
|
s.files = `git ls-files`.split("\n")
|
|
19
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
20
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map
|
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map do |f|
|
|
20
|
+
File.basename(f)
|
|
21
|
+
end
|
|
21
22
|
s.require_paths = ["lib"]
|
|
22
23
|
|
|
23
|
-
s.add_runtime_dependency
|
|
24
|
-
s.add_runtime_dependency
|
|
25
|
-
s.add_runtime_dependency
|
|
24
|
+
s.add_runtime_dependency "builder", "~> 3.1"
|
|
25
|
+
s.add_runtime_dependency "httmultiparty", "~> 0.3"
|
|
26
|
+
s.add_runtime_dependency "httparty", "~> 0.13"
|
|
27
|
+
|
|
28
|
+
s.add_development_dependency "rake"
|
|
26
29
|
end
|
metadata
CHANGED
|
@@ -1,64 +1,82 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sendregning
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Inge Jørgensen
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-06-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: builder
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: '3.1'
|
|
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:
|
|
26
|
+
version: '3.1'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: httmultiparty
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '3
|
|
33
|
+
version: '0.3'
|
|
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: '3
|
|
40
|
+
version: '0.3'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: httparty
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0.
|
|
47
|
+
version: '0.13'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0.
|
|
54
|
+
version: '0.13'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rake
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
55
69
|
description: Ruby client for the SendRegning Web Service
|
|
56
|
-
email: inge@
|
|
70
|
+
email: inge@elektronaut.no
|
|
57
71
|
executables: []
|
|
58
72
|
extensions: []
|
|
59
73
|
extra_rdoc_files: []
|
|
60
74
|
files:
|
|
61
75
|
- ".gitignore"
|
|
76
|
+
- ".rubocop.yml"
|
|
77
|
+
- ".rubocop_todo.yml"
|
|
78
|
+
- Gemfile
|
|
79
|
+
- Gemfile.lock
|
|
62
80
|
- LICENSE
|
|
63
81
|
- README.md
|
|
64
82
|
- lib/sendregning.rb
|
|
@@ -71,7 +89,7 @@ files:
|
|
|
71
89
|
- lib/sendregning/version.rb
|
|
72
90
|
- lib/sendregning/xml_serializer.rb
|
|
73
91
|
- sendregning.gemspec
|
|
74
|
-
homepage:
|
|
92
|
+
homepage: https://github.com/elektronaut/sendregning
|
|
75
93
|
licenses:
|
|
76
94
|
- MIT
|
|
77
95
|
metadata: {}
|
|
@@ -90,10 +108,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
90
108
|
- !ruby/object:Gem::Version
|
|
91
109
|
version: '0'
|
|
92
110
|
requirements: []
|
|
93
|
-
|
|
94
|
-
rubygems_version: 2.4.1
|
|
111
|
+
rubygems_version: 3.1.2
|
|
95
112
|
signing_key:
|
|
96
113
|
specification_version: 4
|
|
97
114
|
summary: Ruby client for the SendRegning Web Service
|
|
98
115
|
test_files: []
|
|
99
|
-
has_rdoc:
|