agris 0.5.0 → 0.7.0

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
  SHA256:
3
- metadata.gz: 45f30d154b9b21ea93e553498193a724c6c50240854b85d1c1c54372dcb9e629
4
- data.tar.gz: 95fcc1ca1343437d9c30d6862a8c95577547ccf03e536d8b57243abe133294e9
3
+ metadata.gz: ad525261a2308be226ddc7a4c48ae202b9f8842d9ccd6a1e826cab840fe37e79
4
+ data.tar.gz: 4582062439a69b36d477c84e119e616b71ec929349a58e28c6cbbbe72b50e1c6
5
5
  SHA512:
6
- metadata.gz: f539022ea4d98242abd8fe26d02b92929d732e20c46f73031026691aa27c3bb7ea0e69ab9a8a6abf21a7927a36feaa27eeb6b14d3a398943493ee2ab209da9de
7
- data.tar.gz: 76626a9230d6b03327ddf6191291787646392ad5515b650b2f117d23acf89965ee11d7d02d73dda5efc6470bed4ecefdfd9025d0194536fa869c0c1cfe7f2681
6
+ metadata.gz: f2e8b9099f3061fea68504b308b9806bf0159951bfebe3c74f80967d63edd64a78fabb40b68d35def71db31b043650280dec2617d4e624186894c83981eae128
7
+ data.tar.gz: 93b15004dd72be243dab774372a29f4a1f2e7c21a09a445608814b9b7bd5af70079868c5d92a79683bb22fdcce46fd6c7beca1af61e78ee0cbedafa8bae42d69
data/agris.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_dependency 'savon', '~> 2.11'
24
24
 
25
- spec.add_development_dependency 'bundler', '~> 1.14'
25
+ spec.add_development_dependency 'bundler', '~> 2.3.7'
26
26
  spec.add_development_dependency 'pry-byebug'
27
27
  spec.add_development_dependency 'rake', '~> 12.3.3'
28
28
  spec.add_development_dependency 'rspec', '~> 3.0'
@@ -9,11 +9,7 @@ module Agris
9
9
  end
10
10
 
11
11
  def last_request_date_time
12
- Time.parse(
13
- @output_hash[pluralized_resource_name] \
14
- ['system'] \
15
- ['lastrequestdatetime']
16
- )
12
+ Time.parse(@output_hash[pluralized_resource_name]['system']['lastrequestdatetime'])
17
13
  end
18
14
 
19
15
  def documents
@@ -27,18 +23,13 @@ module Agris
27
23
  protected
28
24
 
29
25
  def parse
30
- resources
31
- .map do |order_hash|
26
+ resources.map do |order_hash|
32
27
  resource_type.from_xml_hash(order_hash)
33
28
  end
34
29
  end
35
30
 
36
31
  def resource_name
37
- @resource_name ||= resource_type
38
- .name
39
- .split('::')
40
- .last
41
- .downcase
32
+ @resource_name ||= resource_type.name.split('::').last.downcase
42
33
  end
43
34
 
44
35
  def pluralized_resource_name
@@ -46,21 +37,12 @@ module Agris
46
37
  end
47
38
 
48
39
  def resource_type
49
- @resource_type ||= Object.const_get(
50
- self
51
- .class
52
- .name
53
- .split('::')
54
- .last
55
- .chomp('ExtractResponse')
56
- )
40
+ @resource_type ||= Object.const_get(self.class.name.split('::').last.chomp('ExtractResponse'))
57
41
  end
58
42
 
59
43
  def resources
60
44
  # Wrap and flatten for single responses
61
- [@output_hash[pluralized_resource_name][resource_name]]
62
- .compact
63
- .flatten
45
+ [@output_hash[pluralized_resource_name][resource_name]].compact.flatten
64
46
  end
65
47
  end
