Leave myself more breadcrumbs
This commit is contained in:
parent
20cddd116b
commit
23e4f02538
4
.rubocop.yml
Normal file
4
.rubocop.yml
Normal file
@ -0,0 +1,4 @@
|
||||
inherit_from: .rubocop_todo.yml
|
||||
|
||||
Style/Documentation:
|
||||
Enabled: false
|
7
.rubocop_todo.yml
Normal file
7
.rubocop_todo.yml
Normal file
@ -0,0 +1,7 @@
|
||||
# This configuration was generated by
|
||||
# `rubocop --auto-gen-config`
|
||||
# on 2015-10-04 18:16:18 -0400 using RuboCop version 0.34.2.
|
||||
# The point is for the user to remove these configuration records
|
||||
# one by one as the offenses are removed from the code base.
|
||||
# Note that changes in the inspected code, or installation of new
|
||||
# versions of RuboCop, may require this file to be generated again.
|
6
Gemfile
6
Gemfile
@ -1,8 +1,8 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
ruby '2.2.2' if ENV.key?('DYNO')
|
||||
ruby '2.2.3' if ENV.key?('DYNO')
|
||||
|
||||
gem 'aws-sdk', '~> 2'
|
||||
gem 'pry', group: [:development, :test]
|
||||
gem 'puma'
|
||||
gem 'pry', group: %i(development test)
|
||||
gem 'rack'
|
||||
gem 'rubocop', group: %i(development test)
|
||||
|
17
Gemfile.lock
17
Gemfile.lock
@ -1,6 +1,9 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
ast (2.1.0)
|
||||
astrolabe (1.3.1)
|
||||
parser (~> 2.2)
|
||||
aws-sdk (2.1.20)
|
||||
aws-sdk-resources (= 2.1.20)
|
||||
aws-sdk-core (2.1.20)
|
||||
@ -12,12 +15,22 @@ GEM
|
||||
multi_json (~> 1.0)
|
||||
method_source (0.8.2)
|
||||
multi_json (1.11.2)
|
||||
parser (2.2.2.6)
|
||||
ast (>= 1.1, < 3.0)
|
||||
powerpack (0.1.1)
|
||||
pry (0.10.1)
|
||||
coderay (~> 1.1.0)
|
||||
method_source (~> 0.8.1)
|
||||
slop (~> 3.4)
|
||||
puma (2.13.4)
|
||||
rack (1.6.4)
|
||||
rainbow (2.0.0)
|
||||
rubocop (0.34.2)
|
||||
astrolabe (~> 1.3)
|
||||
parser (>= 2.2.2.5, < 3.0)
|
||||
powerpack (~> 0.1)
|
||||
rainbow (>= 1.99.1, < 3.0)
|
||||
ruby-progressbar (~> 1.4)
|
||||
ruby-progressbar (1.7.5)
|
||||
slop (3.6.0)
|
||||
|
||||
PLATFORMS
|
||||
@ -26,8 +39,8 @@ PLATFORMS
|
||||
DEPENDENCIES
|
||||
aws-sdk (~> 2)
|
||||
pry
|
||||
puma
|
||||
rack
|
||||
rubocop
|
||||
|
||||
BUNDLED WITH
|
||||
1.10.6
|
||||
|
17
README.md
17
README.md
@ -2,3 +2,20 @@
|
||||
|
||||
Transforms [this](http://api.bls.gov/publicAPI/v2/timeseries/data/CUUSA210SA0)
|
||||
into [this](http://s3.amazonaws.com/meatballhat/cpi/current.csv) :tada:.
|
||||
|
||||
## usage
|
||||
|
||||
This is intended for use with Google Sheets via:
|
||||
|
||||
```
|
||||
=IMPORTDATA("http://s3.amazonaws.com/meatballhat/cpi/current.csv")
|
||||
```
|
||||
|
||||
## deployment
|
||||
|
||||
A copy of this thing is deployed to Heroku with a Heroku Scheduler addon
|
||||
configured to run the following once daily:
|
||||
|
||||
``` bash
|
||||
bundle exec ruby cpi_fetcher.rb | bundle exec ruby mini_s3put.rb
|
||||
```
|
||||
|
@ -1 +1 @@
|
||||
run lambda { |env| [301, { 'Location' => ENV['CPI_FEED_URL'] }, []] }
|
||||
run ->(*) { [301, { 'Location' => ENV['CPI_FEED_URL'] }, []] }
|
||||
|
@ -31,3 +31,64 @@ if $PROGRAM_NAME == __FILE__
|
||||
puts CPIFetcher.new.cpi
|
||||
exit 0
|
||||
end
|
||||
|
||||
__END__
|
||||
{
|
||||
"status": "REQUEST_SUCCEEDED",
|
||||
"responseTime": 36,
|
||||
"message": [],
|
||||
"Results": {
|
||||
"series": [
|
||||
{
|
||||
"seriesID": "CUUSA210SA0",
|
||||
"data": [
|
||||
{
|
||||
"year": "2015",
|
||||
"period": "S01",
|
||||
"periodName": "1st Half",
|
||||
"value": "220.381",
|
||||
"footnotes": [
|
||||
{}
|
||||
]
|
||||
},
|
||||
{
|
||||
"year": "2014",
|
||||
"period": "S02",
|
||||
"periodName": "2nd Half",
|
||||
"value": "220.891",
|
||||
"footnotes": [
|
||||
{}
|
||||
]
|
||||
},
|
||||
{
|
||||
"year": "2014",
|
||||
"period": "S01",
|
||||
"periodName": "1st Half",
|
||||
"value": "220.352",
|
||||
"footnotes": [
|
||||
{}
|
||||
]
|
||||
},
|
||||
{
|
||||
"year": "2013",
|
||||
"period": "S02",
|
||||
"periodName": "2nd Half",
|
||||
"value": "217.983",
|
||||
"footnotes": [
|
||||
{}
|
||||
]
|
||||
},
|
||||
{
|
||||
"year": "2013",
|
||||
"period": "S01",
|
||||
"periodName": "1st Half",
|
||||
"value": "216.941",
|
||||
"footnotes": [
|
||||
{}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,17 @@
|
||||
require 'aws-sdk'
|
||||
|
||||
bucket = ENV.fetch('CPI_FEED_AWS_BUCKET')
|
||||
key = ARGV.first || ENV.fetch('CPI_FEED_AWS_KEY')
|
||||
def main
|
||||
bucket = ENV.fetch('CPI_FEED_AWS_BUCKET')
|
||||
key = ARGV.first || ENV.fetch('CPI_FEED_AWS_KEY')
|
||||
|
||||
puts Aws::S3::Resource.new.bucket(bucket).object(key).put(
|
||||
body: $stdin.read
|
||||
)
|
||||
puts Aws::S3::Resource.new.bucket(bucket).object(key).put(
|
||||
body: $stdin.read
|
||||
)
|
||||
|
||||
puts Aws::S3::Client.new.put_object_acl(
|
||||
bucket: bucket, key: key, acl: 'public-read'
|
||||
)
|
||||
puts Aws::S3::Client.new.put_object_acl(
|
||||
bucket: bucket, key: key, acl: 'public-read'
|
||||
)
|
||||
0
|
||||
end
|
||||
|
||||
exit(main) if $PROGRAM_NAME == __FILE__
|
||||
|
Loading…
Reference in New Issue
Block a user