agris 0.18.0 → 1.0.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 +4 -4
- data/.claude/agents/app-explorer.md +212 -0
- data/.claude/agents/cross-review.md +152 -0
- data/.claude/agents/developer.md +215 -0
- data/.claude/agents/pm.md +401 -0
- data/.claude/agents/qa.md +235 -0
- data/.claude/agents/reviewer.md +185 -0
- data/.claude/agents/spec-preflight.md +167 -0
- data/.claude/agents/spec.md +244 -0
- data/.claude/ai/agent-rules.md +36 -0
- data/.claude/ai/spec-writing-guide.md +43 -0
- data/.claude/commands/app-explorer.md +87 -0
- data/.claude/commands/cross-review.md +91 -0
- data/.claude/commands/developer.md +118 -0
- data/.claude/commands/pm.md +166 -0
- data/.claude/commands/qa.md +111 -0
- data/.claude/commands/reviewer.md +86 -0
- data/.claude/commands/spec.md +172 -0
- data/.github/workflows/ci.yml +62 -0
- data/.gitignore +5 -0
- data/.rubocop.yml +10 -103
- data/.ruby-version +1 -0
- data/CHANGELOG.md +79 -0
- data/CLAUDE.md +98 -0
- data/README.md +9 -1
- data/agris.gemspec +3 -2
- data/docs/RELEASING.md +147 -0
- data/docs/specs/README.md +26 -0
- data/docs/specs/accounts-payables/.gitkeep +0 -0
- data/docs/specs/accounts-receivables/.gitkeep +0 -0
- data/docs/specs/grain/.gitkeep +0 -0
- data/docs/specs/inventory/.gitkeep +0 -0
- data/docs/specs/messages/.gitkeep +0 -0
- data/docs/specs/rename-folder.example.md +82 -0
- data/docs/specs/spec-template.md +68 -0
- data/docs/specs/support/.gitkeep +0 -0
- data/lib/agris/api/accounts_payables/disbursements.rb +19 -0
- data/lib/agris/api/accounts_payables/new_disbursement.rb +42 -0
- data/lib/agris/api/accounts_payables.rb +3 -0
- data/lib/agris/api/accounts_receivables/invoices.rb +1 -1
- data/lib/agris/api/accounts_receivables/new_payment.rb +96 -0
- data/lib/agris/api/accounts_receivables/new_payment_remark.rb +38 -0
- data/lib/agris/api/accounts_receivables/payment_post_result.rb +35 -0
- data/lib/agris/api/accounts_receivables/payments.rb +33 -0
- data/lib/agris/api/accounts_receivables.rb +6 -0
- data/lib/agris/api/document_query_response.rb +6 -2
- data/lib/agris/api/grain/contract.rb +3 -3
- data/lib/agris/api/grain/new_ticket.rb +1 -0
- data/lib/agris/api/grain/purchase_contracts.rb +1 -1
- data/lib/agris/api/grain/sales_contracts.rb +1 -1
- data/lib/agris/api/grain.rb +4 -2
- data/lib/agris/api/inventory/delivery_tickets.rb +1 -1
- data/lib/agris/api/inventory/orders.rb +1 -1
- data/lib/agris/api/messages/changed_query_base.rb +1 -0
- data/lib/agris/api/messages/document_query_base.rb +1 -0
- data/lib/agris/api/messages/import.rb +1 -0
- data/lib/agris/api/name/new_farm_field.rb +5 -0
- data/lib/agris/api/new_voucher.rb +1 -3
- data/lib/agris/api/post_result.rb +9 -1
- data/lib/agris/client.rb +3 -1
- data/lib/agris/version.rb +1 -1
- data/lib/agris.rb +1 -0
- data/lib/hash.rb +1 -0
- metadata +48 -13
- data/.circleci/config.yml +0 -45
- data/.codeclimate.yml +0 -5
|
@@ -17,7 +17,7 @@ module Agris
|
|
|
17
17
|
)
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
def purchase_contracts_changed_since(datetime, detail
|
|
20
|
+
def purchase_contracts_changed_since(datetime, detail: false)
|
|
21
21
|
extract_documents(
|
|
22
22
|
Messages::QueryChangedPurchaseContracts.new(datetime, detail),
|
|
23
23
|
Agris::Api::Grain::Contract
|
|
@@ -17,7 +17,7 @@ module Agris
|
|
|
17
17
|
)
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
def sales_contracts_changed_since(datetime, detail
|
|
20
|
+
def sales_contracts_changed_since(datetime, detail: false)
|
|
21
21
|
extract_documents(
|
|
22
22
|
Messages::QueryChangedSalesContracts.new(datetime, detail),
|
|
23
23
|
Agris::Api::Grain::Contract
|
data/lib/agris/api/grain.rb
CHANGED
|
@@ -16,8 +16,10 @@ module Agris
|
|
|
16
16
|
autoload :NewTicketRemark, 'agris/api/grain/new_ticket_remark'
|
|
17
17
|
autoload :Rates, 'agris/api/grain/rates'
|
|
18
18
|
autoload :SalesContracts, 'agris/api/grain/sales_contracts'
|
|
19
|
-
autoload :SpecificCommodityCodeExtract,
|
|
20
|
-
|
|
19
|
+
autoload :SpecificCommodityCodeExtract,
|
|
20
|
+
'agris/api/grain/specific_commodity_code_extract'
|
|
21
|
+
autoload :SpecificContractExtract,
|
|
22
|
+
'agris/api/grain/specific_contract_extract'
|
|
21
23
|
autoload :Tickets, 'agris/api/grain/tickets'
|
|
22
24
|
end
|
|
23
25
|
end
|
|
@@ -16,6 +16,7 @@ module Agris
|
|
|
16
16
|
field_description
|
|
17
17
|
).freeze
|
|
18
18
|
|
|
19
|
+
attr_reader :record_type
|
|
19
20
|
attr_accessor(*ATTRIBUTE_NAMES)
|
|
20
21
|
|
|
21
22
|
def initialize(hash = {})
|
|
@@ -23,6 +24,10 @@ module Agris
|
|
|
23
24
|
|
|
24
25
|
@record_type = 'NAMF0'
|
|
25
26
|
end
|
|
27
|
+
|
|
28
|
+
def records
|
|
29
|
+
[self]
|
|
30
|
+
end
|
|
26
31
|
end
|
|
27
32
|
end
|
|
28
33
|
end
|
|
@@ -5,8 +5,6 @@ module Agris
|
|
|
5
5
|
class NewVoucher
|
|
6
6
|
include XmlModel
|
|
7
7
|
|
|
8
|
-
attr_reader :details
|
|
9
|
-
|
|
10
8
|
ATTRIBUTE_NAMES = %w(
|
|
11
9
|
agent_id
|
|
12
10
|
currency_code
|
|
@@ -44,7 +42,7 @@ module Agris
|
|
|
44
42
|
voucher_type
|
|
45
43
|
).freeze
|
|
46
44
|
|
|
47
|
-
attr_reader
|
|
45
|
+
attr_reader :details, *ATTRIBUTE_NAMES
|
|
48
46
|
|
|
49
47
|
def initialize(hash = {})
|
|
50
48
|
super
|
|
@@ -6,10 +6,18 @@ module Agris
|
|
|
6
6
|
results['result']['document']
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
+
# A processed post reports an empty `<reject />`, so there may be no
|
|
10
|
+
# rejections to read.
|
|
9
11
|
def reject_reasons
|
|
10
|
-
results
|
|
12
|
+
rejects = results.fetch('result', {})['rejects']
|
|
13
|
+
|
|
14
|
+
return [] if rejects.nil?
|
|
15
|
+
|
|
16
|
+
[rejects['reject']]
|
|
17
|
+
.flatten
|
|
11
18
|
.compact
|
|
12
19
|
.map { |rejection| rejection['reason'] }
|
|
20
|
+
.compact
|
|
13
21
|
end
|
|
14
22
|
|
|
15
23
|
def results
|
data/lib/agris/client.rb
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
module Agris
|
|
3
3
|
class Client
|
|
4
|
+
include Api::AccountsPayables::Disbursements
|
|
4
5
|
include Api::AccountsPayables::Vouchers
|
|
5
6
|
include Api::AccountsReceivables::Invoices
|
|
7
|
+
include Api::AccountsReceivables::Payments
|
|
6
8
|
include Api::Grain::CommodityCodes
|
|
7
9
|
include Api::Grain::GrainModule
|
|
8
10
|
include Api::Grain::PurchaseContracts
|
|
@@ -41,7 +43,7 @@ module Agris
|
|
|
41
43
|
|
|
42
44
|
def logger
|
|
43
45
|
# We may want to replace the Logger with some kind of NullLogger?
|
|
44
|
-
@logger ||= Logger.new(
|
|
46
|
+
@logger ||= Logger.new($stdout)
|
|
45
47
|
end
|
|
46
48
|
end
|
|
47
49
|
end
|
data/lib/agris/version.rb
CHANGED
data/lib/agris.rb
CHANGED
data/lib/hash.rb
CHANGED
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.
|
|
4
|
+
version: 1.0.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:
|
|
12
|
+
date: 2026-09-14 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: savon
|
|
@@ -29,16 +29,16 @@ dependencies:
|
|
|
29
29
|
name: bundler
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
31
31
|
requirements:
|
|
32
|
-
- - "
|
|
32
|
+
- - ">="
|
|
33
33
|
- !ruby/object:Gem::Version
|
|
34
|
-
version: 2.3
|
|
34
|
+
version: '2.3'
|
|
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: 2.3
|
|
41
|
+
version: '2.3'
|
|
42
42
|
- !ruby/object:Gem::Dependency
|
|
43
43
|
name: pry-byebug
|
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -99,16 +99,16 @@ dependencies:
|
|
|
99
99
|
name: rubocop
|
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
|
101
101
|
requirements:
|
|
102
|
-
- -
|
|
102
|
+
- - "~>"
|
|
103
103
|
- !ruby/object:Gem::Version
|
|
104
|
-
version:
|
|
104
|
+
version: '1.80'
|
|
105
105
|
type: :development
|
|
106
106
|
prerelease: false
|
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
|
108
108
|
requirements:
|
|
109
|
-
- -
|
|
109
|
+
- - "~>"
|
|
110
110
|
- !ruby/object:Gem::Version
|
|
111
|
-
version:
|
|
111
|
+
version: '1.80'
|
|
112
112
|
- !ruby/object:Gem::Dependency
|
|
113
113
|
name: simplecov
|
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -145,12 +145,31 @@ executables: []
|
|
|
145
145
|
extensions: []
|
|
146
146
|
extra_rdoc_files: []
|
|
147
147
|
files:
|
|
148
|
-
- ".
|
|
149
|
-
- ".
|
|
148
|
+
- ".claude/agents/app-explorer.md"
|
|
149
|
+
- ".claude/agents/cross-review.md"
|
|
150
|
+
- ".claude/agents/developer.md"
|
|
151
|
+
- ".claude/agents/pm.md"
|
|
152
|
+
- ".claude/agents/qa.md"
|
|
153
|
+
- ".claude/agents/reviewer.md"
|
|
154
|
+
- ".claude/agents/spec-preflight.md"
|
|
155
|
+
- ".claude/agents/spec.md"
|
|
156
|
+
- ".claude/ai/agent-rules.md"
|
|
157
|
+
- ".claude/ai/spec-writing-guide.md"
|
|
158
|
+
- ".claude/commands/app-explorer.md"
|
|
159
|
+
- ".claude/commands/cross-review.md"
|
|
160
|
+
- ".claude/commands/developer.md"
|
|
161
|
+
- ".claude/commands/pm.md"
|
|
162
|
+
- ".claude/commands/qa.md"
|
|
163
|
+
- ".claude/commands/reviewer.md"
|
|
164
|
+
- ".claude/commands/spec.md"
|
|
165
|
+
- ".github/workflows/ci.yml"
|
|
150
166
|
- ".gitignore"
|
|
151
167
|
- ".rspec"
|
|
152
168
|
- ".rubocop.yml"
|
|
153
169
|
- ".rubocop_todo.yml"
|
|
170
|
+
- ".ruby-version"
|
|
171
|
+
- CHANGELOG.md
|
|
172
|
+
- CLAUDE.md
|
|
154
173
|
- Gemfile
|
|
155
174
|
- LICENSE
|
|
156
175
|
- README.md
|
|
@@ -158,12 +177,28 @@ files:
|
|
|
158
177
|
- agris.gemspec
|
|
159
178
|
- bin/console
|
|
160
179
|
- bin/setup
|
|
180
|
+
- docs/RELEASING.md
|
|
181
|
+
- docs/specs/README.md
|
|
182
|
+
- docs/specs/accounts-payables/.gitkeep
|
|
183
|
+
- docs/specs/accounts-receivables/.gitkeep
|
|
184
|
+
- docs/specs/grain/.gitkeep
|
|
185
|
+
- docs/specs/inventory/.gitkeep
|
|
186
|
+
- docs/specs/messages/.gitkeep
|
|
187
|
+
- docs/specs/rename-folder.example.md
|
|
188
|
+
- docs/specs/spec-template.md
|
|
189
|
+
- docs/specs/support/.gitkeep
|
|
161
190
|
- lib/agris.rb
|
|
162
191
|
- lib/agris/api.rb
|
|
163
192
|
- lib/agris/api/accounts_payables.rb
|
|
193
|
+
- lib/agris/api/accounts_payables/disbursements.rb
|
|
194
|
+
- lib/agris/api/accounts_payables/new_disbursement.rb
|
|
164
195
|
- lib/agris/api/accounts_receivables.rb
|
|
165
196
|
- lib/agris/api/accounts_receivables/invoice.rb
|
|
166
197
|
- lib/agris/api/accounts_receivables/invoices.rb
|
|
198
|
+
- lib/agris/api/accounts_receivables/new_payment.rb
|
|
199
|
+
- lib/agris/api/accounts_receivables/new_payment_remark.rb
|
|
200
|
+
- lib/agris/api/accounts_receivables/payment_post_result.rb
|
|
201
|
+
- lib/agris/api/accounts_receivables/payments.rb
|
|
167
202
|
- lib/agris/api/accounts_receivables/specific_invoice_extract.rb
|
|
168
203
|
- lib/agris/api/document_query_response.rb
|
|
169
204
|
- lib/agris/api/grain.rb
|
|
@@ -243,7 +278,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
243
278
|
requirements:
|
|
244
279
|
- - ">="
|
|
245
280
|
- !ruby/object:Gem::Version
|
|
246
|
-
version: '
|
|
281
|
+
version: '3.1'
|
|
247
282
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
283
|
requirements:
|
|
249
284
|
- - ">="
|
data/.circleci/config.yml
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
version: 2
|
|
2
|
-
|
|
3
|
-
jobs:
|
|
4
|
-
build:
|
|
5
|
-
docker:
|
|
6
|
-
# specify the version you desire here
|
|
7
|
-
- image: circleci/ruby:2.4.1
|
|
8
|
-
|
|
9
|
-
working_directory: ~/agris
|
|
10
|
-
|
|
11
|
-
steps:
|
|
12
|
-
- checkout
|
|
13
|
-
- run:
|
|
14
|
-
name: install dependencies
|
|
15
|
-
command: |
|
|
16
|
-
bundle install --jobs=4 --retry=3 --path vendor/bundle
|
|
17
|
-
|
|
18
|
-
- run:
|
|
19
|
-
name: Setup Code Climate test-reporter
|
|
20
|
-
command: |
|
|
21
|
-
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
|
22
|
-
chmod +x ./cc-test-reporter
|
|
23
|
-
|
|
24
|
-
# run tests!
|
|
25
|
-
- run:
|
|
26
|
-
name: run tests
|
|
27
|
-
command: |
|
|
28
|
-
./cc-test-reporter before-build
|
|
29
|
-
mkdir /tmp/test-results
|
|
30
|
-
TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
|
|
31
|
-
|
|
32
|
-
bundle exec rspec --format progress \
|
|
33
|
-
--format RspecJunitFormatter \
|
|
34
|
-
--out /tmp/test-results/rspec.xml \
|
|
35
|
-
--format progress \
|
|
36
|
-
-- \
|
|
37
|
-
$TEST_FILES
|
|
38
|
-
./cc-test-reporter after-build --coverage-input-type simplecov --exit-code $?
|
|
39
|
-
|
|
40
|
-
# collect reports
|
|
41
|
-
- store_test_results:
|
|
42
|
-
path: /tmp/test-results
|
|
43
|
-
- store_artifacts:
|
|
44
|
-
path: /tmp/test-results
|
|
45
|
-
destination: test-results
|