66
48
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Agris
4
+ module Api
5
+ module Grain
6
+ module GrainModule
7
+ def create(item)
8
+ import(item)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Agris
4
+ module Api
5
+ module Grain
6
+ class NewContract
7
+ include XmlModel
8
+
9
+ ATTRIBUTE_NAMES = %w(
10
+ purchase_sales
11
+ contract_location
12
+ contract_number
13
+ contract_type
14
+ commodity
15
+ variety
16
+ class
17
+ status
18
+ quantity_base
19
+ weight_base
20
+ grade_base
21
+ signed
22
+ date_written
23
+ contract_name_id
24
+ ship_to_from_id
25
+ misc_id
26
+ agent_broker_id
27
+ external_contract_no
28
+ delivery_terms
29
+ transport_mode
30
+ dp_table
31
+ invoice_terms
32
+ contract_quantity
33
+ contract_loads
34
+ advance_percent
35
+ qty_uom
36
+ ).freeze
37
+
38
+ attr_reader :record_type
39
+ attr_accessor(*ATTRIBUTE_NAMES)
40
+
41
+ def initialize(hash = {})
42
+ super
43
+
44
+ @record_type = 'GRNC0'
45
+ end
46
+
47
+ def add_schedule(schedule)
48
+ @schedules ||= []
49
+ @schedules << schedule
50
+
51
+ self
52
+ end
53
+
54
+ def add_remark(remark)
55
+ @remarks ||= []
56
+ @remarks << remark
57
+
58
+ self
59
+ end
60
+
61
+ def records
62
+ [self] + schedules + remarks
63
+ end
64
+
65
+ def remarks
66
+ @remarks || []
67
+ end
68
+
69
+ def xml_ignore_attributes
70
+ %i(schedules remarks)
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,117 @@
1
+ # frozen_string_literal: true
2
+ module Agris
3
+ module Api
4
+ module Grain
5
+ class NewContractSchedule
6
+ include XmlModel
7
+
8
+ ATTRIBUTE_NAMES = %w(
9
+ price_status
10
+ apply_name_id
11
+ other_name_id
12
+ inventory_location
13
+ item_number
14
+ state_county
15
+ board_name
16
+ futures_month
17
+ spread_from
18
+ spread_type
19
+ delivery_date
20
+ due_date
21
+ pricing_date
22
+ expire_date
23
+ scheduled_quantity
24
+ scheduled_loads
25
+ contract_price
26
+ futures_price
27
+ basis_price
28
+ freight_price
29
+ brokerage_price
30
+ other_price
31
+ misc_price_1
32
+ misc_price_2
33
+ misc_price_3
34
+ misc_price_4
35
+ misc_price_5
36
+ misc_price_6
37
+ misc_price_7
38
+ misc_price_8
39
+ misc_price_9
40
+ misc_price_10
41
+ misc_price_11
42
+ misc_price_12
43
+ defer_canceled_date
44
+ pricing_type
45
+ shipper_id
46
+ actual_freight_rate
47
+ additional_freight
48
+ exec_id
49
+ trade_id
50
+ variety
51
+ class
52
+ number
53
+ dp_table
54
+ schedule_code
55
+ weight_base
56
+ grade_base
57
+ signed
58
+ ship_to_from_id
59
+ misc_id
60
+ agent_broker_id
61
+ external_contract_no
62
+ delivery_terms
63
+ invoice_terms
64
+ advance_percent
65
+ under_fill_tolerance_percent
66
+ over_fill_tolerance_percent
67
+ under_fill_tolerance_units
68
+ over_fill_tolerance_units
69
+ price_uom
70
+ freight_uom
71
+ basis_uom
72
+ futures_currency
73
+ futures_exchange_rate
74
+ futures_exchange_rate_date
75
+ basis_currency
76
+ basis_exchange_rate
77
+ basis_exchange_rate_date
78
+ price_currency
79
+ exchange_rate
80
+ exchange_rate_date
81
+ freight_currency
82
+ freight_exchange_rate
83
+ freight_exchange_rate_date
84
+ primary_schedule
85
+ option_quantity
86
+ ).freeze
87
+
88
+ attr_accessor(*ATTRIBUTE_NAMES)
89
+
90
+ def initialize(hash = {})
91
+ super
92
+
93
+ @record_type = 'GRNC1'
94
+ end
95
+
96
+ def add_trans_code(trans_code)
97
+ @trans_codes ||= []
98
+ @trans_codes << trans_code
99
+
100
+ self
101
+ end
102
+
103
+ def records
104
+ [self] + trans_codes
105
+ end
106
+
107
+ def trans_codes
108
+ @trans_codes || []
109
+ end
110
+
111
+ def xml_ignore_attributes
112
+ %i(trans_codes)
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+ module Agris
3
+ module Api
4
+ module Grain
5
+ class NewContractScheduleTranscode
6
+ include XmlModel
7
+
8
+ ATTRIBUTE_NAMES = %w(
9
+ number
10
+ code
11
+ description
12
+ ).freeze
13
+
14
+ attr_reader :record_type
15
+
16
+ def initialize(hash = {})
17
+ super
18
+
19
+ @record_type = 'GRNC2'
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Agris
3
4
  module Api
