Skip to content

Commit c2614e3

Browse files
author
Timo Sand
committed
Changed ElementBase from Superclass to mixin
1 parent 94330c6 commit c2614e3

File tree

4 files changed

+46
-23
lines changed

4 files changed

+46
-23
lines changed

lib/netvisor/element_base.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
class ElementBase
2-
def initialize(args = {})
3-
args.each_pair do |key, val|
4-
self.send("#{key}=", val) if ElementBase.method_defined? key
1+
module ElementBase
2+
def self.included(base)
3+
base.class_exec do
4+
def initialize(args = {})
5+
args.each_pair do |key, val|
6+
self.send("#{key}=", val) if ElementBase.method_defined? key
7+
end
8+
end
59
end
610
end
711
end

lib/netvisor/sales_invoice.rb

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,57 +10,65 @@ class SalesInvoice
1010

1111
tag self.name.split('::').last
1212

13-
class InvoiceDate < ElementBase
13+
class InvoiceDate
1414
include HappyMapper
15+
include ElementBase
1516

1617
attribute :format, String
1718
content :value, Date
1819
end
1920

20-
class InvoiceAmount < ElementBase
21+
class InvoiceAmount
2122
include HappyMapper
23+
include ElementBase
2224

2325
attribute :iso4217currencycode, String
2426
attribute :currencyrate, Float
2527
content :amount, Float
2628
end
2729

28-
class SellerId < ElementBase
30+
class SellerId
2931
include HappyMapper
32+
include ElementBase
3033

3134
attribute :type, String
3235
content :id, String
3336
end
3437

35-
class InvoiceStatus < ElementBase
38+
class InvoiceStatus
39+
include ElementBase
3640
include HappyMapper
3741

3842
attribute :type, String
3943
content :status, String
4044
end
4145

42-
class CustomerId < ElementBase
46+
class CustomerId
47+
include ElementBase
4348
include HappyMapper
4449

4550
attribute :type, String
4651
content :id, String
4752
end
4853

49-
class CountryCode < ElementBase
54+
class CountryCode
55+
include ElementBase
5056
include HappyMapper
5157

5258
attribute :type, String
5359
content :country_code, String
5460
end
5561

56-
class CashDiscount < ElementBase
62+
class CashDiscount
63+
include ElementBase
5764
include HappyMapper
5865

5966
attribute :type, String
6067
content :discount, Integer
6168
end
6269

63-
class DirectDebitLink < ElementBase
70+
class DirectDebitLink
71+
include ElementBase
6472
include HappyMapper
6573

6674
attribute :mode, String
@@ -70,12 +78,14 @@ class DirectDebitLink < ElementBase
7078
class InvoiceVoucherLines
7179
include HappyMapper
7280

73-
class VoucherLine < ElementBase
81+
class VoucherLine
82+
include ElementBase
7483
include HappyMapper
7584

7685
tag 'VoucherLine'
7786

78-
class LineSum < ElementBase
87+
class LineSum
88+
include ElementBase
7989
include HappyMapper
8090

8191
attribute :type, String
@@ -97,7 +107,8 @@ class LineSum < ElementBase
97107
class SalesInvoiceAttachments
98108
include HappyMapper
99109

100-
class InvoiceAttachment < ElementBase
110+
class InvoiceAttachment
111+
include ElementBase
101112
include HappyMapper
102113

103114
tag self.name.split('::').last
@@ -116,10 +127,12 @@ class CustomTags
116127
include HappyMapper
117128

118129

119-
class CustomTag < ElementBase
130+
class CustomTag
131+
include ElementBase
120132
include HappyMapper
121133

122-
class TagValue < ElementBase
134+
class TagValue
135+
include ElementBase
123136
include HappyMapper
124137

125138
attribute :datatype, String
@@ -143,14 +156,16 @@ class SalesInvoiceLines
143156

144157
end
145158

146-
class ChannelFormat < ElementBase
159+
class ChannelFormat
160+
include ElementBase
147161
include HappyMapper
148162

149163
attribute :type, String
150164
content :format, String
151165
end
152166

153-
class SecondName < ElementBase
167+
class SecondName
168+
include ElementBase
154169
include HappyMapper
155170

156171
attribute :type, String
@@ -160,7 +175,8 @@ class SecondName < ElementBase
160175
class InvoiceAccrual
161176
include HappyMapper
162177

163-
class AccrualVoucherEntry < ElementBase
178+
class AccrualVoucherEntry
179+
include ElementBase
164180
include HappyMapper
165181

166182
element :month, Integer

lib/netvisor/sales_invoice_product_line.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@ module Netvisor
77
class SalesInvoiceProductLine
88
include HappyMapper
99

10-
class ProductId < ElementBase
10+
class ProductId
11+
include ElementBase
1112
include HappyMapper
1213

1314
attribute :type, String
1415
content :id, String
1516
end
16-
class UnitPrice < ElementBase
17+
class UnitPrice
18+
include ElementBase
1719
include HappyMapper
1820

1921
attribute :type, String

lib/netvisor/vat_percentage.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
require 'netvisor/element_base'
33

44
module Netvisor
5-
class VatPercentage < ElementBase
5+
class VatPercentage
6+
include ElementBase
67
include HappyMapper
78

89
attribute :vatcode, String

0 commit comments

Comments
 (0)