beso 0.3.0 → 0.3.1
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.
- data/lib/beso/version.rb +1 -1
- data/lib/tasks/beso.rake +57 -0
- metadata +2 -1
data/lib/beso/version.rb
CHANGED
data/lib/tasks/beso.rake
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
namespace :beso do
|
2
|
+
|
3
|
+
desc "Run Beso jobs and upload to S3"
|
4
|
+
task :run => :environment do
|
5
|
+
|
6
|
+
raise 'Beso has no jobs to run. Please define some in the beso initializer.' if Beso.jobs.empty?
|
7
|
+
|
8
|
+
puts '==> Connecting...'
|
9
|
+
|
10
|
+
Beso.connect do |bucket|
|
11
|
+
|
12
|
+
puts '==> Connected!'
|
13
|
+
|
14
|
+
prefix = ENV[ 'BESO_PREFIX' ] || 'beso'
|
15
|
+
config = YAML.load( bucket.read 'beso.yml' ) || { }
|
16
|
+
|
17
|
+
puts '==> Config:'
|
18
|
+
puts config.inspect
|
19
|
+
|
20
|
+
Beso.jobs.each do |job|
|
21
|
+
|
22
|
+
config[ job.event ] ||= begin
|
23
|
+
case ENV[ 'BESO_ORIGIN' ]
|
24
|
+
when 'first'
|
25
|
+
job.first_timestamp
|
26
|
+
when 'now'
|
27
|
+
Time.now
|
28
|
+
else
|
29
|
+
job.last_timestamp
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
puts "==> Processing job: #{job.event.inspect} since #{config[ job.event ]}"
|
34
|
+
|
35
|
+
csv = job.to_csv :since => config[ job.event ]
|
36
|
+
|
37
|
+
if csv
|
38
|
+
filename = "#{prefix}-#{job.event}-#{config[ job.event ].to_i}.csv"
|
39
|
+
|
40
|
+
bucket.write filename, csv
|
41
|
+
|
42
|
+
puts " ==> #{filename} saved to S3"
|
43
|
+
|
44
|
+
config[ job.event ] = job.last_timestamp
|
45
|
+
|
46
|
+
puts " ==> New timestamp is #{config[ job.event ]}"
|
47
|
+
else
|
48
|
+
puts " ==> No records found since #{config[ job.event ]}. Skipping..."
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
bucket.write 'beso.yml', config.to_yaml
|
53
|
+
|
54
|
+
puts '==> Config saved. Donezo.'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beso
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -121,6 +121,7 @@ files:
|
|
121
121
|
- lib/beso/job.rb
|
122
122
|
- lib/beso/railtie.rb
|
123
123
|
- lib/beso/version.rb
|
124
|
+
- lib/tasks/beso.rake
|
124
125
|
- spec/beso/aws_spec.rb
|
125
126
|
- spec/beso/config_spec.rb
|
126
127
|
- spec/beso/job_spec.rb
|