harvest-ruby-v2 0.2.0 → 0.3.2
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/.gitignore +1 -0
- data/Gemfile +16 -31
- data/Makefile +5 -0
- data/harvest-ruby-v2.gemspec +2 -0
- data/lib/harvest.rb +21 -6
- data/lib/harvest/creates.rb +2 -2
- data/lib/harvest/discovers.rb +1 -1
- 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: d5ed655f022d6e69111845443dfe35b98532367865787c1e58300b0910d9625c
|
4
|
+
data.tar.gz: 3ed5a264fc80566e21eb2942148ed16a91adbec338315a0923b842867814c55c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71d7d18d7f7b91e887f3fb694c2cc60636b10dd607f2a2bd4b44e75e20e74fcc6dbe55d4d52f062993692fd8bbebba91b51e099fc0eb4515fa3e49cb81949aae
|
7
|
+
data.tar.gz: 3f3af9a5c64d7a0c92b532968c9a66254048b01cde403dc33bf8bfc054f228b7a335c1aec1051ad01fb0dd68552d5ead215dd45f26e2f41da308fd9b6e38b7e7
|
data/.gitignore
CHANGED
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)
|
@@ -88,20 +92,31 @@ 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
|
|
110
|
+
# Map block of filtered items
|
111
|
+
def map(&block)
|
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]]
|
118
|
+
end
|
119
|
+
|
105
120
|
# Create an instance of object based on state
|
106
121
|
def create(**kwargs)
|
107
122
|
@state[@state[:active]] = Harvest::Create.const_get(
|
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
@@ -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.2
|
4
|
+
version: 0.3.2
|
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-20 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
|