tufy 0.0.5 → 0.0.6

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: a2c513c2ac18635923ef0f3a3358fc3c71a5d031
4
- data.tar.gz: 125732ff13a791d9321e66b9357aa74d422b8115
3
+ metadata.gz: 70647cdbae7d81d058c2ff8b915ca8ab4ead7080
4
+ data.tar.gz: 4efb1cd799d6c62e3e32fe3e09fe9c01546a0ee1
5
5
  SHA512:
6
- metadata.gz: 6b02f1aca4301feb26942f1cbab2cefa0771be9c0cbe893964928fb45d4c2f34216997d64ffcdcf1af478f5096c2bffb0ec9ddf9e6c361c33508476193b546bb
7
- data.tar.gz: 55d87577c9a2a1fb7d50a0ec1cc98559dba93d5ffda9f1794e6582790a27aac60ed6a04d2dbf09e8d0b5de878da772bbe9d3d3d22f1872b5c011b0794c0ab132
6
+ metadata.gz: 34cf815ab6b5f162dbce26d3fdc4832df81dc2cc31eb5da0b6a265f712095cfb1fae8d64f4cf2b85d19be4056163416a5aeb05e592fea843b178ca067f919390
7
+ data.tar.gz: 36b3c627366498c20c1c91ab7e2cc5d32718ce810c6769d2a397c5f34e09b28a86691d64bfc1a8be66cc6faf4526f64542081b391f22d9bf46f2ccef8a1fe38b
@@ -1,4 +1,10 @@
1
- # v0.05
1
+ # v0.0.6
2
+
3
+ - Added Tufy.transform_raw_data_array and refactor Tufy.transform
4
+ - Renamed Tufy::BuildAccountSegment.tu_past_due_code to ::past_due_code
5
+ - Use Unix timestamp for the Member Reference Number in the Header Segment
6
+
7
+ # v0.0.5
2
8
 
3
9
  - Create method to return TU past due codes instead of using constants
