myjohndeere 0.1.8 → 0.1.9
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/Gemfile.lock +3 -3
- data/lib/myjohndeere.rb +6 -1
- data/lib/myjohndeere/field.rb +6 -1
- data/lib/myjohndeere/file_resource.rb +1 -1
- data/lib/myjohndeere/version.rb +1 -1
- data/spec/fixtures.json +256 -0
- data/test/test_field.rb +27 -0
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b4556fe6533cae23c117ffd3d72d809f8c8bf2c
|
4
|
+
data.tar.gz: 86f46e02faf114baecf904059a1b333cedfb731e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f08775c36e5979e14558cb53feba7682c73aa0f43b6b7aec8054965891b7b224026559dfb1c44aba5aea5b2a8def4051aaf70ed1f81c132c5f9e79d9adae0f4f
|
7
|
+
data.tar.gz: efe276478ee3868e6c4a23509d01de0e2b8756f96b6671d272e1a90c18900f44708195c42a6f0507d936a3b734eebeba41ef558ad63adcd4c3e38a73c7cba788
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
myjohndeere (0.1.
|
4
|
+
myjohndeere (0.1.9)
|
5
5
|
oauth (>= 0.5.3)
|
6
6
|
|
7
7
|
GEM
|
@@ -14,7 +14,7 @@ GEM
|
|
14
14
|
safe_yaml (~> 1.0.0)
|
15
15
|
hashdiff (0.3.2)
|
16
16
|
minitest (5.8.4)
|
17
|
-
oauth (0.5.
|
17
|
+
oauth (0.5.4)
|
18
18
|
public_suffix (2.0.5)
|
19
19
|
rake (11.3.0)
|
20
20
|
safe_yaml (1.0.4)
|
@@ -34,4 +34,4 @@ DEPENDENCIES
|
|
34
34
|
webmock
|
35
35
|
|
36
36
|
BUNDLED WITH
|
37
|
-
1.
|
37
|
+
1.16.1
|
data/lib/myjohndeere.rb
CHANGED
@@ -81,13 +81,18 @@ module MyJohnDeere
|
|
81
81
|
|
82
82
|
class Configuration
|
83
83
|
attr_accessor :endpoint
|
84
|
-
attr_writer :shared_secret, :app_id, :contribution_definition_id
|
84
|
+
attr_writer :shared_secret, :app_id, :contribution_definition_id, :use_last_active_boundary
|
85
85
|
attr_reader :environment
|
86
86
|
|
87
87
|
def log_level=(val)
|
88
88
|
@log_level = val
|
89
89
|
end
|
90
90
|
|
91
|
+
def use_last_active_boundary
|
92
|
+
@use_last_active_boundary ||= false
|
93
|
+
return @use_last_active_boundary
|
94
|
+
end
|
95
|
+
|
91
96
|
def log_level
|
92
97
|
@log_level ||= :fatal
|
93
98
|
return @log_level
|
data/lib/myjohndeere/field.rb
CHANGED
@@ -39,7 +39,12 @@ module MyJohnDeere
|
|
39
39
|
active_boundaries = possible_boundaries.select { |b| b.active && !b.deleted }.
|
40
40
|
uniq { |b| b.id }
|
41
41
|
if active_boundaries.count > 1 then
|
42
|
-
|
42
|
+
if MyJohnDeere.configuration.use_last_active_boundary then
|
43
|
+
MyJohnDeere.logger.info("Multiple boundaries found for field ID: #{self.id}. Using last active")
|
44
|
+
return active_boundaries.last
|
45
|
+
else
|
46
|
+
raise MyJohnDeereError.new("There was more than one boundary in the field ID: #{self.id}, this is currently unexpected")
|
47
|
+
end
|
43
48
|
elsif active_boundaries.count == 1 then
|
44
49
|
return active_boundaries.first
|
45
50
|
else
|
@@ -37,7 +37,7 @@ module MyJohnDeere
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def self.upload_file(access_token, file_resource_id, file_path)
|
40
|
-
raise ArgumentError.new("You must pass an existing file") if !::File.
|
40
|
+
raise ArgumentError.new("You must pass an existing file") if !::File.exist?(file_path)
|
41
41
|
raise ArgumentError.new("You must pass a valid file_resource_id") if file_resource_id.nil?
|
42
42
|
|
43
43
|
::File.open(file_path, "rb:UTF-8") do |f|
|
data/lib/myjohndeere/version.rb
CHANGED
data/spec/fixtures.json
CHANGED
@@ -467,6 +467,262 @@
|
|
467
467
|
}
|
468
468
|
]
|
469
469
|
},
|
470
|
+
"field_with_multiple_active_boundaries_unique_ids" : {
|
471
|
+
"@type":"Field",
|
472
|
+
"name":"AndersonFarms",
|
473
|
+
"boundaries":[
|
474
|
+
{
|
475
|
+
"@type":"Boundary",
|
476
|
+
"name":"a",
|
477
|
+
"modifiedTime":"2017-08-04T21:45:51.469Z",
|
478
|
+
"area":{
|
479
|
+
"@type":"MeasurementAsDouble",
|
480
|
+
"valueAsDouble":15.892707870809991,
|
481
|
+
"unit":"ha"
|
482
|
+
},
|
483
|
+
"multipolygons":[
|
484
|
+
{
|
485
|
+
"@type":"Polygon",
|
486
|
+
"rings":[
|
487
|
+
{
|
488
|
+
"@type":"Ring",
|
489
|
+
"points":[
|
490
|
+
{
|
491
|
+
"@type":"Point",
|
492
|
+
"lat":40.095079098,
|
493
|
+
"lon":-105.032172203
|
494
|
+
},
|
495
|
+
{
|
496
|
+
"@type":"Point",
|
497
|
+
"lat":40.095111927,
|
498
|
+
"lon":-105.023052692
|
499
|
+
},
|
500
|
+
{
|
501
|
+
"@type":"Point",
|
502
|
+
"lat":40.096425084,
|
503
|
+
"lon":-105.023825169
|
504
|
+
},
|
505
|
+
{
|
506
|
+
"@type":"Point",
|
507
|
+
"lat":40.096802611,
|
508
|
+
"lon":-105.024554729
|
509
|
+
},
|
510
|
+
{
|
511
|
+
"@type":"Point",
|
512
|
+
"lat":40.096457912,
|
513
|
+
"lon":-105.025134087
|
514
|
+
},
|
515
|
+
{
|
516
|
+
"@type":"Point",
|
517
|
+
"lat":40.097245793,
|
518
|
+
"lon":-105.029489994
|
519
|
+
},
|
520
|
+
{
|
521
|
+
"@type":"Point",
|
522
|
+
"lat":40.097492004,
|
523
|
+
"lon":-105.030562878
|
524
|
+
},
|
525
|
+
{
|
526
|
+
"@type":"Point",
|
527
|
+
"lat":40.097787456,
|
528
|
+
"lon":-105.031678677
|
529
|
+
},
|
530
|
+
{
|
531
|
+
"@type":"Point",
|
532
|
+
"lat":40.097771042,
|
533
|
+
"lon":-105.032193661
|
534
|
+
},
|
535
|
+
{
|
536
|
+
"@type":"Point",
|
537
|
+
"lat":40.095079098,
|
538
|
+
"lon":-105.032172203
|
539
|
+
}
|
540
|
+
],
|
541
|
+
"type":"exterior",
|
542
|
+
"passable":true
|
543
|
+
}
|
544
|
+
]
|
545
|
+
}
|
546
|
+
],
|
547
|
+
"extent":{
|
548
|
+
"@type":"Extent",
|
549
|
+
"topLeft":{
|
550
|
+
"@type":"Point",
|
551
|
+
"lat":40.097787456,
|
552
|
+
"lon":-105.032193661
|
553
|
+
},
|
554
|
+
"bottomRight":{
|
555
|
+
"@type":"Point",
|
556
|
+
"lat":40.095079098,
|
557
|
+
"lon":-105.023052692
|
558
|
+
}
|
559
|
+
},
|
560
|
+
"id":"f4828b25-2a92-12a4-bf3e-a107c39ecb84",
|
561
|
+
"links":[
|
562
|
+
{
|
563
|
+
"@type":"Link",
|
564
|
+
"rel":"self",
|
565
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234/boundaries/f4828b25-2a92-4f2d-bf3e-a107c39ecb84"
|
566
|
+
},
|
567
|
+
{
|
568
|
+
"@type":"Link",
|
569
|
+
"rel":"owningOrganization",
|
570
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234"
|
571
|
+
}
|
572
|
+
],
|
573
|
+
"active":true
|
574
|
+
},
|
575
|
+
{
|
576
|
+
"@type":"Boundary",
|
577
|
+
"name":"b",
|
578
|
+
"modifiedTime":"2017-08-04T21:45:51.469Z",
|
579
|
+
"area":{
|
580
|
+
"@type":"MeasurementAsDouble",
|
581
|
+
"valueAsDouble":15.892707870809991,
|
582
|
+
"unit":"ha"
|
583
|
+
},
|
584
|
+
"multipolygons":[
|
585
|
+
{
|
586
|
+
"@type":"Polygon",
|
587
|
+
"rings":[
|
588
|
+
{
|
589
|
+
"@type":"Ring",
|
590
|
+
"points":[
|
591
|
+
{
|
592
|
+
"@type":"Point",
|
593
|
+
"lat":40.095079098,
|
594
|
+
"lon":-105.032172203
|
595
|
+
},
|
596
|
+
{
|
597
|
+
"@type":"Point",
|
598
|
+
"lat":40.095111927,
|
599
|
+
"lon":-105.023052692
|
600
|
+
},
|
601
|
+
{
|
602
|
+
"@type":"Point",
|
603
|
+
"lat":40.096425084,
|
604
|
+
"lon":-105.023825169
|
605
|
+
},
|
606
|
+
{
|
607
|
+
"@type":"Point",
|
608
|
+
"lat":40.096802611,
|
609
|
+
"lon":-105.024554729
|
610
|
+
},
|
611
|
+
{
|
612
|
+
"@type":"Point",
|
613
|
+
"lat":40.096457912,
|
614
|
+
"lon":-105.025134087
|
615
|
+
},
|
616
|
+
{
|
617
|
+
"@type":"Point",
|
618
|
+
"lat":40.097245793,
|
619
|
+
"lon":-105.029489994
|
620
|
+
},
|
621
|
+
{
|
622
|
+
"@type":"Point",
|
623
|
+
"lat":40.097492004,
|
624
|
+
"lon":-105.030562878
|
625
|
+
},
|
626
|
+
{
|
627
|
+
"@type":"Point",
|
628
|
+
"lat":40.097787456,
|
629
|
+
"lon":-105.031678677
|
630
|
+
},
|
631
|
+
{
|
632
|
+
"@type":"Point",
|
633
|
+
"lat":40.097771042,
|
634
|
+
"lon":-105.032193661
|
635
|
+
},
|
636
|
+
{
|
637
|
+
"@type":"Point",
|
638
|
+
"lat":40.095079098,
|
639
|
+
"lon":-105.032172203
|
640
|
+
}
|
641
|
+
],
|
642
|
+
"type":"exterior",
|
643
|
+
"passable":true
|
644
|
+
}
|
645
|
+
]
|
646
|
+
}
|
647
|
+
],
|
648
|
+
"extent":{
|
649
|
+
"@type":"Extent",
|
650
|
+
"topLeft":{
|
651
|
+
"@type":"Point",
|
652
|
+
"lat":40.097787456,
|
653
|
+
"lon":-105.032193661
|
654
|
+
},
|
655
|
+
"bottomRight":{
|
656
|
+
"@type":"Point",
|
657
|
+
"lat":40.095079098,
|
658
|
+
"lon":-105.023052692
|
659
|
+
}
|
660
|
+
},
|
661
|
+
"id":"f4828b25-2a92-12a4-bf3e-a107c39ecb85",
|
662
|
+
"links":[
|
663
|
+
{
|
664
|
+
"@type":"Link",
|
665
|
+
"rel":"self",
|
666
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234/boundaries/f4828b25-2a92-4f2d-bf3e-a107c39ecb84"
|
667
|
+
},
|
668
|
+
{
|
669
|
+
"@type":"Link",
|
670
|
+
"rel":"owningOrganization",
|
671
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234"
|
672
|
+
}
|
673
|
+
],
|
674
|
+
"active":true
|
675
|
+
}
|
676
|
+
],
|
677
|
+
"id":"2516aa2c-2c0d-4dae-ba63-5c64fd172d01",
|
678
|
+
"links":[
|
679
|
+
{
|
680
|
+
"@type":"Link",
|
681
|
+
"rel":"self",
|
682
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234/fields/2516aa2c-2c0d-4dae-ba63-5c64fd172d01"
|
683
|
+
},
|
684
|
+
{
|
685
|
+
"@type":"Link",
|
686
|
+
"rel":"clients",
|
687
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234/fields/2516aa2c-2c0d-4dae-ba63-5c64fd172d01/clients"
|
688
|
+
},
|
689
|
+
{
|
690
|
+
"@type":"Link",
|
691
|
+
"rel":"notes",
|
692
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234/fields/2516aa2c-2c0d-4dae-ba63-5c64fd172d01/notes"
|
693
|
+
},
|
694
|
+
{
|
695
|
+
"@type":"Link",
|
696
|
+
"rel":"farms",
|
697
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234/fields/2516aa2c-2c0d-4dae-ba63-5c64fd172d01/farms"
|
698
|
+
},
|
699
|
+
{
|
700
|
+
"@type":"Link",
|
701
|
+
"rel":"owningOrganization",
|
702
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234"
|
703
|
+
},
|
704
|
+
{
|
705
|
+
"@type":"Link",
|
706
|
+
"rel":"simplifiedBoundaries",
|
707
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234/fields/2516aa2c-2c0d-4dae-ba63-5c64fd172d01/boundaries?simple=true"
|
708
|
+
},
|
709
|
+
{
|
710
|
+
"@type":"Link",
|
711
|
+
"rel":"addBoundary",
|
712
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234/fields/2516aa2c-2c0d-4dae-ba63-5c64fd172d01/boundaries"
|
713
|
+
},
|
714
|
+
{
|
715
|
+
"@type":"Link",
|
716
|
+
"rel":"activeBoundary",
|
717
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234/boundaries/f4828b25-2a92-4f2d-bf3e-a107c39ecb84"
|
718
|
+
},
|
719
|
+
{
|
720
|
+
"@type":"Link",
|
721
|
+
"rel":"fieldOperation",
|
722
|
+
"uri":"https://sandboxapi.deere.com/platform/organizations/1234/fields/2516aa2c-2c0d-4dae-ba63-5c64fd172d01/fieldOperations"
|
723
|
+
}
|
724
|
+
]
|
725
|
+
},
|
470
726
|
"field_with_multiple_active_boundaries" : {
|
471
727
|
"@type":"Field",
|
472
728
|
"name":"AndersonFarms",
|
data/test/test_field.rb
CHANGED
@@ -42,6 +42,33 @@ class TestField < Minitest::Test
|
|
42
42
|
assert !field.boundary_unset?
|
43
43
|
end
|
44
44
|
|
45
|
+
def test_retrieval_with_multiple_active_boundaries_and_config_change
|
46
|
+
begin
|
47
|
+
fixture = API_FIXTURES["field_with_multiple_active_boundaries_unique_ids"]
|
48
|
+
|
49
|
+
stub_request(:get, /\/organizations\/#{ORGANIZATION_FIXTURE["id"]}\/fields\/#{fixture["id"]}/).
|
50
|
+
with(query: {embed: "boundaries"}).
|
51
|
+
to_return(status: 200, body: fixture.to_json)
|
52
|
+
|
53
|
+
MyJohnDeere.configuration.use_last_active_boundary = false
|
54
|
+
|
55
|
+
assert_raises MyJohnDeere::MyJohnDeereError do
|
56
|
+
MyJohnDeere::Field.retrieve(default_access_token,
|
57
|
+
fixture["id"], organization_id: ORGANIZATION_FIXTURE["id"],
|
58
|
+
body: {embed: "boundaries"})
|
59
|
+
end
|
60
|
+
|
61
|
+
MyJohnDeere.configuration.use_last_active_boundary = true
|
62
|
+
|
63
|
+
field = MyJohnDeere::Field.retrieve(default_access_token,
|
64
|
+
fixture["id"], organization_id: ORGANIZATION_FIXTURE["id"],
|
65
|
+
body: {embed: "boundaries"})
|
66
|
+
assert_equal fixture["boundaries"][1]["id"], field.boundary.id
|
67
|
+
ensure
|
68
|
+
MyJohnDeere.configuration.use_last_active_boundary = false
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
45
72
|
def test_retrieval_with_multiple_boundaries
|
46
73
|
fixture = API_FIXTURES["field_with_multiple_boundaries"]
|
47
74
|
|
metadata
CHANGED
@@ -1,38 +1,38 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myjohndeere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Susmarski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oauth
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.5.3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.5.3
|
27
|
-
description:
|
27
|
+
description: " MyJohnDeere allows you to access your John Deere Financial account,
|
28
28
|
JDLink, Operations Center and many other applications from one convenient place.
|
29
|
-
This Ruby Gem is provided as a convenient way to access their API.
|
29
|
+
This Ruby Gem is provided as a convenient way to access their API."
|
30
30
|
email: paul@susmarski.com
|
31
31
|
executables: []
|
32
32
|
extensions: []
|
33
33
|
extra_rdoc_files: []
|
34
34
|
files:
|
35
|
-
- .gitignore
|
35
|
+
- ".gitignore"
|
36
36
|
- Gemfile
|
37
37
|
- Gemfile.lock
|
38
38
|
- LICENSE
|
@@ -94,17 +94,17 @@ require_paths:
|
|
94
94
|
- lib
|
95
95
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
96
|
requirements:
|
97
|
-
- -
|
97
|
+
- - ">="
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: 1.9.3
|
100
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- -
|
102
|
+
- - ">="
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
requirements: []
|
106
106
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.
|
107
|
+
rubygems_version: 2.5.1
|
108
108
|
signing_key:
|
109
109
|
specification_version: 4
|
110
110
|
summary: Ruby bindings for the MyJohnDeere API
|