baldr 0.3.5 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/baldr/builder.rb +20 -28
- data/lib/baldr/envelope.rb +4 -0
- data/lib/baldr/segment.rb +5 -0
- data/lib/baldr/version.rb +1 -1
- metadata +1 -1
data/lib/baldr/builder.rb
CHANGED
@@ -5,15 +5,12 @@ class Baldr::Builder
|
|
5
5
|
def initialize(params = {})
|
6
6
|
@envelope = Baldr::Envelope.new
|
7
7
|
@transactions = []
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
@interchange_control_number = params[:interchange_control_number]
|
14
|
-
@date_time = params[:date_time] || DateTime.now
|
8
|
+
|
9
|
+
Baldr::Envelope.helpers.each do |f|
|
10
|
+
@envelope.send("#{f}=", params[f]) if params.has_key?(f)
|
11
|
+
end
|
12
|
+
|
15
13
|
@functional_groups_control_numbers = params[:functional_groups_control_numbers] || {}
|
16
|
-
@acknowledgment_requested = params[:acknowledgment_requested] || '0'
|
17
14
|
end
|
18
15
|
|
19
16
|
def ST(&block)
|
@@ -30,39 +27,34 @@ class Baldr::Builder
|
|
30
27
|
end
|
31
28
|
|
32
29
|
def prepare!
|
33
|
-
@envelope.
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
@envelope.
|
40
|
-
|
30
|
+
@envelope.func_group_loop.segments.each do |group|
|
31
|
+
group.transactions.each do |t|
|
32
|
+
t.prepare!
|
33
|
+
end
|
34
|
+
group.prepare!
|
35
|
+
end
|
36
|
+
@envelope.prepare!
|
37
|
+
end
|
41
38
|
|
39
|
+
def build_functional_groups
|
42
40
|
functional_groups = @transactions.group_by { |t| t.functional_group(version) }
|
43
41
|
functional_groups.each do |group_id, transactions|
|
44
42
|
group = Baldr::FunctionalGroup.new
|
45
43
|
group.functional_identifier_code = group_id
|
46
|
-
group.application_senders_code = @sender_id
|
47
|
-
group.application_receivers_code = @receiver_id
|
48
|
-
group.version_release_industry_code = "#{@standard_version_number}0"
|
49
|
-
group.date_time = @date_time
|
44
|
+
group.application_senders_code = @envelope.sender_id
|
45
|
+
group.application_receivers_code = @envelope.receiver_id
|
46
|
+
group.version_release_industry_code = "#{@envelope.standard_version_number}0"
|
47
|
+
group.date_time = @envelope.date_time
|
50
48
|
group.group_control_number = @functional_groups_control_numbers[group_id]
|
51
49
|
@envelope.add group
|
52
|
-
transactions.each
|
53
|
-
group.add t
|
54
|
-
t.prepare!
|
55
|
-
end
|
56
|
-
group.prepare!
|
50
|
+
transactions.each { |t| group.add t }
|
57
51
|
end
|
58
|
-
|
59
|
-
@envelope.prepare!
|
60
52
|
end
|
61
53
|
|
62
54
|
protected
|
63
55
|
|
64
56
|
def version
|
65
|
-
@version ||= Baldr::Grammar.for_standard_version(@standard_version_number)
|
57
|
+
@version ||= Baldr::Grammar.for_standard_version(@envelope.standard_version_number)
|
66
58
|
end
|
67
59
|
|
68
60
|
end
|
data/lib/baldr/envelope.rb
CHANGED
data/lib/baldr/segment.rb
CHANGED
@@ -3,6 +3,7 @@ class Baldr::Segment
|
|
3
3
|
attr_accessor :id, :children, :elements
|
4
4
|
|
5
5
|
def self.helpers_for_elements(hash)
|
6
|
+
@helpers = hash.values
|
6
7
|
hash.each do |element, method|
|
7
8
|
self.class_eval <<-RUBY
|
8
9
|
def #{method}
|
@@ -16,6 +17,10 @@ class Baldr::Segment
|
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
20
|
+
def self.helpers
|
21
|
+
@helpers || []
|
22
|
+
end
|
23
|
+
|
19
24
|
def initialize(id)
|
20
25
|
@elements = []
|
21
26
|
@children = []
|
data/lib/baldr/version.rb
CHANGED