projectsimulator 0.1.1 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95e2aac79d4eedf850b1a69fd68c5ca4dea570e3f29b7c58ba08929b39ff6da6
4
- data.tar.gz: 7fcbd8da672a655223aa6fe5fedd6fe3ec5eaa167390163fd4f93c805859d028
3
+ metadata.gz: fb11152fdb739b57353cb3a2c426465b20ecde48075f0e25bd4a3212c2d47d1b
4
+ data.tar.gz: 854bf9dd30fcc841211ab8c6a8424e9fc2a0e214755cc8b80951d5c35afd9905
5
5
  SHA512:
6
- metadata.gz: c14beebb3a964700e458e9f910d647efb1e5df8135444d5fb5a7701e9af3a67148c5bcd7ef60b00bd158a91b2fe86031189dc5087046f46a146bccd2f6f88f8a
7
- data.tar.gz: 516649266578dc2aefbc924e750dab05ab42dcb1e225ac079d80d28d227a247cf4db024239fa4b90cc4b725c352ddcc774ef1e7e63bcad2cf018590f28086cb0
6
+ metadata.gz: 262fbd34450b87dff84eb25f0d65857e524f8aa16d2ad1e1f1079ce13c35c3793b056f40b974008d67f38cfa38e3ae91c95b2b5df496ae16500d41d4466acd72
7
+ data.tar.gz: 6c2db15265e494622f67b285ecd509ab656248ac01199a47d8796f41d9226c0e3fe7fa6b4fbae781972f169faa848b0577e1a51e75165422bf7c90c519b491d3
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -2,6 +2,7 @@
2
2
 
3
3
  # file: projectsimulator.rb
4
4
 
5
+
5
6
  require 'easydom'
6
7
  require 'app-routes'
7
8
 
@@ -47,7 +48,7 @@ module ProjectSimulator
47
48
  def request(s)
48
49
 
49
50
  params = {request: s}
50
- requests(@params)
51
+ requests(params)
51
52
  h = find_request(s)
52
53
 
53
54
  method(h.first[-1]).call(h)
@@ -99,6 +100,19 @@ module ProjectSimulator
99
100
  location = dev_location(device)
100
101
  {type: :get_device, action: 'switch', location: location, device: device}
101
102
  end
103
+
104
+ # e.g. fetch the livingroom temperature reading
105
+ #
106
+ get /fetch the ([^ ]+) +([^ ]+) +(?:reading)$/ do |location, device|
107
+ {type: :get_device, action: 'reading', location: location, device: device}
108
+ end
109
+
110
+ # e.g. fetch the temperature reading
111
+ #
112
+ get /fetch the ([^ ]+) +(?:reading)$/ do |device|
113
+ location = dev_location(device)
114
+ {type: :get_device, action: 'reading', location: location, device: device}
115
+ end
102
116
 
103
117
  end
104
118
 
@@ -112,4 +126,45 @@ module ProjectSimulator
112
126
  alias find_request run_route
113
127
 
114
128
  end
129
+
130
+ class Controller
131
+
132
+ attr_reader :macros
133
+ attr_accessor :title
134
+
135
+ def initialize(mcs, debug: false)
136
+
137
+ @debug = debug
138
+ @syslog = []
139
+
140
+ @macros = mcs.macros
141
+
142
+ end
143
+
144
+
145
+ def trigger(name, detail={time: $env[:time]})
146
+
147
+ macros = @macros.select do |macro|
148
+
149
+ puts 'macro: ' + macro.inspect if @debug
150
+
151
+ valid_trigger = macro.match?(name, detail)
152
+
153
+ puts 'valid_trigger: ' + valid_trigger.inspect if @debug
154
+
155
+ if valid_trigger then
156
+ @syslog << [Time.now, :trigger, name]
157
+ @syslog << [Time.now, :macro, macro.title]
158
+ end
159
+
160
+ valid_trigger
161
+
162
+ end
163
+
164
+ puts 'macros: ' + macros.inspect if @debug
165
+
166
+ macros.flat_map(&:run)
167
+ end
168
+
169
+ end
115
170
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: projectsimulator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  2GrtfOXGVOS+2jvmCQC6vU+ew9WBxiDUbebI95TeTwMs2o0cs3IASXX5rIn4TPcz
36
36
  SCccB3fVg2yfsy5DivaWaZwg
37
37
  -----END CERTIFICATE-----
38
- date: 2020-05-02 00:00:00.000000000 Z
38
+ date: 2020-08-19 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: easydom
metadata.gz.sig CHANGED
Binary file