agris 0.5.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
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