seam 1.1.3 → 2.0.0a2
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.
- checksums.yaml +5 -5
- data/Gemfile +4 -2
- data/Gemfile.lock +137 -0
- data/LICENSE.txt +16 -18
- data/README.md +118 -115
- data/Rakefile +23 -0
- data/lib/seam/client.rb +129 -0
- data/lib/seam/clients/access_codes.rb +95 -0
- data/lib/seam/clients/access_codes_simulate.rb +17 -0
- data/lib/seam/clients/access_codes_unmanaged.rb +57 -0
- data/lib/seam/clients/acs.rb +35 -0
- data/lib/seam/clients/acs_access_groups.rb +57 -0
- data/lib/seam/clients/acs_credential_pools.rb +17 -0
- data/lib/seam/clients/acs_credential_provisioning_automations.rb +17 -0
- data/lib/seam/clients/acs_credentials.rb +77 -0
- data/lib/seam/clients/acs_entrances.rb +47 -0
- data/lib/seam/clients/acs_systems.rb +27 -0
- data/lib/seam/clients/acs_users.rb +117 -0
- data/lib/seam/clients/action_attempts.rb +30 -0
- data/lib/seam/clients/base_client.rb +21 -0
- data/lib/seam/clients/client_sessions.rb +77 -0
- data/lib/seam/clients/connect_webviews.rb +47 -0
- data/lib/seam/clients/connected_accounts.rb +47 -0
- data/lib/seam/clients/devices.rb +65 -0
- data/lib/seam/clients/devices_simulate.rb +17 -0
- data/lib/seam/clients/devices_unmanaged.rb +37 -0
- data/lib/seam/clients/events.rb +27 -0
- data/lib/seam/clients/locks.rb +53 -0
- data/lib/seam/clients/networks.rb +27 -0
- data/lib/seam/clients/noise_sensors.rb +15 -0
- data/lib/seam/clients/noise_sensors_noise_thresholds.rb +57 -0
- data/lib/seam/clients/noise_sensors_simulate.rb +17 -0
- data/lib/seam/clients/phones.rb +31 -0
- data/lib/seam/clients/phones_simulate.rb +17 -0
- data/lib/seam/clients/thermostats.rb +106 -0
- data/lib/seam/clients/thermostats_climate_setting_schedules.rb +57 -0
- data/lib/seam/clients/user_identities.rb +131 -0
- data/lib/seam/clients/user_identities_enrollment_automations.rb +47 -0
- data/lib/seam/clients/webhooks.rb +57 -0
- data/lib/seam/clients/workspaces.rb +50 -0
- data/lib/seam/logger.rb +12 -0
- data/lib/seam/lts_version.rb +5 -0
- data/lib/seam/request.rb +73 -0
- data/lib/seam/resources/access_code.rb +12 -0
- data/lib/seam/resources/acs_access_group.rb +9 -0
- data/lib/seam/resources/acs_credential.rb +12 -0
- data/lib/seam/resources/acs_credential_pool.rb +9 -0
- data/lib/seam/resources/acs_credential_provisioning_automation.rb +9 -0
- data/lib/seam/resources/acs_entrance.rb +9 -0
- data/lib/seam/resources/acs_system.rb +9 -0
- data/lib/seam/resources/acs_user.rb +9 -0
- data/lib/seam/resources/action_attempt.rb +46 -0
- data/lib/seam/resources/base_resource.rb +58 -0
- data/lib/seam/resources/client_session.rb +9 -0
- data/lib/seam/resources/climate_setting_schedule.rb +11 -0
- data/lib/seam/resources/connect_webview.rb +9 -0
- data/lib/seam/resources/connected_account.rb +12 -0
- data/lib/seam/resources/device.rb +12 -0
- data/lib/seam/resources/device_provider.rb +7 -0
- data/lib/seam/resources/enrollment_automation.rb +9 -0
- data/lib/seam/resources/event.rb +9 -0
- data/lib/seam/resources/network.rb +9 -0
- data/lib/seam/resources/noise_threshold.rb +7 -0
- data/lib/seam/resources/phone.rb +12 -0
- data/lib/seam/resources/resource_error.rb +9 -0
- data/lib/seam/resources/resource_errors_support.rb +9 -0
- data/lib/seam/resources/resource_warning.rb +9 -0
- data/lib/seam/resources/resource_warnings_support.rb +9 -0
- data/lib/seam/resources/service_health.rb +7 -0
- data/lib/seam/resources/unmanaged_access_code.rb +12 -0
- data/lib/seam/resources/unmanaged_device.rb +12 -0
- data/lib/seam/resources/user_identity.rb +9 -0
- data/lib/seam/resources/webhook.rb +7 -0
- data/lib/seam/resources/workspace.rb +7 -0
- data/lib/seam/version.rb +3 -1
- data/lib/seam.rb +71 -13
- metadata +147 -82
- data/.gitignore +0 -18
- data/lib/seam/effort.rb +0 -86
- data/lib/seam/flow.rb +0 -53
- data/lib/seam/in_memory.rb +0 -13
- data/lib/seam/persistence.rb +0 -43
- data/lib/seam/step.rb +0 -33
- data/lib/seam/wait_worker.rb +0 -30
- data/lib/seam/worker.rb +0 -166
- data/seam.gemspec +0 -30
- data/spec/seam/effort_spec.rb +0 -43
- data/spec/seam/flow_spec.rb +0 -173
- data/spec/seam/step_spec.rb +0 -34
- data/spec/seam/wait_worker_spec.rb +0 -179
- data/spec/seam/worker_spec.rb +0 -973
- data/spec/spec_helper.rb +0 -8
data/spec/seam/step_spec.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
|
3
|
-
describe Seam::Step do
|
4
|
-
describe "initialize" do
|
5
|
-
it "should allow values to be set with the constructor" do
|
6
|
-
step = Seam::Step.new( { id: 'an id',
|
7
|
-
name: 'a name',
|
8
|
-
type: 'a type',
|
9
|
-
arguments: ['1234', 2] } )
|
10
|
-
step.id.must_equal 'an id'
|
11
|
-
step.name.must_equal 'a name'
|
12
|
-
step.type.must_equal 'a type'
|
13
|
-
step.arguments.count.must_equal 2
|
14
|
-
step.arguments[0].must_equal '1234'
|
15
|
-
step.arguments[1].must_equal 2
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
describe "to hash" do
|
20
|
-
it "should allow values to be set with the constructor" do
|
21
|
-
step = Seam::Step.new( { id: 'an id',
|
22
|
-
name: 'a name',
|
23
|
-
type: 'a type',
|
24
|
-
arguments: ['1234', 2] } )
|
25
|
-
step = Seam::Step.new step.to_hash
|
26
|
-
step.id.must_equal 'an id'
|
27
|
-
step.name.must_equal 'a name'
|
28
|
-
step.type.must_equal 'a type'
|
29
|
-
step.arguments.count.must_equal 2
|
30
|
-
step.arguments[0].must_equal '1234'
|
31
|
-
step.arguments[1].must_equal 2
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,179 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
|
3
|
-
class DoSomething < Seam::Worker
|
4
|
-
def process
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
|
-
describe Seam::WaitWorker do
|
9
|
-
|
10
|
-
it "should be a worker" do
|
11
|
-
Seam::WaitWorker.new.is_a? Seam::Worker
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should handle the wait step" do
|
15
|
-
Seam::WaitWorker.new.step.must_equal 'wait'
|
16
|
-
end
|
17
|
-
|
18
|
-
let(:today) do
|
19
|
-
Time.parse '1/1/2011'
|
20
|
-
end
|
21
|
-
|
22
|
-
let(:effort_id) do
|
23
|
-
effort = flow.start
|
24
|
-
effort.id
|
25
|
-
end
|
26
|
-
|
27
|
-
describe "using it in a flow" do
|
28
|
-
|
29
|
-
[:length_of_time].to_objects { [
|
30
|
-
[3.days],
|
31
|
-
[1.day],
|
32
|
-
[30.minutes]
|
33
|
-
] }.each do |test|
|
34
|
-
|
35
|
-
describe "a simple situation" do
|
36
|
-
|
37
|
-
let(:flow) do
|
38
|
-
f = Seam::Flow.new
|
39
|
-
f.wait test.length_of_time
|
40
|
-
f.do_something
|
41
|
-
f
|
42
|
-
end
|
43
|
-
|
44
|
-
before do
|
45
|
-
Timecop.freeze today
|
46
|
-
effort_id
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should move to the next step" do
|
50
|
-
Seam::WaitWorker.new.execute_all
|
51
|
-
Seam::Effort.find(effort_id).next_step.must_equal "do_something"
|
52
|
-
end
|
53
|
-
j
|
54
|
-
it "should set the next execute date" do
|
55
|
-
Seam::WaitWorker.new.execute_all
|
56
|
-
Seam::Effort.find(effort_id).next_execute_at.must_equal (today + test.length_of_time)
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
describe "time has passed since the flow was started and the wait worker was called" do
|
64
|
-
|
65
|
-
let(:today) { Time.parse('1/1/2011') }
|
66
|
-
let(:time_to_wait) { 3.days }
|
67
|
-
let(:time_before_wait_worker_was_called) { 1.day }
|
68
|
-
let(:expected_start) { today + time_to_wait }
|
69
|
-
|
70
|
-
let(:flow) do
|
71
|
-
f = Seam::Flow.new
|
72
|
-
f.wait time_to_wait
|
73
|
-
f.do_something
|
74
|
-
f
|
75
|
-
end
|
76
|
-
|
77
|
-
before do
|
78
|
-
Timecop.freeze today
|
79
|
-
effort_id
|
80
|
-
|
81
|
-
Timecop.freeze today + time_before_wait_worker_was_called
|
82
|
-
end
|
83
|
-
|
84
|
-
it "should move to the next step" do
|
85
|
-
Seam::WaitWorker.new.execute_all
|
86
|
-
Seam::Effort.find(effort_id).next_step.must_equal "do_something"
|
87
|
-
end
|
88
|
-
|
89
|
-
it "should set the next execute date" do
|
90
|
-
Seam::WaitWorker.new.execute_all
|
91
|
-
Seam::Effort.find(effort_id).next_execute_at.must_equal expected_start
|
92
|
-
end
|
93
|
-
|
94
|
-
end
|
95
|
-
|
96
|
-
describe "time has passed since the last step was started and the wait worker was called" do
|
97
|
-
|
98
|
-
let(:today) { Time.parse('1/1/2011') }
|
99
|
-
let(:time_to_wait) { 8.days }
|
100
|
-
let(:time_it_took_for_previous_step) { 1.days }
|
101
|
-
let(:time_before_wait_worker_was_called) { 3.day }
|
102
|
-
let(:expected_start) { today + time_to_wait + time_it_took_for_previous_step }
|
103
|
-
|
104
|
-
let(:flow) do
|
105
|
-
f = Seam::Flow.new
|
106
|
-
f.do_something
|
107
|
-
f.wait time_to_wait
|
108
|
-
f.do_something
|
109
|
-
f
|
110
|
-
end
|
111
|
-
|
112
|
-
before do
|
113
|
-
Timecop.freeze today
|
114
|
-
effort_id
|
115
|
-
|
116
|
-
Timecop.freeze Time.now + time_it_took_for_previous_step
|
117
|
-
DoSomething.new.execute_all
|
118
|
-
Timecop.freeze Time.now + time_before_wait_worker_was_called
|
119
|
-
end
|
120
|
-
|
121
|
-
it "should move to the next step" do
|
122
|
-
Seam::WaitWorker.new.execute_all
|
123
|
-
Seam::Effort.find(effort_id).next_step.must_equal "do_something"
|
124
|
-
end
|
125
|
-
|
126
|
-
it "should set the next execute date" do
|
127
|
-
Seam::WaitWorker.new.execute_all
|
128
|
-
Seam::Effort.find(effort_id).next_execute_at.must_equal expected_start
|
129
|
-
end
|
130
|
-
|
131
|
-
end
|
132
|
-
j
|
133
|
-
describe "a more complex example of waiting" do
|
134
|
-
|
135
|
-
let(:today) { Time.parse('1/1/2011') }
|
136
|
-
let(:time_to_wait) { 8.days }
|
137
|
-
let(:time_it_took_for_first_step) { 1.days }
|
138
|
-
let(:time_it_took_for_second_step) { 4.days }
|
139
|
-
let(:time_before_wait_worker_was_called) { 3.day }
|
140
|
-
let(:expected_start) { today +
|
141
|
-
time_to_wait +
|
142
|
-
time_it_took_for_first_step +
|
143
|
-
time_it_took_for_second_step }
|
144
|
-
|
145
|
-
let(:flow) do
|
146
|
-
f = Seam::Flow.new
|
147
|
-
f.do_something
|
148
|
-
f.do_something
|
149
|
-
f.wait time_to_wait
|
150
|
-
f.do_something
|
151
|
-
f
|
152
|
-
end
|
153
|
-
|
154
|
-
before do
|
155
|
-
Timecop.freeze today
|
156
|
-
effort_id
|
157
|
-
|
158
|
-
Timecop.freeze Time.now + time_it_took_for_first_step
|
159
|
-
DoSomething.new.execute_all
|
160
|
-
Timecop.freeze Time.now + time_it_took_for_second_step
|
161
|
-
DoSomething.new.execute_all
|
162
|
-
Timecop.freeze Time.now + time_before_wait_worker_was_called
|
163
|
-
end
|
164
|
-
|
165
|
-
it "should move to the next step" do
|
166
|
-
Seam::WaitWorker.new.execute_all
|
167
|
-
Seam::Effort.find(effort_id).next_step.must_equal "do_something"
|
168
|
-
end
|
169
|
-
|
170
|
-
it "should set the next execute date" do
|
171
|
-
Seam::WaitWorker.new.execute_all
|
172
|
-
Seam::Effort.find(effort_id).next_execute_at.must_equal expected_start
|
173
|
-
end
|
174
|
-
|
175
|
-
end
|
176
|
-
|
177
|
-
end
|
178
|
-
|
179
|
-
end
|