harvest-ruby-v2 0.2.1 → 0.3.3
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 +16 -31
- data/Makefile +5 -0
- data/harvest-ruby-v2.gemspec +2 -0
- data/lib/harvest.rb +18 -12
- data/lib/harvest/creates.rb +2 -2
- data/lib/harvest/discovers.rb +1 -1
- data/lib/harvest/httpclient.rb +1 -2
- data/lib/harvest/resourcefactory.rb +5 -1
- data/lib/harvest/version.rb +1 -1
- metadata +31 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 657bfe3e49665ad68a2d7498b8b775b6d7704701a807cbce5739d52e677e405b
|
|
4
|
+
data.tar.gz: 9ced52a03ca53b10967c20e87ad156259c457d957a134196f89c403b6e97fc01
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 257341d20fd30a3e582784368020e32a903d9a87e9b6487aa6f6d1e85a57d170ccaf8082b9818da285d93c079bfad65925780e779430039e194fc85ffde426da
|
|
7
|
+
data.tar.gz: 40a10bf4c46b6d48db61e4a4a8eeef8afd1db7e5a37c1018279967a1e02b6ace9314e12759d72080ba55fce393f8271a8b5874c83d8724d39de7f97f85a8146d
|
data/Gemfile
CHANGED
|
@@ -5,35 +5,20 @@ source 'https://rubygems.org'
|
|
|
5
5
|
# Specify your gem's dependencies in harvest.gemspec
|
|
6
6
|
gemspec
|
|
7
7
|
|
|
8
|
-
gem 'rake', '~> 12.0'
|
|
9
|
-
gem 'rspec', '~> 3.0'
|
|
10
|
-
|
|
11
|
-
gem 'rest-client', '~> 2.1'
|
|
12
|
-
|
|
13
|
-
gem 'pry', '~> 0.13.1'
|
|
14
|
-
|
|
15
|
-
gem 'configparser', '~> 0.1.7'
|
|
16
|
-
|
|
17
|
-
gem 'rubocop', '~> 0.89.1'
|
|
18
|
-
|
|
19
8
|
gem 'activesupport', '~> 6.0'
|
|
20
|
-
|
|
21
|
-
gem '
|
|
22
|
-
|
|
23
|
-
gem '
|
|
24
|
-
|
|
25
|
-
gem '
|
|
26
|
-
|
|
27
|
-
gem 'rubocop
|
|
28
|
-
|
|
29
|
-
gem '
|
|
30
|
-
|
|
31
|
-
gem '
|
|
32
|
-
gem '
|
|
33
|
-
gem '
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
gem 'redcarpet', '~> 3.5'
|
|
38
|
-
|
|
39
|
-
gem 'yard-struct', '~> 1.1'
|
|
9
|
+
gem 'configparser', '~> 0.1.7', group: :development
|
|
10
|
+
gem 'pry', '~> 0.13.1', group: :development
|
|
11
|
+
gem 'rake', '~> 12.0', group: :development
|
|
12
|
+
gem 'redcarpet', '~> 3.5', group: :development
|
|
13
|
+
gem 'reek', '~> 6.0', group: :development
|
|
14
|
+
gem 'rest-client', '~> 2.1'
|
|
15
|
+
gem 'rspec', '~> 3.0', group: :development
|
|
16
|
+
gem 'rubocop', '~> 0.89.1', group: :development
|
|
17
|
+
gem 'rubocop-performance', '~> 1.7', group: :development
|
|
18
|
+
gem 'rubocop-rake', '~> 0.5.1', group: :development
|
|
19
|
+
gem 'rubocop-rspec', '~> 1.43', group: :development
|
|
20
|
+
gem 'ruby-prof', '~> 1.4', group: :development
|
|
21
|
+
gem 'simplecov', '~> 0.19.0', group: :development
|
|
22
|
+
gem 'webmock', '~> 3.8', group: :development
|
|
23
|
+
gem 'yard', '~> 0.9.25', group: :development
|
|
24
|
+
gem 'yard-struct', '~> 1.1', group: :development
|
data/Makefile
CHANGED
data/harvest-ruby-v2.gemspec
CHANGED
|
@@ -28,4 +28,6 @@ Gem::Specification.new do |spec|
|
|
|
28
28
|
# spec.bindir = 'exe'
|
|
29
29
|
# spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
30
30
|
spec.require_paths = ['lib']
|
|
31
|
+
spec.add_dependency 'activesupport', '~> 6.0'
|
|
32
|
+
spec.add_dependency 'rest-client', '~> 2.1'
|
|
31
33
|
end
|
data/lib/harvest.rb
CHANGED
|
@@ -55,6 +55,10 @@ module Harvest
|
|
|
55
55
|
].include?(meth)
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
+
def clone
|
|
59
|
+
Harvest::Client.new(@config, state: @state.clone)
|
|
60
|
+
end
|
|
61
|
+
|
|
58
62
|
# @param meth [Symbol]
|
|
59
63
|
# @return [Boolean]
|
|
60
64
|
def respond_to_missing?(meth)
|
|
@@ -74,7 +78,7 @@ module Harvest
|
|
|
74
78
|
super
|
|
75
79
|
end
|
|
76
80
|
rescue NoMethodError
|
|
77
|
-
# binding.pry
|
|
81
|
+
# require 'pry'; binding.pry
|
|
78
82
|
raise Harvest::Exceptions::BadState, "#{meth} is an invalid state change."
|
|
79
83
|
end
|
|
80
84
|
|
|
@@ -88,27 +92,29 @@ module Harvest
|
|
|
88
92
|
|
|
89
93
|
# Discover resources
|
|
90
94
|
def discover(**params)
|
|
91
|
-
@state[@state[:active]] = Harvest::Discovers
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
95
|
+
@state[@state[:active]] = Harvest::Discovers
|
|
96
|
+
.const_get(to_class_name(@state[:active]))
|
|
97
|
+
.new
|
|
98
|
+
.discover(
|
|
99
|
+
@admin_api, @client, @factory, active_user, @state, params
|
|
100
|
+
)
|
|
96
101
|
self
|
|
97
102
|
end
|
|
98
103
|
|
|
99
104
|
# Select a subset of all items depending on state
|
|
100
105
|
def select(&block)
|
|
101
|
-
@state[
|
|
106
|
+
@state[@state[:active]] = @state[@state[:active]].select(&block)
|
|
102
107
|
self
|
|
103
108
|
end
|
|
104
109
|
|
|
105
110
|
# Map block of filtered items
|
|
106
111
|
def map(&block)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
+
@state[@state[:active]].map(&block)
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Return data from the active state in the base state or filtered.
|
|
116
|
+
def data
|
|
117
|
+
@state[@state[:active]]
|
|
112
118
|
end
|
|
113
119
|
|
|
114
120
|
# Create an instance of object based on state
|
data/lib/harvest/creates.rb
CHANGED
|
@@ -37,8 +37,8 @@ module Harvest
|
|
|
37
37
|
possible_keys = %i[spent_date notes external_reference user_id]
|
|
38
38
|
payload = kwargs.map { |k, v| [k, v] if possible_keys.include?(k) }.to_h
|
|
39
39
|
payload[:user_id] ||= @active_user.id
|
|
40
|
-
payload[:task_id] = @state[:
|
|
41
|
-
payload[:project_id] = true_project(@state[:
|
|
40
|
+
payload[:task_id] = @state[:project_tasks][0].task.id
|
|
41
|
+
payload[:project_id] = true_project(@state[:projects][0]).id
|
|
42
42
|
payload
|
|
43
43
|
end
|
|
44
44
|
end
|
data/lib/harvest/discovers.rb
CHANGED
data/lib/harvest/httpclient.rb
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'pry'
|
|
4
3
|
require 'harvest/resources'
|
|
5
4
|
|
|
6
5
|
module Harvest
|
|
@@ -214,6 +213,11 @@ module Harvest
|
|
|
214
213
|
data.method("#{key}=").call(DateTime.strptime(data.method(key).call))
|
|
215
214
|
end
|
|
216
215
|
end
|
|
216
|
+
%i[spent_date].each do |key|
|
|
217
|
+
if data.members.include?(key) && !data.method(key).call.nil?
|
|
218
|
+
data.method("#{key}=").call(Date.strptime(data.method(key).call))
|
|
219
|
+
end
|
|
220
|
+
end
|
|
217
221
|
data
|
|
218
222
|
end
|
|
219
223
|
end
|
data/lib/harvest/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,15 +1,43 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: harvest-ruby-v2
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Craig Davis
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-10-
|
|
12
|
-
dependencies:
|
|
11
|
+
date: 2020-10-22 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: activesupport
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '6.0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '6.0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rest-client
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '2.1'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '2.1'
|
|
13
41
|
description: Harvest API for v2 written in Fluent API style
|
|
14
42
|
email:
|
|
15
43
|
- craig.davis@rackspace.com
|