khronos 0.0.0
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/.rspec +1 -0
- data/Gemfile +18 -0
- data/bin/khronos +9 -0
- data/config/.config.yml.un~ +0 -0
- data/config/.environment.yml.un~ +0 -0
- data/config/.redis.yml.un~ +0 -0
- data/config/.storage.yml.un~ +0 -0
- data/config/environment.yml +11 -0
- data/config.ru +7 -0
- data/khronos.gemspec +26 -0
- data/lib/.khronos.rb.un~ +0 -0
- data/lib/.scheduler.rb.swp +0 -0
- data/lib/.scheduler.rb.un~ +0 -0
- data/lib/khronos/.config.rb.un~ +0 -0
- data/lib/khronos/.controller.rb.un~ +0 -0
- data/lib/khronos/.runner.rb.un~ +0 -0
- data/lib/khronos/.schedule.rb.un~ +0 -0
- data/lib/khronos/.scheduler.rb.un~ +0 -0
- data/lib/khronos/.server.rb.un~ +0 -0
- data/lib/khronos/.storage.rb.un~ +0 -0
- data/lib/khronos/.task.rb.un~ +0 -0
- data/lib/khronos/.version.rb.swp +0 -0
- data/lib/khronos/.version.rb.un~ +0 -0
- data/lib/khronos/config.rb +28 -0
- data/lib/khronos/controller.rb +26 -0
- data/lib/khronos/runner.rb +11 -0
- data/lib/khronos/scheduler.rb +12 -0
- data/lib/khronos/server.rb +34 -0
- data/lib/khronos/storage/adapter/.client.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/.memcached.rb.swp +0 -0
- data/lib/khronos/storage/adapter/.memcached.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/.mongo.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/.mongodb.rb.swp +0 -0
- data/lib/khronos/storage/adapter/.mongodb.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/.postgres.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/.redis.rb.swp +0 -0
- data/lib/khronos/storage/adapter/.redis.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/mongo/.mongo.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/mongo/.schedule.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/mongo/.schedule_log.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/mongo/schedule.rb +20 -0
- data/lib/khronos/storage/adapter/mongo/schedule_log.rb +19 -0
- data/lib/khronos/storage/adapter/mongo.rb +13 -0
- data/lib/khronos/storage/adapter/postgres/.schedule.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/postgres/.schedule_log.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/postgres/schedule.rb +13 -0
- data/lib/khronos/storage/adapter/postgres/schedule_log.rb +13 -0
- data/lib/khronos/storage/adapter/postgres.rb +15 -0
- data/lib/khronos/storage/adapter.rb +0 -0
- data/lib/khronos/storage/db/migrate/.schedule.rb.un~ +0 -0
- data/lib/khronos/storage/db/migrate/.schedule_log.rb.un~ +0 -0
- data/lib/khronos/storage/db/migrate/schedule.rb +15 -0
- data/lib/khronos/storage/db/migrate/schedule_log.rb +16 -0
- data/lib/khronos/storage.rb +26 -0
- data/lib/khronos/version.rb +3 -0
- data/lib/khronos.rb +20 -0
- data/spec/.spec_helper.rb.un~ +0 -0
- data/spec/functional/.client_spec.rb.un~ +0 -0
- data/spec/functional/client_spec.rb +24 -0
- data/spec/integration/.server_spec.rb.un~ +0 -0
- data/spec/integration/server_spec.rb +31 -0
- data/spec/spec_helper.rb +18 -0
- metadata +194 -0
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
source :rubygems
|
2
|
+
gemspec
|
3
|
+
|
4
|
+
group :test do
|
5
|
+
# Used for time functions
|
6
|
+
gem 'activesupport', "~> 3.2.8"
|
7
|
+
|
8
|
+
gem 'simplecov', '= 0.6.4'
|
9
|
+
|
10
|
+
gem 'rspec'
|
11
|
+
gem 'rack-test'
|
12
|
+
gem "fakefs", "~> 0.4.0"
|
13
|
+
gem "delorean", "~> 2.0.0"
|
14
|
+
|
15
|
+
gem 'redis'
|
16
|
+
gem 'memcached'
|
17
|
+
gem 'mongo'
|
18
|
+
end
|
data/bin/khronos
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/config.ru
ADDED
data/khronos.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'khronos/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "khronos"
|
7
|
+
s.version = Khronos::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Endel Dreyer"]
|
10
|
+
s.email = ["endel@ocapi.com.br"]
|
11
|
+
s.homepage = "http://github.com/ocapi/scraper"
|
12
|
+
|
13
|
+
s.summary = "Ruby HTTP Job Scheduler Interface."
|
14
|
+
s.description = "Advanced Cron replacement for the cloud."
|
15
|
+
s.licenses = ['MIT']
|
16
|
+
|
17
|
+
s.add_dependency "sinatra", '~> 1.3.3'
|
18
|
+
s.add_dependency 'mongoid', '~> 3.0.5'
|
19
|
+
s.add_dependency 'activerecord', '~> 3.2.8'
|
20
|
+
s.add_dependency 'json', '~> 1.7.5'
|
21
|
+
s.add_dependency 'activesupport', '~> 3.2.8'
|
22
|
+
|
23
|
+
s.files = `git ls-files`.split("\n")
|
24
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
25
|
+
s.require_paths = ["lib"]
|
26
|
+
end
|
data/lib/.khronos.rb.un~
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
module Khronos
|
5
|
+
class Config
|
6
|
+
include Singleton
|
7
|
+
attr_reader :settings
|
8
|
+
|
9
|
+
def load!(file_path, env='development')
|
10
|
+
@settings = YAML.load_file(file_path)[env]
|
11
|
+
ENV['KHRONOS_STORAGE'] = @settings['storage']
|
12
|
+
end
|
13
|
+
|
14
|
+
def get(key)
|
15
|
+
@settings[key.to_s]
|
16
|
+
end
|
17
|
+
|
18
|
+
def set(key, value)
|
19
|
+
@settings[key.to_s] = value
|
20
|
+
end
|
21
|
+
|
22
|
+
def method_missing(name, *args, &block)
|
23
|
+
self.get(name.to_s)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
Khronos::Config.instance.load('config.yml')
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Khronos
|
2
|
+
class Controller
|
3
|
+
attr_reader :scheduler, :runner, :interval
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@runner = Runner.new
|
7
|
+
@scheduler = Scheduler.new
|
8
|
+
@scheduler.add_observer(@runner)
|
9
|
+
end
|
10
|
+
|
11
|
+
def start!
|
12
|
+
loop do
|
13
|
+
puts "Tick..."
|
14
|
+
|
15
|
+
if rand(500) == 1
|
16
|
+
puts "I'm so lucky!"
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
# Sleep 'interval' seconds
|
21
|
+
#
|
22
|
+
sleep(Config.instance.interval)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'sinatra'
|
2
|
+
|
3
|
+
module Khronos
|
4
|
+
class Server < Sinatra::Base
|
5
|
+
set :storage, Storage.new
|
6
|
+
|
7
|
+
# Retrieves scheduling data from a context
|
8
|
+
#
|
9
|
+
# @return [Hash] JSON
|
10
|
+
get '/' do
|
11
|
+
context = retrieve_context!
|
12
|
+
settings.storage.get(context).to_json
|
13
|
+
end
|
14
|
+
|
15
|
+
# Creates or updates a schedule from a context
|
16
|
+
#
|
17
|
+
# @param [String]
|
18
|
+
#
|
19
|
+
# @return [Hash] Context JSON status hash
|
20
|
+
put '/' do
|
21
|
+
context = retrieve_context!
|
22
|
+
puts params.inspect
|
23
|
+
context.to_json
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def retrieve_context!
|
29
|
+
halt 400, "Missing 'context' on query string." unless params[:context]
|
30
|
+
(params[:namespace].nil?) ? params[:context] : "#{params[:namespace]}:#{params[:context]}"
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Khronos
|
2
|
+
module Storage
|
3
|
+
module Adapter
|
4
|
+
|
5
|
+
module Mongo
|
6
|
+
class Schedule
|
7
|
+
include Mongoid::Document
|
8
|
+
|
9
|
+
field :namespace, :type => String
|
10
|
+
field :context, :type => String
|
11
|
+
field :at, :type => DateTime
|
12
|
+
field :recurring, :type => Integer
|
13
|
+
|
14
|
+
has_many :logs, :class_name => ScheduleLog
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
module Khronos
|
3
|
+
module Storage
|
4
|
+
module Adapter
|
5
|
+
|
6
|
+
module Mongo
|
7
|
+
class ScheduleLog
|
8
|
+
include Mongoid::Document
|
9
|
+
|
10
|
+
field :started_at, :type => DateTime
|
11
|
+
field :finished_at, :type => DateTime
|
12
|
+
|
13
|
+
belongs_to :schedule
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
Binary file
|
Binary file
|
File without changes
|
Binary file
|
Binary file
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateSchedule < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :schedules do |t|
|
4
|
+
t.string :namespace, :limit => 100, :null => true
|
5
|
+
t.string :context, :limit => 100, :null => false
|
6
|
+
t.datetime :at, :null => false
|
7
|
+
t.integer :recurring, :null => false
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.down
|
12
|
+
drop_table :schedules
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class CreateSchedule < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :schedule_logs do |t|
|
4
|
+
t.integer :schedule_id, :null => false
|
5
|
+
|
6
|
+
t.datetime :started_at, :null => false
|
7
|
+
t.datetime :finished_at, :null => true
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.down
|
12
|
+
drop_table :schedule_logs
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'delegate'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
module Khronos
|
5
|
+
class Storage < Delegator
|
6
|
+
attr_reader :uri, :adapter
|
7
|
+
|
8
|
+
def initialize(url=ENV['KHRONOS_STORAGE'])
|
9
|
+
unless url.nil?
|
10
|
+
@uri = URI.parse(url)
|
11
|
+
|
12
|
+
require "khronos/adapter/#{@uri.scheme}"
|
13
|
+
__setobj__(Adapter.const_get(@uri.scheme.capitalize).new(@uri))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def __getobj__
|
18
|
+
@adapter
|
19
|
+
end
|
20
|
+
|
21
|
+
def __setobj__(adapter)
|
22
|
+
@adapter = adapter
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
data/lib/khronos.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module Khronos
|
7
|
+
autoload :Config, 'khronos/config'
|
8
|
+
|
9
|
+
autoload :Storage, 'khronos/storage'
|
10
|
+
autoload :Server, 'khronos/server'
|
11
|
+
|
12
|
+
autoload :Scheduler, 'khronos/scheduler'
|
13
|
+
autoload :Runner, 'khronos/runner'
|
14
|
+
autoload :Controller, 'khronos/controller'
|
15
|
+
end
|
16
|
+
|
17
|
+
Khronos::Config.instance.load!('config/environment.yml', ENV['RACK_ENV'])
|
18
|
+
|
19
|
+
controller = Khronos::Controller.new
|
20
|
+
controller.start!
|
Binary file
|
Binary file
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Khronos::Storage do
|
4
|
+
subject { Khronos::Storage }
|
5
|
+
|
6
|
+
describe 'adapters' do
|
7
|
+
|
8
|
+
it "should identify redis adapter" do
|
9
|
+
client = subject.new('redis://127.0.0.1:6379/0')
|
10
|
+
client.adapter.should be_a_instance_of Khronos::Adapter::Redis
|
11
|
+
end
|
12
|
+
|
13
|
+
xit "should identify memcached adapter" do
|
14
|
+
client = subject.new('memcached://127.0.0.1:6379/test')
|
15
|
+
client.adapter.should be_a_instance_of Khronos::Adapter::Memcached
|
16
|
+
end
|
17
|
+
|
18
|
+
xit "should identify mongodb adapter" do
|
19
|
+
client = subject.new('mongodb://127.0.0.1:6379/test')
|
20
|
+
client.adapter.should be_a_instance_of Khronos::Adapter::Mongodb
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
Binary file
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Khronos::Server do
|
4
|
+
include Rack::Test::Methods
|
5
|
+
|
6
|
+
def app
|
7
|
+
Khronos::Server
|
8
|
+
end
|
9
|
+
|
10
|
+
it "shouldn't accept request without context" do
|
11
|
+
get('/')
|
12
|
+
last_response.status.should == 400
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should accept requests with no data" do
|
16
|
+
get('/', {:context => "invalid"})
|
17
|
+
last_response.status.should == 200
|
18
|
+
JSON.parse(last_response.body).should == {}
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should schedule context to 1 week" do
|
22
|
+
put('/', {
|
23
|
+
:context => "invalid",
|
24
|
+
:schedule => 1.week,
|
25
|
+
:at => '15:00',
|
26
|
+
:recurrency => 5
|
27
|
+
})
|
28
|
+
last_response.status.should == 200
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
$: << File.expand_path('lib')
|
3
|
+
|
4
|
+
ENV['RACK_ENV'] = 'test'
|
5
|
+
|
6
|
+
#
|
7
|
+
# Code coverage
|
8
|
+
#
|
9
|
+
require 'simplecov'
|
10
|
+
SimpleCov.start
|
11
|
+
|
12
|
+
require 'bundler/setup'
|
13
|
+
require 'active_support/all'
|
14
|
+
require 'rack/test'
|
15
|
+
require 'delorean'
|
16
|
+
require 'rspec'
|
17
|
+
|
18
|
+
require 'khronos'
|
metadata
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: khronos
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Endel Dreyer
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sinatra
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.3.3
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.3.3
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: mongoid
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 3.0.5
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.0.5
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: activerecord
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 3.2.8
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.2.8
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: json
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.7.5
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.7.5
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: activesupport
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 3.2.8
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 3.2.8
|
94
|
+
description: Advanced Cron replacement for the cloud.
|
95
|
+
email:
|
96
|
+
- endel@ocapi.com.br
|
97
|
+
executables: []
|
98
|
+
extensions: []
|
99
|
+
extra_rdoc_files: []
|
100
|
+
files:
|
101
|
+
- .rspec
|
102
|
+
- Gemfile
|
103
|
+
- bin/khronos
|
104
|
+
- config.ru
|
105
|
+
- config/.config.yml.un~
|
106
|
+
- config/.environment.yml.un~
|
107
|
+
- config/.redis.yml.un~
|
108
|
+
- config/.storage.yml.un~
|
109
|
+
- config/environment.yml
|
110
|
+
- khronos.gemspec
|
111
|
+
- lib/.khronos.rb.un~
|
112
|
+
- lib/.scheduler.rb.swp
|
113
|
+
- lib/.scheduler.rb.un~
|
114
|
+
- lib/khronos.rb
|
115
|
+
- lib/khronos/.config.rb.un~
|
116
|
+
- lib/khronos/.controller.rb.un~
|
117
|
+
- lib/khronos/.runner.rb.un~
|
118
|
+
- lib/khronos/.schedule.rb.un~
|
119
|
+
- lib/khronos/.scheduler.rb.un~
|
120
|
+
- lib/khronos/.server.rb.un~
|
121
|
+
- lib/khronos/.storage.rb.un~
|
122
|
+
- lib/khronos/.task.rb.un~
|
123
|
+
- lib/khronos/.version.rb.swp
|
124
|
+
- lib/khronos/.version.rb.un~
|
125
|
+
- lib/khronos/config.rb
|
126
|
+
- lib/khronos/controller.rb
|
127
|
+
- lib/khronos/runner.rb
|
128
|
+
- lib/khronos/scheduler.rb
|
129
|
+
- lib/khronos/server.rb
|
130
|
+
- lib/khronos/storage.rb
|
131
|
+
- lib/khronos/storage/adapter.rb
|
132
|
+
- lib/khronos/storage/adapter/.client.rb.un~
|
133
|
+
- lib/khronos/storage/adapter/.memcached.rb.swp
|
134
|
+
- lib/khronos/storage/adapter/.memcached.rb.un~
|
135
|
+
- lib/khronos/storage/adapter/.mongo.rb.un~
|
136
|
+
- lib/khronos/storage/adapter/.mongodb.rb.swp
|
137
|
+
- lib/khronos/storage/adapter/.mongodb.rb.un~
|
138
|
+
- lib/khronos/storage/adapter/.postgres.rb.un~
|
139
|
+
- lib/khronos/storage/adapter/.redis.rb.swp
|
140
|
+
- lib/khronos/storage/adapter/.redis.rb.un~
|
141
|
+
- lib/khronos/storage/adapter/mongo.rb
|
142
|
+
- lib/khronos/storage/adapter/mongo/.mongo.rb.un~
|
143
|
+
- lib/khronos/storage/adapter/mongo/.schedule.rb.un~
|
144
|
+
- lib/khronos/storage/adapter/mongo/.schedule_log.rb.un~
|
145
|
+
- lib/khronos/storage/adapter/mongo/schedule.rb
|
146
|
+
- lib/khronos/storage/adapter/mongo/schedule_log.rb
|
147
|
+
- lib/khronos/storage/adapter/postgres.rb
|
148
|
+
- lib/khronos/storage/adapter/postgres/.schedule.rb.un~
|
149
|
+
- lib/khronos/storage/adapter/postgres/.schedule_log.rb.un~
|
150
|
+
- lib/khronos/storage/adapter/postgres/schedule.rb
|
151
|
+
- lib/khronos/storage/adapter/postgres/schedule_log.rb
|
152
|
+
- lib/khronos/storage/db/migrate/.schedule.rb.un~
|
153
|
+
- lib/khronos/storage/db/migrate/.schedule_log.rb.un~
|
154
|
+
- lib/khronos/storage/db/migrate/schedule.rb
|
155
|
+
- lib/khronos/storage/db/migrate/schedule_log.rb
|
156
|
+
- lib/khronos/version.rb
|
157
|
+
- spec/.spec_helper.rb.un~
|
158
|
+
- spec/functional/.client_spec.rb.un~
|
159
|
+
- spec/functional/client_spec.rb
|
160
|
+
- spec/integration/.server_spec.rb.un~
|
161
|
+
- spec/integration/server_spec.rb
|
162
|
+
- spec/spec_helper.rb
|
163
|
+
homepage: http://github.com/ocapi/scraper
|
164
|
+
licenses:
|
165
|
+
- MIT
|
166
|
+
post_install_message:
|
167
|
+
rdoc_options: []
|
168
|
+
require_paths:
|
169
|
+
- lib
|
170
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
171
|
+
none: false
|
172
|
+
requirements:
|
173
|
+
- - ! '>='
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
178
|
+
requirements:
|
179
|
+
- - ! '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
requirements: []
|
183
|
+
rubyforge_project:
|
184
|
+
rubygems_version: 1.8.24
|
185
|
+
signing_key:
|
186
|
+
specification_version: 3
|
187
|
+
summary: Ruby HTTP Job Scheduler Interface.
|
188
|
+
test_files:
|
189
|
+
- spec/functional/.client_spec.rb.un~
|
190
|
+
- spec/functional/client_spec.rb
|
191
|
+
- spec/integration/.server_spec.rb.un~
|
192
|
+
- spec/integration/server_spec.rb
|
193
|
+
- spec/spec_helper.rb
|
194
|
+
has_rdoc:
|