adp-downloader 0.2.1 → 0.2.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/CHANGELOG.md +64 -0
- data/Gemfile.lock +1 -1
- data/bin/adp-downloader +2 -1
- data/lib/adp-downloader.rb +10 -26
- data/lib/adp-downloader/config.rb +27 -20
- data/lib/adp-downloader/downloader.rb +3 -4
- data/lib/adp-downloader/http_client.rb +0 -2
- data/lib/adp-downloader/runner.rb +41 -0
- data/lib/adp-downloader/statement/pay_statement.rb +0 -2
- data/lib/adp-downloader/statement/tax_statement.rb +0 -2
- data/lib/adp-downloader/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e22d6a2d101c5fd813316d6eb144e30357be097
|
4
|
+
data.tar.gz: a94fa0e54e3f023fb695d5dcdf7791ed73a81c04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fe857e5187102d7e8d04061250b8b96ff9786453435f982b73b6677b84be04882e0b75e060eeeb87bfcb4fa237ce7a8fb2bd98c3963c9edd0698ea12e9d90d3
|
7
|
+
data.tar.gz: 4d3973c4d8db0f06721345fb9d75f05d591703201dd19b52655adaa844de243560ca8c04eba2d2af723143ae8c7e04c01c9165f8fc689f7c9a30b2cf66319742
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
Changelog
|
2
|
+
=========
|
3
|
+
|
4
|
+
## Unreleased
|
5
|
+
|
6
|
+
* -
|
7
|
+
|
8
|
+
|
9
|
+
## 0.2.1
|
10
|
+
|
11
|
+
* [88d8f76][] Add command line options to prevent output
|
12
|
+
|
13
|
+
[88d8f76]: ../../commit/88d8f76
|
14
|
+
|
15
|
+
|
16
|
+
## 0.2.1
|
17
|
+
|
18
|
+
* [#3][] Fixed bug with Tempfiles in older versions of ruby
|
19
|
+
|
20
|
+
[#3]: ../../issues/3
|
21
|
+
|
22
|
+
|
23
|
+
## 0.2.0
|
24
|
+
|
25
|
+
### Breaking changes:
|
26
|
+
|
27
|
+
* [481f738][] Use PDF ID instead of JSON ID for file names
|
28
|
+
* [8af8c55][] Add adjustment suffix to pay adjustment PDF files
|
29
|
+
* [5fb1fb9][] Organize downloaded files by year
|
30
|
+
|
31
|
+
[481f738]: ../../commit/481f738
|
32
|
+
[8af8c55]: ../../commit/8af8c55
|
33
|
+
[5fb1fb9]: ../../commit/5fb1fb9
|
34
|
+
|
35
|
+
**WARNING**: Do not run `adp-downloader` in the same directory as `v.0.1.4`.
|
36
|
+
Either move all old statements to a different directory or run it in a new
|
37
|
+
directory. Once all statements are downloaded, you can manually move
|
38
|
+
previously downloaded old statements (those no longer available through the
|
39
|
+
API) into the correct new directories. The names of older statements will
|
40
|
+
still have the old ID but since they're no longer available through the API,
|
41
|
+
this should not cause any problems.
|
42
|
+
|
43
|
+
### Other changes:
|
44
|
+
|
45
|
+
* [812fbfc][] Keep simple statement JSON info along with detailed JSON
|
46
|
+
* [481f738][] Download pay and tax statements
|
47
|
+
* [fdc5494][] Download pay statement JSON only when available
|
48
|
+
|
49
|
+
[812fbfc]: ../../commit/812fbfc
|
50
|
+
[481f738]: ../../commit/481f738
|
51
|
+
[fdc5494]: ../../commit/fdc5494
|
52
|
+
|
53
|
+
|
54
|
+
## 0.1.4
|
55
|
+
|
56
|
+
* [75bcbf9][] Use `.netrc` for storing credentials
|
57
|
+
|
58
|
+
[75bcbf9]: ../../commit/75bcbf9
|
59
|
+
|
60
|
+
|
61
|
+
## 0.1.3 [YANKED]
|
62
|
+
## 0.1.2 [YANKED]
|
63
|
+
## 0.1.1 [YANKED]
|
64
|
+
## 0.1.0 [YANKED]
|
data/Gemfile.lock
CHANGED
data/bin/adp-downloader
CHANGED
data/lib/adp-downloader.rb
CHANGED
@@ -1,26 +1,10 @@
|
|
1
|
-
require "adp-downloader/
|
2
|
-
require "adp-downloader/
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
path = log_exception_to_file(e)
|
12
|
-
puts "An error ocurred: #{e}"
|
13
|
-
puts "Details were logged to #{path}"
|
14
|
-
exit 1
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
def self.log_exception_to_file(e)
|
20
|
-
file = Tempfile.new("adp-downloader-")
|
21
|
-
file.puts(e)
|
22
|
-
file.puts(e.backtrace)
|
23
|
-
FileUtils.mv file.path, File.join("", "tmp")
|
24
|
-
File.join("", "tmp", File.basename(file.path))
|
25
|
-
end
|
26
|
-
end
|
1
|
+
require "adp-downloader/config.rb"
|
2
|
+
require "adp-downloader/constants.rb"
|
3
|
+
require "adp-downloader/downloader.rb"
|
4
|
+
require "adp-downloader/http_client.rb"
|
5
|
+
require "adp-downloader/runner"
|
6
|
+
require "adp-downloader/runner.rb"
|
7
|
+
require "adp-downloader/statement/statement.rb"
|
8
|
+
require "adp-downloader/statement/pay_statement.rb"
|
9
|
+
require "adp-downloader/statement/tax_statement.rb"
|
10
|
+
require "adp-downloader/version.rb"
|
@@ -1,31 +1,38 @@
|
|
1
1
|
require "io/console"
|
2
2
|
require "netrc"
|
3
|
-
require "adp-downloader/constants"
|
4
3
|
|
5
4
|
module ADPDownloader
|
6
5
|
class Config
|
7
|
-
|
8
|
-
|
9
|
-
end
|
6
|
+
class << self
|
7
|
+
attr_writer :quiet
|
10
8
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
end
|
9
|
+
def credentials
|
10
|
+
from_netrc or from_stdin
|
11
|
+
end
|
15
12
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
def quiet?
|
14
|
+
@quiet
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
def creds(username, password)
|
19
|
+
{ username: username, password: password }
|
20
|
+
end
|
21
|
+
|
22
|
+
def from_netrc
|
23
|
+
n = Netrc.read
|
24
|
+
username, password = n[MACHINE_NAME]
|
25
|
+
creds(username, password) if username and password
|
26
|
+
end
|
21
27
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
28
|
+
def from_stdin
|
29
|
+
print "Username: "
|
30
|
+
username = STDIN.gets.chomp
|
31
|
+
print "Password: "
|
32
|
+
password = STDIN.noecho(&:gets).chomp
|
33
|
+
puts
|
34
|
+
creds(username, password)
|
35
|
+
end
|
29
36
|
end
|
30
37
|
end
|
31
38
|
end
|
@@ -1,8 +1,5 @@
|
|
1
1
|
require "json"
|
2
2
|
require "parallel"
|
3
|
-
require "adp-downloader/constants"
|
4
|
-
require "adp-downloader/statement/pay_statement"
|
5
|
-
require "adp-downloader/statement/tax_statement"
|
6
3
|
|
7
4
|
module ADPDownloader
|
8
5
|
class Downloader
|
@@ -40,18 +37,20 @@ module ADPDownloader
|
|
40
37
|
|
41
38
|
def download_or_skip_statement(statement)
|
42
39
|
if not downloaded? statement
|
43
|
-
puts "Saving #{statement.date} - #{statement.id}..."
|
40
|
+
puts "Saving #{statement.date} - #{statement.id}..." unless Config.quiet?
|
44
41
|
download_statement_files(statement)
|
45
42
|
end
|
46
43
|
end
|
47
44
|
|
48
45
|
def get_all_pay_statements
|
46
|
+
puts "Downloading all pay statements..." unless Config.quiet?
|
49
47
|
Parallel.each(pay_statements) do |statement|
|
50
48
|
download_or_skip_statement(statement)
|
51
49
|
end
|
52
50
|
end
|
53
51
|
|
54
52
|
def get_all_tax_statements
|
53
|
+
puts "Downloading all tax statements..." unless Config.quiet?
|
55
54
|
Parallel.each(tax_statements) do |statement|
|
56
55
|
download_or_skip_statement(statement)
|
57
56
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require "tempfile"
|
2
|
+
require "optparse"
|
3
|
+
|
4
|
+
module ADPDownloader
|
5
|
+
class Runner
|
6
|
+
def initialize(arguments)
|
7
|
+
@arguments = arguments
|
8
|
+
end
|
9
|
+
|
10
|
+
def run
|
11
|
+
parse_options
|
12
|
+
begin
|
13
|
+
downloader = Downloader.new(HttpClient.new)
|
14
|
+
downloader.get_all_tax_statements
|
15
|
+
downloader.get_all_pay_statements
|
16
|
+
rescue Exception => e
|
17
|
+
path = log_exception_to_file(e)
|
18
|
+
puts "An error ocurred: #{e}"
|
19
|
+
puts "Details were logged to #{path}"
|
20
|
+
exit 1
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def log_exception_to_file(e)
|
26
|
+
file = Tempfile.new("adp-downloader-")
|
27
|
+
file.puts(e)
|
28
|
+
file.puts(e.backtrace)
|
29
|
+
FileUtils.mv file.path, File.join("", "tmp")
|
30
|
+
File.join("", "tmp", File.basename(file.path))
|
31
|
+
end
|
32
|
+
|
33
|
+
def parse_options
|
34
|
+
options = OptionParser.new
|
35
|
+
options.banner = "Usage: adp-downloader [options]"
|
36
|
+
options.on("-v", "--quiet", "Only display errors") { Config.quiet = true }
|
37
|
+
options.on("-h", "--help", "Show this message") { puts(options); exit }
|
38
|
+
options.parse!(@arguments)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adp-downloader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anderson Mesquita (andersonvom)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mechanize
|
@@ -103,6 +103,7 @@ extensions: []
|
|
103
103
|
extra_rdoc_files: []
|
104
104
|
files:
|
105
105
|
- ".gitignore"
|
106
|
+
- CHANGELOG.md
|
106
107
|
- Gemfile
|
107
108
|
- Gemfile.lock
|
108
109
|
- LICENSE.md
|
@@ -116,6 +117,7 @@ files:
|
|
116
117
|
- lib/adp-downloader/constants.rb
|
117
118
|
- lib/adp-downloader/downloader.rb
|
118
119
|
- lib/adp-downloader/http_client.rb
|
120
|
+
- lib/adp-downloader/runner.rb
|
119
121
|
- lib/adp-downloader/statement/pay_statement.rb
|
120
122
|
- lib/adp-downloader/statement/statement.rb
|
121
123
|
- lib/adp-downloader/statement/tax_statement.rb
|