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 CHANGED
@@ -5,15 +5,12 @@ class Baldr::Builder
5
5
  def initialize(params = {})
6
6
  @envelope = Baldr::Envelope.new
7
7
  @transactions = []
8
- @sender_id = params[:sender_id]
9
- @receiver_id = params[:receiver_id]
10
- @sender_id_qualifier = params[:sender_id_qualifier]
11
- @receiver_id_qualifier = params[:receiver_id_qualifier]
12
- @standard_version_number = params[:standard_version_number] || '00401'
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.sender_id = @sender_id if @sender_id
34
- @envelope.receiver_id = @receiver_id if @receiver_id
35
- @envelope.sender_id_qualifier = @sender_id_qualifier if @sender_id_qualifier
36
- @envelope.receiver_id_qualifier = @receiver_id_qualifier if @receiver_id_qualifier
37
- @envelope.standard_version_number = @standard_version_number if @standard_version_number
38
- @envelope.interchange_control_number = @interchange_control_number if @interchange_control_number
39
- @envelope.date_time = @date_time
40
- @envelope.acknowledgment_requested = @acknowledgment_requested
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 do |t|
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
@@ -19,6 +19,10 @@ class Baldr::Envelope < Baldr::Segment
19
19
  'ISA16' => :component_separator,
20
20
  )
21
21
 
22
+ def self.helpers
23
+ @helpers + [:receiver_id, :sender_id, :security_info, :authorization_info, :date_time]
24
+ end
25
+
22
26
  def initialize(id = 'ISA')
23
27
  super(id)
24
28
 
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
@@ -1,3 +1,3 @@
1
1
  module Baldr
2
- VERSION = '0.3.5'
2
+ VERSION = '0.3.6'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: baldr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: