chronatog-client 0.1.0 → 0.2.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.
@@ -4,13 +4,48 @@ module Chronatog
4
4
  module Client
5
5
 
6
6
  def self.setup!(service_url, auth_username, auth_password)
7
- @connection = Connection.new(service_url, auth_username, auth_password)
7
+ if service_url == "in-memory"
8
+ @connection = Fake.new
9
+ else
10
+ @connection = Connection.new(service_url, auth_username, auth_password)
11
+ end
8
12
  end
9
13
 
10
14
  def self.connection
11
15
  @connection or raise "connection not setup! yet"
12
16
  end
13
17
 
18
+ class Fake
19
+ def create_job(callback_url, schedule)
20
+ job_url = "/jobs/#{Object.new.object_id}"
21
+ created = {'callback_url' => callback_url, 'schedule' => schedule, 'url' => job_url }
22
+ jobs[job_url] = created
23
+ JSON::parse(created.to_json)
24
+ end
25
+
26
+ def destroy_job(job_url)
27
+ jobs.delete(job_url)
28
+ end
29
+
30
+ def list_jobs
31
+ JSON::parse(jobs.values.to_json)
32
+ end
33
+
34
+ def get_job(job_url)
35
+ JSON::parse(jobs[job_url].to_json)
36
+ end
37
+
38
+ private
39
+
40
+ def jobs
41
+ self.class.jobs
42
+ end
43
+ def self.jobs
44
+ @jobs ||= {}
45
+ end
46
+
47
+ end
48
+
14
49
  class Connection
15
50
  def initialize(service_url, auth_username, auth_password)
16
51
  @service_url = service_url
@@ -64,7 +99,7 @@ module Chronatog
64
99
 
65
100
  def client
66
101
  #need to set vars in scope here because Rack::Client.new instance_evals
67
- bak = @backend
102
+ bak = backend
68
103
  creds = @creds
69
104
  @client ||= Rack::Client.new do
70
105
  use BasicAuth, creds
@@ -1,5 +1,5 @@
1
1
  module Chronatog
2
2
  module Client
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chronatog-client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 0.1.0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jacob Burkhart & Josh Lane & Others