khronos 0.0.0 → 0.0.1.pre1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.travis.yml +4 -0
- data/Gemfile +18 -7
- data/Rakefile +36 -0
- data/bin/khronos +2 -1
- data/config.ru +9 -1
- data/config/environment.yml +27 -5
- data/{lib/khronos/storage/adapter/mongo/.schedule_log.rb.un~ → db/test.db} +0 -0
- data/khronos.gemspec +10 -7
- data/lib/khronos.rb +4 -7
- data/lib/khronos/config.rb +0 -2
- data/lib/khronos/logger.rb +16 -0
- data/lib/khronos/scheduler.rb +17 -3
- data/lib/khronos/server.rb +4 -31
- data/lib/khronos/server/controller.rb +31 -0
- data/lib/khronos/server/runner.rb +50 -0
- data/lib/khronos/server/scheduler.rb +110 -0
- data/lib/khronos/storage.rb +34 -13
- data/lib/khronos/storage/adapter.rb +44 -0
- data/lib/khronos/storage/adapter/activerecord.rb +39 -0
- data/lib/khronos/storage/adapter/activerecord/migrations/schedule.rb +29 -0
- data/lib/khronos/storage/adapter/activerecord/migrations/schedule_log.rb +23 -0
- data/lib/khronos/storage/adapter/activerecord/schedule.rb +24 -0
- data/lib/khronos/storage/adapter/activerecord/schedule_log.rb +14 -0
- data/lib/khronos/storage/adapter/mongoid.rb +37 -0
- data/lib/khronos/storage/adapter/{mongo → mongoid}/schedule.rb +6 -4
- data/lib/khronos/storage/adapter/{mongo → mongoid}/schedule_log.rb +3 -4
- data/lib/khronos/tasks/db.rake +25 -0
- data/lib/khronos/version.rb +1 -1
- data/server.rb +29 -0
- data/spec/functional/adapters_spec.rb +61 -0
- data/spec/functional/controller_spec.rb +11 -0
- data/spec/functional/scheduler_spec.rb +30 -0
- data/spec/integration/runner_server_spec.rb +26 -0
- data/spec/integration/scheduler_server_spec.rb +70 -0
- data/spec/spec_helper.rb +17 -1
- data/spec/support/factories.rb +12 -0
- data/spec/support/mocks.rb +23 -0
- data/{lib/khronos/storage/adapter/postgres/.schedule.rb.un~ → spec/tmp/scheduler.db} +0 -0
- data/{lib/khronos/.version.rb.swp → spec/tmp/sqlite3.db} +0 -0
- metadata +92 -55
- 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/lib/.khronos.rb.un~ +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.un~ +0 -0
- data/lib/khronos/controller.rb +0 -26
- data/lib/khronos/runner.rb +0 -11
- data/lib/khronos/storage/adapter/.client.rb.un~ +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.un~ +0 -0
- data/lib/khronos/storage/adapter/.postgres.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/.redis.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/mongo.rb +0 -13
- 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/postgres.rb +0 -15
- data/lib/khronos/storage/adapter/postgres/.schedule_log.rb.un~ +0 -0
- data/lib/khronos/storage/adapter/postgres/schedule.rb +0 -13
- data/lib/khronos/storage/adapter/postgres/schedule_log.rb +0 -13
- 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 +0 -15
- data/lib/khronos/storage/db/migrate/schedule_log.rb +0 -16
- data/spec/.spec_helper.rb.un~ +0 -0
- data/spec/functional/.client_spec.rb.un~ +0 -0
- data/spec/functional/client_spec.rb +0 -24
- data/spec/integration/.server_spec.rb.un~ +0 -0
- data/spec/integration/server_spec.rb +0 -31
data/lib/khronos/runner.rb
DELETED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,15 +0,0 @@
|
|
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
|
-
|
@@ -1,16 +0,0 @@
|
|
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
|
-
|
data/spec/.spec_helper.rb.un~
DELETED
Binary file
|
Binary file
|
@@ -1,24 +0,0 @@
|
|
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
|
@@ -1,31 +0,0 @@
|
|
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
|