td-querier 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0d1176b251baab0c0f3a784b4d5f6a001c39ad79
4
+ data.tar.gz: 7550cc7690dbdc93063c45b82740c74ee790b436
5
+ SHA512:
6
+ metadata.gz: d1f94f428a1762f91e173b631c04ce785553c3ff4e392efa74214116dd69f3f754cfbf627ba1f3838781a7c0f8009e399507fcb63a68e5e1c7e3e8c37eddccae
7
+ data.tar.gz: 32aa11b08e50eb547c3879c07378535154a80733afd55cd9944359b6c5c86a5c9a062887298360aa5faf2cf7ff9e7491d86222f350b1669e59817cffea6793f5
data/AUTHORS ADDED
@@ -0,0 +1,3 @@
1
+ Carlos Donderis
2
+ Oskar Díaz
3
+
data/ChangeLog ADDED
File without changes
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # Treasure Data and Sidekiq awesomeness
2
+
3
+ ##Installation
4
+
5
+ $ gem install td-querier
6
+
7
+ ##Configuration
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+
2
+ require 'bundler'
3
+ Bundler::GemHelper.install_tasks
4
+
5
+ require 'rake/testtask'
6
+
7
+ Rake::TestTask.new(:test) do |test|
8
+ test.libs << 'lib' << 'test'
9
+ test.test_files = FileList['test/*.rb']
10
+ test.verbose = true
11
+ end
12
+
13
+ task :default => [:build]
14
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
data/lib/td/querier.rb ADDED
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'td'
3
+ require 'td-client'
4
+ require 'sidekiq'
5
+
6
+ class Querier
7
+ include Sidekiq::Worker
8
+
9
+ def initialize(api_key="")
10
+ @key = api_key
11
+ end
12
+
13
+ def query(database, query, redirect_to, opts, priority=1, reschedule_time=5.minutes)
14
+ client = TreasureData::Client.new(@key)
15
+ job = client.query(database, query, redirect_to, priority)
16
+ Querier.perform_async(@key, job.job_id, opts, reschedule_time)
17
+ end
18
+
19
+ def perform(api_key, job_id, opts, reschedule_time=5.minutes)
20
+ client = TreasureData::Client.new(api_key)
21
+ job = client.job(job_id)
22
+ #reschedule if the job is not finished
23
+ return Querier.perform_in(reschedule_time, api_key, job_id, opts, reschedule_time) unless job.finished?
24
+
25
+ if opts
26
+ klass = opts['klass']
27
+ meth = opts['meth']
28
+ res = opts['results']
29
+ results = (res == "true" ? job.results : nil)
30
+ class_eval(klass).send(meth.to_s, results)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+ $:.push File.expand_path('../lib', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = "td-querier"
6
+ gem.description = "A client to perform and retry queries against treasure data using sidekiq as background engine"
7
+ gem.homepage = "https://github.com/CaDs/td-querier"
8
+ gem.summary = gem.description
9
+ gem.version = File.read("VERSION").strip
10
+ gem.authors = ["Carlos Donderis"]
11
+ gem.email = "cdonderis@gmail.com"
12
+ gem.has_rdoc = false
13
+ #gem.platform = Gem::Platform::RUBY
14
+ gem.files = `git ls-files`.split("\n")
15
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ gem.require_paths = ['lib']
18
+
19
+ gem.add_dependency "sidekiq", "~> 2.12.0"
20
+ gem.add_dependency "td", "~> 0.10.77"
21
+ gem.add_development_dependency "rake", ">= 0.9.2"
22
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: td-querier
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Carlos Donderis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-05-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sidekiq
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 2.12.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 2.12.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: td
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.10.77
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 0.10.77
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 0.9.2
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.9.2
55
+ description: A client to perform and retry queries against treasure data using sidekiq
56
+ as background engine
57
+ email: cdonderis@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - AUTHORS
63
+ - ChangeLog
64
+ - Gemfile
65
+ - README.md
66
+ - Rakefile
67
+ - VERSION
68
+ - lib/td/querier.rb
69
+ - td-querier.gemspec
70
+ homepage: https://github.com/CaDs/td-querier
71
+ licenses: []
72
+ metadata: {}
73
+ post_install_message:
74
+ rdoc_options: []
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ requirements: []
88
+ rubyforge_project:
89
+ rubygems_version: 2.0.0
90
+ signing_key:
91
+ specification_version: 4
92
+ summary: A client to perform and retry queries against treasure data using sidekiq
93
+ as background engine
94
+ test_files: []