harvested2 5.0.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.
Files changed (106) hide show
  1. checksums.yaml +7 -0
  2. data/.document +3 -0
  3. data/.gitignore +35 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +34 -0
  6. data/.ruby-version +1 -0
  7. data/.travis.yml +12 -0
  8. data/Gemfile +20 -0
  9. data/HISTORY.md +118 -0
  10. data/MIT-LICENSE +21 -0
  11. data/README.md +66 -0
  12. data/Rakefile +24 -0
  13. data/harvested2.gemspec +30 -0
  14. data/lib/ext/array.rb +52 -0
  15. data/lib/ext/date.rb +9 -0
  16. data/lib/ext/hash.rb +17 -0
  17. data/lib/ext/time.rb +5 -0
  18. data/lib/harvest/account.rb +13 -0
  19. data/lib/harvest/api/account.rb +25 -0
  20. data/lib/harvest/api/base.rb +72 -0
  21. data/lib/harvest/api/clients.rb +10 -0
  22. data/lib/harvest/api/company.rb +12 -0
  23. data/lib/harvest/api/contacts.rb +9 -0
  24. data/lib/harvest/api/expense_categories.rb +9 -0
  25. data/lib/harvest/api/expenses.rb +26 -0
  26. data/lib/harvest/api/invoice_categories.rb +9 -0
  27. data/lib/harvest/api/invoice_messages.rb +86 -0
  28. data/lib/harvest/api/invoice_payments.rb +41 -0
  29. data/lib/harvest/api/invoices.rb +9 -0
  30. data/lib/harvest/api/projects.rb +9 -0
  31. data/lib/harvest/api/task_assignments.rb +75 -0
  32. data/lib/harvest/api/tasks.rb +9 -0
  33. data/lib/harvest/api/time_entry.rb +19 -0
  34. data/lib/harvest/api/user_assignments.rb +75 -0
  35. data/lib/harvest/api/users.rb +10 -0
  36. data/lib/harvest/base.rb +333 -0
  37. data/lib/harvest/behavior/activatable.rb +31 -0
  38. data/lib/harvest/behavior/crud.rb +80 -0
  39. data/lib/harvest/client.rb +23 -0
  40. data/lib/harvest/company.rb +8 -0
  41. data/lib/harvest/contact.rb +20 -0
  42. data/lib/harvest/credentials.rb +34 -0
  43. data/lib/harvest/errors.rb +27 -0
  44. data/lib/harvest/expense.rb +54 -0
  45. data/lib/harvest/expense_category.rb +10 -0
  46. data/lib/harvest/hardy_client.rb +80 -0
  47. data/lib/harvest/invoice.rb +75 -0
  48. data/lib/harvest/invoice_category.rb +8 -0
  49. data/lib/harvest/invoice_message.rb +8 -0
  50. data/lib/harvest/invoice_payment.rb +8 -0
  51. data/lib/harvest/line_item.rb +21 -0
  52. data/lib/harvest/model.rb +133 -0
  53. data/lib/harvest/project.rb +41 -0
  54. data/lib/harvest/receipt.rb +12 -0
  55. data/lib/harvest/task.rb +21 -0
  56. data/lib/harvest/task_assignment.rb +27 -0
  57. data/lib/harvest/time_entry.rb +57 -0
  58. data/lib/harvest/timezones.rb +130 -0
  59. data/lib/harvest/user.rb +58 -0
  60. data/lib/harvest/user_assignment.rb +27 -0
  61. data/lib/harvest/version.rb +3 -0
  62. data/lib/harvested2.rb +96 -0
  63. data/spec/factories/client.rb +14 -0
  64. data/spec/factories/contact.rb +8 -0
  65. data/spec/factories/expense.rb +10 -0
  66. data/spec/factories/expenses_category.rb +7 -0
  67. data/spec/factories/invoice.rb +25 -0
  68. data/spec/factories/invoice_category.rb +5 -0
  69. data/spec/factories/invoice_message.rb +9 -0
  70. data/spec/factories/invoice_payment.rb +7 -0
  71. data/spec/factories/line_item.rb +9 -0
  72. data/spec/factories/project.rb +15 -0
  73. data/spec/factories/task.rb +8 -0
  74. data/spec/factories/task_assignment.rb +8 -0
  75. data/spec/factories/time_entry.rb +13 -0
  76. data/spec/factories/user.rb +19 -0
  77. data/spec/factories/user_assigment.rb +7 -0
  78. data/spec/functional/clients_spec.rb +105 -0
  79. data/spec/functional/errors_spec.rb +42 -0
  80. data/spec/functional/expenses_spec.rb +97 -0
  81. data/spec/functional/invoice_messages_spec.rb +48 -0
  82. data/spec/functional/invoice_payments_spec.rb +51 -0
  83. data/spec/functional/invoice_spec.rb +138 -0
  84. data/spec/functional/project_spec.rb +76 -0
  85. data/spec/functional/tasks_spec.rb +119 -0
  86. data/spec/functional/time_entries_spec.rb +87 -0
  87. data/spec/functional/users_spec.rb +72 -0
  88. data/spec/harvest/base_spec.rb +10 -0
  89. data/spec/harvest/basic_auth_credentials_spec.rb +12 -0
  90. data/spec/harvest/expense_category_spec.rb +5 -0
  91. data/spec/harvest/expense_spec.rb +18 -0
  92. data/spec/harvest/invoice_message_spec.rb +5 -0
  93. data/spec/harvest/invoice_payment_spec.rb +5 -0
  94. data/spec/harvest/invoice_spec.rb +5 -0
  95. data/spec/harvest/oauth_credentials_spec.rb +11 -0
  96. data/spec/harvest/project_spec.rb +5 -0
  97. data/spec/harvest/task_assignment_spec.rb +5 -0
  98. data/spec/harvest/task_spec.rb +5 -0
  99. data/spec/harvest/time_entry_spec.rb +23 -0
  100. data/spec/harvest/user_assignment_spec.rb +5 -0
  101. data/spec/harvest/user_spec.rb +34 -0
  102. data/spec/spec_helper.rb +22 -0
  103. data/spec/support/factory_bot.rb +5 -0
  104. data/spec/support/harvested_helpers.rb +28 -0
  105. data/spec/support/json_examples.rb +9 -0
  106. metadata +238 -0