4
5
  module Grain
@@ -6,7 +7,10 @@ module Agris
6
7
  autoload :CommodityCodes, 'agris/api/grain/commodity_codes'
7
8
  autoload :Contract, 'agris/api/grain/contract'
8
9
  autoload :GradeFactors, 'agris/api/grain/grade_factors'
10
+ autoload :GrainModule, 'agris/api/grain/grain_module'
9
11
  autoload :PurchaseContracts, 'agris/api/grain/purchase_contracts'
12
+ autoload :NewContract, 'agris/api/grain/new_contract'
13
+ autoload :NewContractSchedule, 'agris/api/grain/new_contract_schedule'
10
14
  autoload :NewTicket, 'agris/api/grain/new_ticket'
11
15
  autoload :NewTicketApplication, 'agris/api/grain/new_ticket_application'
12
16
  autoload :NewTicketRemark, 'agris/api/grain/new_ticket_remark'
data/lib/agris/client.rb CHANGED
@@ -4,6 +4,7 @@ module Agris
4
4
  include Api::AccountsPayables::Vouchers
5
5
  include Api::AccountsReceivables::Invoices
6
6
  include Api::Grain::CommodityCodes
7
+ include Api::Grain::GrainModule
7
8
  include Api::Grain::PurchaseContracts
8
9
  include Api::Grain::SalesContracts
9
10
  include Api::Grain::Tickets
data/lib/agris/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Agris
3
- VERSION = '0.5.0'
3
+ VERSION = '0.7.0'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agris
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Gray
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-04-11 00:00:00.000000000 Z
12
+ date: 2024-02-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: savon
@@ -31,14 +31,14 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '1.14'
34
+ version: 2.3.7
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '1.14'
41
+ version: 2.3.7
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: pry-byebug
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -171,6 +171,10 @@ files:
171
171
  - lib/agris/api/grain/commodity_codes.rb
172
172
  - lib/agris/api/grain/contract.rb
173
173
  - lib/agris/api/grain/grade_factors.rb
174
+ - lib/agris/api/grain/grain_module.rb
175
+ - lib/agris/api/grain/new_contract.rb
176
+ - lib/agris/api/grain/new_contract_schedule.rb
177
+ - lib/agris/api/grain/new_contract_schedule_transcode.rb
174
178
  - lib/agris/api/grain/new_ticket.rb
175
179
  - lib/agris/api/grain/new_ticket_application.rb
176
180
  - lib/agris/api/grain/new_ticket_remark.rb
@@ -244,8 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
244
248
  - !ruby/object:Gem::Version
245
249
  version: '0'
246
250
  requirements: []
247
- rubyforge_project:
248
- rubygems_version: 2.7.6.2
251
+ rubygems_version: 3.3.7
249
252
  signing_key:
250
253
  specification_version: 4
251
254
  summary: Ruby client library for Agris API