4
10
 
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Gem Version](https://badge.fury.io/rb/tufy.png)](https://badge.fury.io/rb/tufy)
2
+
1
3
  # Tufy
2
4
 
3
5
  "Pronounced as T-U-fy"
@@ -13,15 +15,20 @@ $ gem install tufy
13
15
  ```
14
16
 
15
17
  ### Usage
18
+ #### 1. Tufy.transform_raw_data_array(header_data, raw_data_array)
19
+
16
20
 
17
21
  ```ruby
18
- transform_data_result =
19
- Tufy.transform(
22
+ transform_raw_data_array_result =
23
+ Tufy.transform_raw_data_array(
24
+ {
25
+ # for the header segment
26
+ member_reference_number: member_reference_number,
27
+ processor_name: processor_name,
28
+ user_id: user_id,
29
+ },
30
+ [
20
31
  {
21
- # for the header segment
22
- member_reference_number: member_reference_number,
23
- processor_name: processor_name,
24
- user_id: user_id,
25
32
  # for the name segment
26
33
  first_name: first_name,
27
34
  last_name: last_name,
@@ -66,13 +73,64 @@ transform_data_result =
66
73
  legal_action: legal_action,
67
74
  partial_payment: partial_payment,
68
75
  fresh_cash_advance: fresh_cash_advance,
69
- )
76
+ },
77
+ ]
78
+ )
70
79
  ```
71
80
 
72
- Get the transformed data
81
+ #### 2. Tufy.transform_raw_data(raw_data)
82
+
73
83
 
74
84
  ```ruby
75
- transformed_data_result[:transformed_data]
85
+ transform_raw_data_result =
86
+ Tufy.transform_raw_data(
87
+ {
88
+ # for the name segment
89
+ first_name: first_name,
90
+ last_name: last_name,
91
+ civil_status: civil_status,
92
+ date_of_birth: date_of_birth,
93
+ gender: gender,
94
+ ac_holder_type: ac_holder_type,
95
+ # for the id segment
96
+ id_number: id_number,
97
+ id_type: id_type,
98
+ # for the address segment
99
+ address_line_1: address_line_1,
100
+ address_line_2: address_line_2,
101
+ address_type: address_type,
102
+ # for contact number segment
103
+ contact_number: contact_number,
104
+ contact_number_format: contact_number_format,
105
+ # for email address segment
106
+ email_address: email_address,
107
+ # for account segment
108
+ account_number: account_number,
109
+ restructured_account_number: restructured_account_number,
110
+ account_status: account_status,
111
+ account_type: account_type,
112
+ currency_code: currency_code,
113
+ opened_date: opened_date,
114
+ payment_amount: payment_amount,
115
+ closed_date: closed_date,
116
+ credit_limit_or_loan_amount: credit_limit_or_loan_amount,
117
+ shared_by: shared_by,
118
+ outstanding_balance: outstanding_balance,
119
+ interest_and_fees: interest_and_fees,
120
+ unbilled_balance: unbilled_balance,
121
+ cash_advance_balance: cash_advance_balance,
122
+ number_of_days_past_due: number_of_days_past_due,
123
+ past_due_amount: past_due_amount,
124
+ installment_amount: installment_amount,
125
+ number_of_installments: number_of_installments,
126
+ payment_frequency: payment_frequency,
127
+ expiry_date: expiry_date,
128
+ consumer_or_commercial: consumer_or_commercial,
129
+ legal_action: legal_action,
130
+ partial_payment: partial_payment,
131
+ fresh_cash_advance: fresh_cash_advance,
132
+ }
133
+ )
76
134
  ```
77
135
 
78
136
  ### Supported Data
@@ -12,10 +12,22 @@ require "tufy/build_contact_number_segment"
12
12
  require "tufy/build_email_address_segment"
13
13
  require "tufy/build_account_segment"
14
14
  require "tufy/build_end_of_subject_segment"
15
- require "tufy/transform"
15
+ require "tufy/build_records"
16
+ require "tufy/build_record"
17
+ require "tufy/transform_raw_data"
18
+ require "tufy/transform_raw_data_array"
19
+
20
+
16
21
 
17
22
  module Tufy
18
- def self.transform(raw_data)
19
- Transform.execute(raw_data: raw_data)
23
+ def self.transform_raw_data(raw_data)
24
+ TransformRawData.execute(raw_data: raw_data)
25
+ end
26
+
27
+ def self.transform_raw_data_array(header_data, raw_data_array)
28
+ TransformRawDataArray.execute({
29
+ header_data: header_data,
30
+ raw_data_array: raw_data_array
31
+ })
20
32
  end
21
33
  end
@@ -36,7 +36,7 @@ module Tufy
36
36
  ctx.transformed_data = ctx.transformed_data + transform(ctx).upcase
37
37
  end
38
38
 
39
- def self.tu_past_due_code(days_past_due)
39
+ def self.past_due_code(days_past_due)
40
40
  case days_past_due
41
41
  when 0
42
42
  0
@@ -1,16 +1,15 @@
1
1
  module Tufy
2
2
  class BuildHeaderSegment < BuildSegment
3
- expects :raw_data
3
+ expects :header_data
4
4
  promises :transformed_data
5
5
 
6
6
  REQUIRED_KEYS = [
7
- :member_reference_number,
8
7
  :processor_name,
9
8
  :user_id
10
9
  ]
11
10
 
12
11
  executed do |ctx|
13
- validate_presence_of_required_keys(ctx.raw_data, REQUIRED_KEYS)
12
+ validate_presence_of_required_keys(ctx.header_data, REQUIRED_KEYS)
14
13
  ctx.transformed_data = ctx.transformed_data + transform(ctx).upcase
15
14
  end
16
15
 
@@ -19,9 +18,9 @@ module Tufy
19
18
  def self.transform(ctx)
20
19
  Constants::SEGMENT_TAG + # Segment Tag (Required)
21
20
  Constants::TUDF_VERSION + # Version Tag (Required)
22
- "#{FormatStrings::F25TS % ctx.raw_data[:member_reference_number]}" + # Member Reference Number (Required)
23
- "#{FormatStrings::F26TS % ctx.raw_data[:processor_name].upcase}" + # Member Processor Name (Required)
24
- "#{FormatStrings::F10TS % ctx.raw_data[:user_id].upcase}" + # User ID (Required)
21
+ "#{FormatStrings::F25TS % Time.now.to_i.to_s}" + # Member Reference Number (Required)
22
+ "#{FormatStrings::F26TS % ctx.header_data[:processor_name].upcase}" + # Member Processor Name (Required)
23
+ "#{FormatStrings::F10TS % ctx.header_data[:user_id].upcase}" + # User ID (Required)
25
24
  "#{transform_date(Date.today)}" + # Reported Date (Required)
26
25
  Constants::FILLER # Filler (Required)
27
26
  end
@@ -1,11 +1,10 @@
1
1
  module Tufy
2
- class Transform
2
+ class BuildRecord
3
3
  include LightService::Organizer
4
4
 
5
5
  def self.execute(ctx)
6
6
  ctx[:transformed_data] = ''
7
- with(ctx).reduce(
8
- BuildHeaderSegment,
7
+ ctx = with(ctx).reduce(
9
8
  BuildNameSegment,
10
9
  BuildAddressSegment,
11
10
  BuildContactNumberSegment,
@@ -13,6 +12,8 @@ module Tufy
13
12
  BuildAccountSegment,
14
13
  BuildEndOfSubjectSegment,
15
14
  )
15
+ ctx[:transformed_data]
16
16
  end
17
17
  end
18
18
  end
19
+
@@ -0,0 +1,22 @@
1
+ module Tufy
2
+ class BuildRecords
3
+ include LightService::Action
4
+
5
+ expects :raw_data_array, :transformed_data
6
+ promises :transformed_data
7
+
8
+ executed do |ctx|
9
+ ctx.transformed_data = ctx.transformed_data + transform(ctx).upcase
10
+ end
11
+
12
+ private
13
+
14
+ def self.transform(ctx)
15
+ raw_data_array = ctx[:raw_data_array]
16
+ raw_data_array.inject("") do |data, raw_data|
17
+ data = data + BuildRecord.execute(raw_data: raw_data)
18
+ end
19
+ end
20
+ end
21
+ end
22
+
@@ -0,0 +1,8 @@
1
+ module Tufy
2
+ class TransformRawData
3
+
4
+ def self.execute(ctx)
5
+ BuildRecord.execute(ctx)
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,14 @@
1
+ module Tufy
2
+ class TransformRawDataArray
3
+ include LightService::Organizer
4
+
5
+ def self.execute(ctx)
6
+ ctx[:transformed_data] = ''
7
+ ctx = with(ctx).reduce(
8
+ BuildHeaderSegment,
9
+ BuildRecords,
10
+ )
11
+ ctx[:transformed_data]
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module Tufy
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tufy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neil Marion dela Cruz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-06 00:00:00.000000000 Z
11
+ date: 2017-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: light-service
@@ -107,10 +107,13 @@ files:
107
107
  - lib/tufy/build_header_segment.rb
108
108
  - lib/tufy/build_id_segment.rb
109
109
  - lib/tufy/build_name_segment.rb
110
+ - lib/tufy/build_record.rb
111
+ - lib/tufy/build_records.rb
110
112
  - lib/tufy/build_segment.rb
111
113
  - lib/tufy/errors/required_data_missing_error.rb
112
114
  - lib/tufy/format_strings.rb
113
- - lib/tufy/transform.rb
115
+ - lib/tufy/transform_raw_data.rb
116
+ - lib/tufy/transform_raw_data_array.rb
114
117
  - lib/tufy/version.rb
115
118
  - tufy.gemspec
116
119
  homepage: https://github.com/carabao-capital/tufy