@@ -0,0 +1,22 @@
1
+ require 'harvested2'
2
+ require 'webmock/rspec'
3
+ require 'byebug'
4
+ require 'pry'
5
+
6
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each do |file|
7
+ require file
8
+ end
9
+
10
+ FactoryBot.find_definitions
11
+
12
+ RSpec.configure do |config|
13
+ config.include HarvestedHelpers
14
+
15
+ config.before(:suite) do
16
+ WebMock.allow_net_connect!
17
+ end
18
+
19
+ config.before(:each) do
20
+ WebMock.allow_net_connect!
21
+ end
22
+ end
@@ -0,0 +1,5 @@
1
+ require 'factory_bot'
2
+
3
+ RSpec.configure do |config|
4
+ config.include FactoryBot::Syntax::Methods
5
+ end
@@ -0,0 +1,28 @@
1
+ module HarvestedHelpers
2
+ def self.clean_remote
3
+ harvest = simple_harvest
4
+ harvest.users.all.each do |u|
5
+ harvest.reports.expenses_by_user(u, Time.utc(2000, 1, 1),
6
+ Time.utc(2014, 6, 21)).each do |expense|
7
+ harvest.expenses.delete(expense, u)
8
+ end
9
+
10
+ harvest.reports.time_by_user(u, Time.utc(2000, 1, 1),
11
+ Time.utc(2014, 6, 21)).each do |time|
12
+ harvest.time.delete(time, u)
13
+ end
14
+ end
15
+
16
+ # we store expenses on this date in the tests
17
+ harvest.expenses.all(Time.utc(2009, 12, 28)).each do |e|
18
+ harvest.expenses.delete(e)
19
+ end
20
+
21
+ %w(expense_categories time projects invoices contacts
22
+ clients tasks).each do |collection|
23
+ harvest.send(collection).all.each do |m|
24
+ harvest.send(collection).delete(m)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,9 @@
1
+ shared_examples_for 'a json sanitizer' do |keys|
2
+ keys.each do |key|
3
+ it "doesn't include '#{key}' when serializing to json" do
4
+ instance = described_class.new
5
+ instance[key] = 10
6
+ expect(instance.as_json.keys).not_to include(key)
7
+ end
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,238 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: harvested2
3
+ version: !ruby/object:Gem::Version
4
+ version: 5.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Zach Moazeni
8
+ - Jonathan Tapia
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2018-06-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httparty
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: hashie
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: json
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ description: Harvested wraps the Harvest API concisely without the use of Rails dependencies.
57
+ More information about the Harvest API can be found on their website (http://www.getharvest.com/api).
58
+ For support hit up the Mailing List (http://groups.google.com/group/harvested)
59
+ email:
60
+ - zach.moazeni@gmail.com
61
+ - jonathan.tapia@magmalabs.io
62
+ executables: []
63
+ extensions: []
64
+ extra_rdoc_files: []
65
+ files:
66
+ - ".document"
67
+ - ".gitignore"
68
+ - ".rspec"
69
+ - ".rubocop.yml"
70
+ - ".ruby-version"
71
+ - ".travis.yml"
72
+ - Gemfile
73
+ - HISTORY.md
74
+ - MIT-LICENSE
75
+ - README.md
76
+ - Rakefile
77
+ - harvested2.gemspec
78
+ - lib/ext/array.rb
79
+ - lib/ext/date.rb
80
+ - lib/ext/hash.rb
81
+ - lib/ext/time.rb
82
+ - lib/harvest/account.rb
83
+ - lib/harvest/api/account.rb
84
+ - lib/harvest/api/base.rb
85
+ - lib/harvest/api/clients.rb
86
+ - lib/harvest/api/company.rb
87
+ - lib/harvest/api/contacts.rb
88
+ - lib/harvest/api/expense_categories.rb
89
+ - lib/harvest/api/expenses.rb
90
+ - lib/harvest/api/invoice_categories.rb
91
+ - lib/harvest/api/invoice_messages.rb
92
+ - lib/harvest/api/invoice_payments.rb
93
+ - lib/harvest/api/invoices.rb
94
+ - lib/harvest/api/projects.rb
95
+ - lib/harvest/api/task_assignments.rb
96
+ - lib/harvest/api/tasks.rb
97
+ - lib/harvest/api/time_entry.rb
98
+ - lib/harvest/api/user_assignments.rb
99
+ - lib/harvest/api/users.rb
100
+ - lib/harvest/base.rb
101
+ - lib/harvest/behavior/activatable.rb
102
+ - lib/harvest/behavior/crud.rb
103
+ - lib/harvest/client.rb
104
+ - lib/harvest/company.rb
105
+ - lib/harvest/contact.rb
106
+ - lib/harvest/credentials.rb
107
+ - lib/harvest/errors.rb
108
+ - lib/harvest/expense.rb
109
+ - lib/harvest/expense_category.rb
110
+ - lib/harvest/hardy_client.rb
111
+ - lib/harvest/invoice.rb
112
+ - lib/harvest/invoice_category.rb
113
+ - lib/harvest/invoice_message.rb
114
+ - lib/harvest/invoice_payment.rb
115
+ - lib/harvest/line_item.rb
116
+ - lib/harvest/model.rb
117
+ - lib/harvest/project.rb
118
+ - lib/harvest/receipt.rb
119
+ - lib/harvest/task.rb
120
+ - lib/harvest/task_assignment.rb
121
+ - lib/harvest/time_entry.rb
122
+ - lib/harvest/timezones.rb
123
+ - lib/harvest/user.rb
124
+ - lib/harvest/user_assignment.rb
125
+ - lib/harvest/version.rb
126
+ - lib/harvested2.rb
127
+ - spec/factories/client.rb
128
+ - spec/factories/contact.rb
129
+ - spec/factories/expense.rb
130
+ - spec/factories/expenses_category.rb
131
+ - spec/factories/invoice.rb
132
+ - spec/factories/invoice_category.rb
133
+ - spec/factories/invoice_message.rb
134
+ - spec/factories/invoice_payment.rb
135
+ - spec/factories/line_item.rb
136
+ - spec/factories/project.rb
137
+ - spec/factories/task.rb
138
+ - spec/factories/task_assignment.rb
139
+ - spec/factories/time_entry.rb
140
+ - spec/factories/user.rb
141
+ - spec/factories/user_assigment.rb
142
+ - spec/functional/clients_spec.rb
143
+ - spec/functional/errors_spec.rb
144
+ - spec/functional/expenses_spec.rb
145
+ - spec/functional/invoice_messages_spec.rb
146
+ - spec/functional/invoice_payments_spec.rb
147
+ - spec/functional/invoice_spec.rb
148
+ - spec/functional/project_spec.rb
149
+ - spec/functional/tasks_spec.rb
150
+ - spec/functional/time_entries_spec.rb
151
+ - spec/functional/users_spec.rb
152
+ - spec/harvest/base_spec.rb
153
+ - spec/harvest/basic_auth_credentials_spec.rb
154
+ - spec/harvest/expense_category_spec.rb
155
+ - spec/harvest/expense_spec.rb
156
+ - spec/harvest/invoice_message_spec.rb
157
+ - spec/harvest/invoice_payment_spec.rb
158
+ - spec/harvest/invoice_spec.rb
159
+ - spec/harvest/oauth_credentials_spec.rb
160
+ - spec/harvest/project_spec.rb
161
+ - spec/harvest/task_assignment_spec.rb
162
+ - spec/harvest/task_spec.rb
163
+ - spec/harvest/time_entry_spec.rb
164
+ - spec/harvest/user_assignment_spec.rb
165
+ - spec/harvest/user_spec.rb
166
+ - spec/spec_helper.rb
167
+ - spec/support/factory_bot.rb
168
+ - spec/support/harvested_helpers.rb
169
+ - spec/support/json_examples.rb
170
+ homepage: http://github.com/jtapia/harvested2
171
+ licenses:
172
+ - MIT
173
+ metadata: {}
174
+ post_install_message:
175
+ rdoc_options: []
176
+ require_paths:
177
+ - lib
178
+ required_ruby_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: '2.2'
183
+ required_rubygems_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: 1.3.6
188
+ requirements:
189
+ - none
190
+ rubyforge_project:
191
+ rubygems_version: 2.4.5.5
192
+ signing_key:
193
+ specification_version: 4
194
+ summary: A Ruby Wrapper for the Harvest API http://www.getharvest.com/ V2
195
+ test_files:
196
+ - spec/factories/client.rb
197
+ - spec/factories/contact.rb
198
+ - spec/factories/expense.rb
199
+ - spec/factories/expenses_category.rb
200
+ - spec/factories/invoice.rb
201
+ - spec/factories/invoice_category.rb
202
+ - spec/factories/invoice_message.rb
203
+ - spec/factories/invoice_payment.rb
204
+ - spec/factories/line_item.rb
205
+ - spec/factories/project.rb
206
+ - spec/factories/task.rb
207
+ - spec/factories/task_assignment.rb
208
+ - spec/factories/time_entry.rb
209
+ - spec/factories/user.rb
210
+ - spec/factories/user_assigment.rb
211
+ - spec/functional/clients_spec.rb
212
+ - spec/functional/errors_spec.rb
213
+ - spec/functional/expenses_spec.rb
214
+ - spec/functional/invoice_messages_spec.rb
215
+ - spec/functional/invoice_payments_spec.rb
216
+ - spec/functional/invoice_spec.rb
217
+ - spec/functional/project_spec.rb
218
+ - spec/functional/tasks_spec.rb
219
+ - spec/functional/time_entries_spec.rb
220
+ - spec/functional/users_spec.rb
221
+ - spec/harvest/base_spec.rb
222
+ - spec/harvest/basic_auth_credentials_spec.rb
223
+ - spec/harvest/expense_category_spec.rb
224
+ - spec/harvest/expense_spec.rb
225
+ - spec/harvest/invoice_message_spec.rb
226
+ - spec/harvest/invoice_payment_spec.rb
227
+ - spec/harvest/invoice_spec.rb
228
+ - spec/harvest/oauth_credentials_spec.rb
229
+ - spec/harvest/project_spec.rb
230
+ - spec/harvest/task_assignment_spec.rb
231
+ - spec/harvest/task_spec.rb
232
+ - spec/harvest/time_entry_spec.rb
233
+ - spec/harvest/user_assignment_spec.rb
234
+ - spec/harvest/user_spec.rb
235
+ - spec/spec_helper.rb
236
+ - spec/support/factory_bot.rb
237
+ - spec/support/harvested_helpers.rb
238
+ - spec/support/json_examples.rb