smartkiosk-client 0.0.9 → 0.0.10
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/Gemfile +1 -1
- data/app/assets/flash/amqp.swf +0 -0
- data/app/assets/flash/expressInstall.swf +0 -0
- data/app/assets/javascripts/amqp.js +18 -0
- data/bin/smartkiosk-client +27 -0
- data/config/boot.rb +4 -2
- data/lib/smartkiosk/client/logging.rb +36 -0
- data/lib/smartkiosk/client/version.rb +1 -1
- data/lib/tasks/services.rb +1 -6
- data/smartkiosk-client.gemspec +2 -1
- data/vendor/assets/javascripts/mq.js +393 -0
- data/vendor/assets/javascripts/swfobject.js +4 -0
- metadata +82 -63
data/Gemfile
CHANGED
Binary file
|
Binary file
|
@@ -0,0 +1,18 @@
|
|
1
|
+
//= require mq
|
2
|
+
//= require swfobject
|
3
|
+
|
4
|
+
swfobject.embedSWF(
|
5
|
+
"/assets/amqp.swf",
|
6
|
+
"AMQPProxy",
|
7
|
+
"1",
|
8
|
+
"1",
|
9
|
+
"9",
|
10
|
+
"/assets/expressInstall.swf",
|
11
|
+
{},
|
12
|
+
{
|
13
|
+
allowScriptAccess: "always",
|
14
|
+
wmode : "opaque",
|
15
|
+
bgcolor : "#ff0000"
|
16
|
+
},
|
17
|
+
{}
|
18
|
+
);
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'eventmachine'
|
5
|
+
require 'thin'
|
6
|
+
require 'trollop'
|
7
|
+
|
8
|
+
require './config/boot'
|
9
|
+
|
10
|
+
opts = Trollop.options do
|
11
|
+
version "Smartkiosk::Client #{Smartkiosk::Client::VERSION}"
|
12
|
+
banner "Smartkiosk client application"
|
13
|
+
opt :log, "Log file to use", type: String
|
14
|
+
end
|
15
|
+
|
16
|
+
Smartkiosk::Client::Logging.destination = opts[:log] if opts[:log]
|
17
|
+
Smartkiosk::Client::Logging.init
|
18
|
+
|
19
|
+
EventMachine.run do
|
20
|
+
Thin::Server.start '0.0.0.0', 3001 do
|
21
|
+
map '/assets' do
|
22
|
+
run Application.sprockets
|
23
|
+
end
|
24
|
+
use Smartkiosk::Client::Logging::Middleware
|
25
|
+
run Application
|
26
|
+
end
|
27
|
+
end
|
data/config/boot.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'bundler/setup'
|
1
2
|
require 'pry'
|
2
3
|
require 'active_support/all'
|
3
4
|
require 'sass'
|
@@ -19,12 +20,11 @@ module Smartkiosk
|
|
19
20
|
end
|
20
21
|
|
21
22
|
configure do
|
22
|
-
set :assets_types, %w(javascripts stylesheets images)
|
23
|
+
set :assets_types, %w(javascripts stylesheets images flash)
|
23
24
|
set :root, Pathname.new(File.expand_path '../..', __FILE__)
|
24
25
|
set :sprockets, Sprockets::Environment.new(root)
|
25
26
|
set :database_file, root.join('config/services/database.yml')
|
26
27
|
set :views, [File.expand_path('../../app/views', __FILE__)]
|
27
|
-
set :logging, true
|
28
28
|
|
29
29
|
assets_types.map do |x|
|
30
30
|
sprockets.append_path root.join("app/assets/#{x}")
|
@@ -85,6 +85,8 @@ module Smartkiosk
|
|
85
85
|
%w(uploaders models workers controllers).each do |dir|
|
86
86
|
Dir[File.expand_path "../../app/#{dir}/**/*.rb", __FILE__].each {|file| require file }
|
87
87
|
end
|
88
|
+
|
89
|
+
load 'lib/smartkiosk/client/logging'
|
88
90
|
end
|
89
91
|
|
90
92
|
def self.expand!(path)
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Smartkiosk
|
2
|
+
class Client
|
3
|
+
module Logging extend Smartkiosk::Common::Logging
|
4
|
+
self.service = 'Web'
|
5
|
+
|
6
|
+
class Middleware
|
7
|
+
def initialize(app)
|
8
|
+
@app = app
|
9
|
+
end
|
10
|
+
|
11
|
+
def call(env)
|
12
|
+
began_at = Time.now
|
13
|
+
status, header, body = @app.call(env)
|
14
|
+
header = Rack::Utils::HeaderHash.new(header)
|
15
|
+
log(env, status, header, began_at)
|
16
|
+
[status, header, body]
|
17
|
+
end
|
18
|
+
|
19
|
+
def log(env, status, header, began_at)
|
20
|
+
now = Time.now
|
21
|
+
length = extract_content_length(header)
|
22
|
+
|
23
|
+
Smartkiosk::Client::Logging.logger.info "#{status.to_s[0..3]} #{env["REQUEST_METHOD"]} " <<
|
24
|
+
"#{env["PATH_INFO"]}#{env["QUERY_STRING"].empty? ? "" : "?"+env["QUERY_STRING"]}, " <<
|
25
|
+
"#{length} (#{now - began_at})"
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
def extract_content_length(headers)
|
30
|
+
value = headers['Content-Length'] or return '-'
|
31
|
+
value.to_s == '0' ? '-' : value
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/tasks/services.rb
CHANGED
data/smartkiosk-client.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |gem|
|
|
26
26
|
gem.add_dependency 'sprockets', '2.8.2'
|
27
27
|
gem.add_dependency 'sprockets-sass', '0.9.1'
|
28
28
|
gem.add_dependency 'sprockets-helpers', '0.8.0'
|
29
|
+
gem.add_dependency 'trollop', '2.0'
|
29
30
|
|
30
31
|
gem.add_dependency 'activesupport', '3.2.11'
|
31
32
|
gem.add_dependency 'smartkiosk-common', '0.0.2'
|
@@ -46,7 +47,7 @@ Gem::Specification.new do |gem|
|
|
46
47
|
gem.add_dependency 'pry', '0.9.10'
|
47
48
|
|
48
49
|
gem.add_dependency 'smartware', '0.3.1'
|
49
|
-
gem.add_dependency 'smartguard', '0.3.
|
50
|
+
gem.add_dependency 'smartguard', '0.3.12'
|
50
51
|
gem.add_dependency 'amqp', '0.9.8'
|
51
52
|
|
52
53
|
gem.add_dependency 'sidekiq', '2.6.5'
|
@@ -0,0 +1,393 @@
|
|
1
|
+
/**
|
2
|
+
---------------------------------------------------------------------------
|
3
|
+
|
4
|
+
Copyright (c) 2009 Dan Simpson
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
8
|
+
in the Software without restriction, including without limitation the rights
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
11
|
+
furnished to do so, subject to the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be included in
|
14
|
+
all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
+
THE SOFTWARE.
|
23
|
+
|
24
|
+
---------------------------------------------------------------------------
|
25
|
+
**/
|
26
|
+
|
27
|
+
//simple inheritance helper
|
28
|
+
function extend(superclass, constructor_extend, prototype) {
|
29
|
+
var res = function() {
|
30
|
+
superclass.apply(this);
|
31
|
+
constructor_extend.apply(this, arguments);
|
32
|
+
};
|
33
|
+
var withoutcon = function() {};
|
34
|
+
withoutcon.prototype = superclass.prototype;
|
35
|
+
res.prototype = new withoutcon();
|
36
|
+
for (var k in prototype) {
|
37
|
+
res.prototype[k] = prototype[k];
|
38
|
+
}
|
39
|
+
return res;
|
40
|
+
}
|
41
|
+
|
42
|
+
//used to add methods and properties to objects
|
43
|
+
function $extend(target, source) {
|
44
|
+
for (var key in (source || {})) {
|
45
|
+
target[key] = source[key];
|
46
|
+
}
|
47
|
+
return target;
|
48
|
+
}
|
49
|
+
|
50
|
+
/*
|
51
|
+
* Base class for event dispatch
|
52
|
+
*/
|
53
|
+
var Dispatcher = function() {
|
54
|
+
this.listeners = {};
|
55
|
+
};
|
56
|
+
|
57
|
+
Dispatcher.prototype = {
|
58
|
+
|
59
|
+
addListener: function(name, fn, scope) {
|
60
|
+
if (!this.listeners[name]) {
|
61
|
+
this.listeners[name] = [];
|
62
|
+
}
|
63
|
+
this.listeners[name].push({
|
64
|
+
fn: fn,
|
65
|
+
scope: scope || window
|
66
|
+
});
|
67
|
+
},
|
68
|
+
|
69
|
+
on: function(name, fn, scope) {
|
70
|
+
this.addListener(name, fn, scope);
|
71
|
+
},
|
72
|
+
|
73
|
+
fireEvent: function() {
|
74
|
+
var args = [].slice.call(arguments);
|
75
|
+
var name = args.shift();
|
76
|
+
var calls = this.listeners[name];
|
77
|
+
if (calls) {
|
78
|
+
for (var i = 0; i < calls.length; i++) {
|
79
|
+
var c = calls[i];
|
80
|
+
c.fn.apply(c.scope, args);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
};
|
86
|
+
|
87
|
+
/*
|
88
|
+
* Represents the binding of an exchange to a queue, callbacks can be
|
89
|
+
* added to bindings, so messages received by the queue can handle them
|
90
|
+
* with a different function
|
91
|
+
*/
|
92
|
+
var Binding = extend(Dispatcher, function(queue, exchange, key) {
|
93
|
+
MQ.dispatch("bind", queue, exchange, key);
|
94
|
+
this.pattern = new RegExp("^" + key.replace('.', '\.').replace('*', '[^\.|$]+').replace('#', '([^\.|$]+\.)+') + "$");
|
95
|
+
},
|
96
|
+
{
|
97
|
+
|
98
|
+
pattern: null,
|
99
|
+
|
100
|
+
destroy: function() {
|
101
|
+
//not supported with AMQP 08, But 09
|
102
|
+
},
|
103
|
+
|
104
|
+
callback: function(cb, scope) {
|
105
|
+
this.on("rcv", cb, scope);
|
106
|
+
}
|
107
|
+
});
|
108
|
+
|
109
|
+
/*
|
110
|
+
* Represents the end point for messages received. It's the place
|
111
|
+
* where your messages are sent. You can bind the queue to exchanges
|
112
|
+
* and recieve messages sent on those exchanges.
|
113
|
+
*/
|
114
|
+
var Queue = extend(Dispatcher, function(opts) {
|
115
|
+
$extend(this, opts);
|
116
|
+
this.bindings = {};
|
117
|
+
MQ.dispatch("subscribe", opts);
|
118
|
+
},
|
119
|
+
{
|
120
|
+
|
121
|
+
bind: function(exchange, key) {
|
122
|
+
key = (key || "").toString();
|
123
|
+
|
124
|
+
if (!MQ.exchanges[exchange]) {
|
125
|
+
var type = "";
|
126
|
+
if (!key.length) {
|
127
|
+
type = 'fanout';
|
128
|
+
} else if (key.match(/[\*|#]/)) {
|
129
|
+
type = 'topic';
|
130
|
+
} else {
|
131
|
+
type = 'direct';
|
132
|
+
};
|
133
|
+
MQ.exchange(exchange, {
|
134
|
+
type: type
|
135
|
+
});
|
136
|
+
};
|
137
|
+
|
138
|
+
// No need to bind queue to an existing fanout exchange if the queue is already bound to this exchange.
|
139
|
+
if (MQ.exchanges[exchange].type == 'fanout' && this.bindings[exchange]) {
|
140
|
+
for (var k in this.bindings[exchange]) {
|
141
|
+
// Return first element
|
142
|
+
return this.bindings[exchange][k];
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
if (!this.bindings[exchange]) {
|
147
|
+
this.bindings[exchange] = {};
|
148
|
+
}
|
149
|
+
|
150
|
+
if (!this.bindings[exchange][key]) {
|
151
|
+
this.bindings[exchange][key] = new Binding(this.queue, exchange, key);
|
152
|
+
}
|
153
|
+
|
154
|
+
return this.bindings[exchange][key];
|
155
|
+
},
|
156
|
+
|
157
|
+
receive: function(msg) {
|
158
|
+
|
159
|
+
if (this.queue == "auto") {
|
160
|
+
this.queue = MQ.dispatch("getAutoQueueName");
|
161
|
+
}
|
162
|
+
|
163
|
+
if (MQ.onReceiveHandler == "queue") {
|
164
|
+
this.fireEvent("rcv", msg);
|
165
|
+
} else {
|
166
|
+
var match = false;
|
167
|
+
var ex = this.bindings[msg.exchange];
|
168
|
+
|
169
|
+
if (ex) {
|
170
|
+
var type = MQ.exchanges[msg.exchange].type;
|
171
|
+
if (type == 'fanout') {
|
172
|
+
for (var k in ex) {
|
173
|
+
match = true;
|
174
|
+
ex[k].fireEvent("rcv", msg);
|
175
|
+
break;
|
176
|
+
}
|
177
|
+
} else if (type == 'direct') {
|
178
|
+
for (var k in ex) {
|
179
|
+
if (k == msg.routingKey) {
|
180
|
+
match = true;
|
181
|
+
ex[k].fireEvent("rcv", msg);
|
182
|
+
}
|
183
|
+
}
|
184
|
+
} else {
|
185
|
+
for (var k in ex) {
|
186
|
+
if (ex[k].pattern.test(msg.routingKey)) {
|
187
|
+
match = true;
|
188
|
+
ex[k].fireEvent("rcv", msg);
|
189
|
+
}
|
190
|
+
}
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
194
|
+
//default to the queue callback
|
195
|
+
if (!match) {
|
196
|
+
this.fireEvent("rcv", msg);
|
197
|
+
}
|
198
|
+
}
|
199
|
+
},
|
200
|
+
|
201
|
+
callback: function(cb, scope) {
|
202
|
+
this.on("rcv", cb, scope);
|
203
|
+
}
|
204
|
+
});
|
205
|
+
|
206
|
+
/*
|
207
|
+
* Represents an exchange, which is used to partition message
|
208
|
+
* spaces and publish messages to peers
|
209
|
+
*/
|
210
|
+
var Exchange = function(opts) {
|
211
|
+
$extend(this, opts);
|
212
|
+
MQ.dispatch("exchange", opts);
|
213
|
+
};
|
214
|
+
Exchange.prototype = {
|
215
|
+
publish: function(message, key) {
|
216
|
+
MQ.dispatch("publish", this.exchange, key || "", message);
|
217
|
+
}
|
218
|
+
};
|
219
|
+
|
220
|
+
/*
|
221
|
+
* Adaptor interface for the flash based AMQP API
|
222
|
+
*/
|
223
|
+
var FlashAdaptor = extend(Dispatcher, function() {},
|
224
|
+
{
|
225
|
+
|
226
|
+
buffer: [],
|
227
|
+
|
228
|
+
exchanges: {},
|
229
|
+
queues: {},
|
230
|
+
|
231
|
+
api: null,
|
232
|
+
|
233
|
+
logger: null,
|
234
|
+
logLevel: 2,
|
235
|
+
policyUrl: null,
|
236
|
+
|
237
|
+
host: "amqp.peermessaging.com",
|
238
|
+
port: 5672,
|
239
|
+
user: "guest",
|
240
|
+
password: "guest",
|
241
|
+
vhost: "/",
|
242
|
+
|
243
|
+
element: "AMQPProxy",
|
244
|
+
autoConnect: true,
|
245
|
+
|
246
|
+
onReceiveHandler: "binding",
|
247
|
+
|
248
|
+
configure: function(settings) {
|
249
|
+
$extend(this, settings);
|
250
|
+
},
|
251
|
+
|
252
|
+
connect: function() {
|
253
|
+
this.dispatch("connect", {
|
254
|
+
host: this.host,
|
255
|
+
port: this.port,
|
256
|
+
user: this.user,
|
257
|
+
password: this.password,
|
258
|
+
vhost: this.vhost
|
259
|
+
});
|
260
|
+
},
|
261
|
+
|
262
|
+
disconnect: function() {
|
263
|
+
this.dispatch("disconnect");
|
264
|
+
},
|
265
|
+
|
266
|
+
//private
|
267
|
+
onLoad: function() {
|
268
|
+
this.api = document.getElementById(this.element);
|
269
|
+
this.fireEvent("load");
|
270
|
+
this.update();
|
271
|
+
if (this.autoConnect) {
|
272
|
+
this.connect();
|
273
|
+
}
|
274
|
+
},
|
275
|
+
|
276
|
+
//private
|
277
|
+
onConnect: function() {
|
278
|
+
this.update();
|
279
|
+
this.flush();
|
280
|
+
this.fireEvent("connect");
|
281
|
+
},
|
282
|
+
|
283
|
+
//private
|
284
|
+
onDisconnect: function() {
|
285
|
+
this.fireEvent("disconnect");
|
286
|
+
},
|
287
|
+
|
288
|
+
//private
|
289
|
+
onLogEntry: function(msg) {
|
290
|
+
if (this.logger && this.logger.log) {
|
291
|
+
this.logger.log(msg);
|
292
|
+
}
|
293
|
+
},
|
294
|
+
|
295
|
+
//private
|
296
|
+
onReceive: function(msg) {
|
297
|
+
if (this.queues[msg.queue]) {
|
298
|
+
this.queues[msg.queue].receive(msg);
|
299
|
+
} else {
|
300
|
+
this.onLogEntry("Queue not found!");
|
301
|
+
}
|
302
|
+
},
|
303
|
+
|
304
|
+
queue: function(name, opts) {
|
305
|
+
if (!this.queues[name]) {
|
306
|
+
this.createQueue(name, opts);
|
307
|
+
}
|
308
|
+
return this.queues[name];
|
309
|
+
},
|
310
|
+
|
311
|
+
//private
|
312
|
+
createQueue: function(name, opts) {
|
313
|
+
this.queues[name] = new Queue($extend({
|
314
|
+
queue: name
|
315
|
+
},
|
316
|
+
opts));
|
317
|
+
},
|
318
|
+
|
319
|
+
deleteQueue: function(name, opts) {
|
320
|
+
if (!this.queues[name]) {
|
321
|
+
return false;
|
322
|
+
};
|
323
|
+
delete this.queues[name];
|
324
|
+
if (!opts) {
|
325
|
+
opts = {};
|
326
|
+
};
|
327
|
+
return this.dispatch("queueDelete", name, opts);
|
328
|
+
},
|
329
|
+
|
330
|
+
topic: function(name) {
|
331
|
+
return this.exchange(name, {
|
332
|
+
type: "topic"
|
333
|
+
});
|
334
|
+
},
|
335
|
+
|
336
|
+
fanout: function(name) {
|
337
|
+
return this.exchange(name, {
|
338
|
+
type: "fanout"
|
339
|
+
});
|
340
|
+
},
|
341
|
+
|
342
|
+
direct: function(name) {
|
343
|
+
return this.exchange(name, {
|
344
|
+
type: "direct"
|
345
|
+
});
|
346
|
+
},
|
347
|
+
|
348
|
+
exchange: function(name, opts) {
|
349
|
+
if (!this.exchanges[name]) {
|
350
|
+
this.createExchange(name, opts);
|
351
|
+
}
|
352
|
+
return this.exchanges[name];
|
353
|
+
},
|
354
|
+
|
355
|
+
//private
|
356
|
+
createExchange: function(name, opts) {
|
357
|
+
this.exchanges[name] = new Exchange($extend({
|
358
|
+
exchange: name,
|
359
|
+
type: opts.type || "fanout"
|
360
|
+
},
|
361
|
+
opts));
|
362
|
+
},
|
363
|
+
|
364
|
+
//private
|
365
|
+
update: function() {
|
366
|
+
if (this.logger) {
|
367
|
+
this.dispatch("setLogLevel", this.logLevel);
|
368
|
+
}
|
369
|
+
if (this.policyUrl) {
|
370
|
+
this.dispatch("loadPolicy", this.policyUrl);
|
371
|
+
}
|
372
|
+
},
|
373
|
+
|
374
|
+
//private
|
375
|
+
dispatch: function() {
|
376
|
+
if (this.api) {
|
377
|
+
var args = [].slice.call(arguments);
|
378
|
+
return this.api[args.shift()].apply(this.api, args);
|
379
|
+
} else {
|
380
|
+
return this.buffer.push(arguments);
|
381
|
+
}
|
382
|
+
},
|
383
|
+
|
384
|
+
//private
|
385
|
+
flush: function() {
|
386
|
+
while (this.buffer.length > 0) {
|
387
|
+
this.dispatch.apply(this, this.buffer.shift());
|
388
|
+
}
|
389
|
+
}
|
390
|
+
|
391
|
+
});
|
392
|
+
|
393
|
+
var MQ = new FlashAdaptor();
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/* SWFObject v2.2 <http://code.google.com/p/swfobject/>
|
2
|
+
is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
|
3
|
+
*/
|
4
|
+
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartkiosk-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2013-01-29 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &70303472778240 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - =
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 10.0.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70303472778240
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: thin
|
27
|
-
requirement: &
|
27
|
+
requirement: &70303472775620 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - =
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.5.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70303472775620
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sinatra
|
38
|
-
requirement: &
|
38
|
+
requirement: &70303472772060 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - =
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.3.4
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70303472772060
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: sinatra-activerecord
|
49
|
-
requirement: &
|
49
|
+
requirement: &70303472786620 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - =
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.2.1
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70303472786620
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: sinatra-contrib
|
60
|
-
requirement: &
|
60
|
+
requirement: &70303472784740 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - =
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.3.2
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70303472784740
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: haml
|
71
|
-
requirement: &
|
71
|
+
requirement: &70303472783800 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - =
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 3.1.7
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70303472783800
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: sass
|
82
|
-
requirement: &
|
82
|
+
requirement: &70303472782420 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - =
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 3.2.5
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70303472782420
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: sprockets
|
93
|
-
requirement: &
|
93
|
+
requirement: &70303472813160 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - =
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 2.8.2
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70303472813160
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: sprockets-sass
|
104
|
-
requirement: &
|
104
|
+
requirement: &70303472845640 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - =
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: 0.9.1
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70303472845640
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: sprockets-helpers
|
115
|
-
requirement: &
|
115
|
+
requirement: &70303472860060 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - =
|
@@ -120,10 +120,21 @@ dependencies:
|
|
120
120
|
version: 0.8.0
|
121
121
|
type: :runtime
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *70303472860060
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: trollop
|
126
|
+
requirement: &70303472872100 !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
128
|
+
requirements:
|
129
|
+
- - =
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: *70303472872100
|
124
135
|
- !ruby/object:Gem::Dependency
|
125
136
|
name: activesupport
|
126
|
-
requirement: &
|
137
|
+
requirement: &70303472946800 !ruby/object:Gem::Requirement
|
127
138
|
none: false
|
128
139
|
requirements:
|
129
140
|
- - =
|
@@ -131,10 +142,10 @@ dependencies:
|
|
131
142
|
version: 3.2.11
|
132
143
|
type: :runtime
|
133
144
|
prerelease: false
|
134
|
-
version_requirements: *
|
145
|
+
version_requirements: *70303472946800
|
135
146
|
- !ruby/object:Gem::Dependency
|
136
147
|
name: smartkiosk-common
|
137
|
-
requirement: &
|
148
|
+
requirement: &70303472997920 !ruby/object:Gem::Requirement
|
138
149
|
none: false
|
139
150
|
requirements:
|
140
151
|
- - =
|
@@ -142,10 +153,10 @@ dependencies:
|
|
142
153
|
version: 0.0.2
|
143
154
|
type: :runtime
|
144
155
|
prerelease: false
|
145
|
-
version_requirements: *
|
156
|
+
version_requirements: *70303472997920
|
146
157
|
- !ruby/object:Gem::Dependency
|
147
158
|
name: sqlite3
|
148
|
-
requirement: &
|
159
|
+
requirement: &70303473046840 !ruby/object:Gem::Requirement
|
149
160
|
none: false
|
150
161
|
requirements:
|
151
162
|
- - =
|
@@ -153,10 +164,10 @@ dependencies:
|
|
153
164
|
version: 1.3.6
|
154
165
|
type: :runtime
|
155
166
|
prerelease: false
|
156
|
-
version_requirements: *
|
167
|
+
version_requirements: *70303473046840
|
157
168
|
- !ruby/object:Gem::Dependency
|
158
169
|
name: pg
|
159
|
-
requirement: &
|
170
|
+
requirement: &70303473090460 !ruby/object:Gem::Requirement
|
160
171
|
none: false
|
161
172
|
requirements:
|
162
173
|
- - =
|
@@ -164,10 +175,10 @@ dependencies:
|
|
164
175
|
version: 0.14.1
|
165
176
|
type: :runtime
|
166
177
|
prerelease: false
|
167
|
-
version_requirements: *
|
178
|
+
version_requirements: *70303473090460
|
168
179
|
- !ruby/object:Gem::Dependency
|
169
180
|
name: redis
|
170
|
-
requirement: &
|
181
|
+
requirement: &70303473102380 !ruby/object:Gem::Requirement
|
171
182
|
none: false
|
172
183
|
requirements:
|
173
184
|
- - =
|
@@ -175,10 +186,10 @@ dependencies:
|
|
175
186
|
version: 3.0.2
|
176
187
|
type: :runtime
|
177
188
|
prerelease: false
|
178
|
-
version_requirements: *
|
189
|
+
version_requirements: *70303473102380
|
179
190
|
- !ruby/object:Gem::Dependency
|
180
191
|
name: redis-objects
|
181
|
-
requirement: &
|
192
|
+
requirement: &70303473037860 !ruby/object:Gem::Requirement
|
182
193
|
none: false
|
183
194
|
requirements:
|
184
195
|
- - =
|
@@ -186,10 +197,10 @@ dependencies:
|
|
186
197
|
version: 0.6.1
|
187
198
|
type: :runtime
|
188
199
|
prerelease: false
|
189
|
-
version_requirements: *
|
200
|
+
version_requirements: *70303473037860
|
190
201
|
- !ruby/object:Gem::Dependency
|
191
202
|
name: carrierwave
|
192
|
-
requirement: &
|
203
|
+
requirement: &70303473012420 !ruby/object:Gem::Requirement
|
193
204
|
none: false
|
194
205
|
requirements:
|
195
206
|
- - =
|
@@ -197,10 +208,10 @@ dependencies:
|
|
197
208
|
version: 0.7.1
|
198
209
|
type: :runtime
|
199
210
|
prerelease: false
|
200
|
-
version_requirements: *
|
211
|
+
version_requirements: *70303473012420
|
201
212
|
- !ruby/object:Gem::Dependency
|
202
213
|
name: rest-client
|
203
|
-
requirement: &
|
214
|
+
requirement: &70303472703420 !ruby/object:Gem::Requirement
|
204
215
|
none: false
|
205
216
|
requirements:
|
206
217
|
- - =
|
@@ -208,10 +219,10 @@ dependencies:
|
|
208
219
|
version: 1.6.7
|
209
220
|
type: :runtime
|
210
221
|
prerelease: false
|
211
|
-
version_requirements: *
|
222
|
+
version_requirements: *70303472703420
|
212
223
|
- !ruby/object:Gem::Dependency
|
213
224
|
name: recursive-open-struct
|
214
|
-
requirement: &
|
225
|
+
requirement: &70303473183880 !ruby/object:Gem::Requirement
|
215
226
|
none: false
|
216
227
|
requirements:
|
217
228
|
- - =
|
@@ -219,10 +230,10 @@ dependencies:
|
|
219
230
|
version: 0.2.1
|
220
231
|
type: :runtime
|
221
232
|
prerelease: false
|
222
|
-
version_requirements: *
|
233
|
+
version_requirements: *70303473183880
|
223
234
|
- !ruby/object:Gem::Dependency
|
224
235
|
name: liquid
|
225
|
-
requirement: &
|
236
|
+
requirement: &70303473204820 !ruby/object:Gem::Requirement
|
226
237
|
none: false
|
227
238
|
requirements:
|
228
239
|
- - =
|
@@ -230,10 +241,10 @@ dependencies:
|
|
230
241
|
version: 2.4.1
|
231
242
|
type: :runtime
|
232
243
|
prerelease: false
|
233
|
-
version_requirements: *
|
244
|
+
version_requirements: *70303473204820
|
234
245
|
- !ruby/object:Gem::Dependency
|
235
246
|
name: file-tail
|
236
|
-
requirement: &
|
247
|
+
requirement: &70303473227740 !ruby/object:Gem::Requirement
|
237
248
|
none: false
|
238
249
|
requirements:
|
239
250
|
- - =
|
@@ -241,10 +252,10 @@ dependencies:
|
|
241
252
|
version: 1.0.12
|
242
253
|
type: :runtime
|
243
254
|
prerelease: false
|
244
|
-
version_requirements: *
|
255
|
+
version_requirements: *70303473227740
|
245
256
|
- !ruby/object:Gem::Dependency
|
246
257
|
name: rubyzip
|
247
|
-
requirement: &
|
258
|
+
requirement: &70303473240580 !ruby/object:Gem::Requirement
|
248
259
|
none: false
|
249
260
|
requirements:
|
250
261
|
- - =
|
@@ -252,10 +263,10 @@ dependencies:
|
|
252
263
|
version: 0.9.9
|
253
264
|
type: :runtime
|
254
265
|
prerelease: false
|
255
|
-
version_requirements: *
|
266
|
+
version_requirements: *70303473240580
|
256
267
|
- !ruby/object:Gem::Dependency
|
257
268
|
name: pry
|
258
|
-
requirement: &
|
269
|
+
requirement: &70303485016380 !ruby/object:Gem::Requirement
|
259
270
|
none: false
|
260
271
|
requirements:
|
261
272
|
- - =
|
@@ -263,10 +274,10 @@ dependencies:
|
|
263
274
|
version: 0.9.10
|
264
275
|
type: :runtime
|
265
276
|
prerelease: false
|
266
|
-
version_requirements: *
|
277
|
+
version_requirements: *70303485016380
|
267
278
|
- !ruby/object:Gem::Dependency
|
268
279
|
name: smartware
|
269
|
-
requirement: &
|
280
|
+
requirement: &70303485033880 !ruby/object:Gem::Requirement
|
270
281
|
none: false
|
271
282
|
requirements:
|
272
283
|
- - =
|
@@ -274,21 +285,21 @@ dependencies:
|
|
274
285
|
version: 0.3.1
|
275
286
|
type: :runtime
|
276
287
|
prerelease: false
|
277
|
-
version_requirements: *
|
288
|
+
version_requirements: *70303485033880
|
278
289
|
- !ruby/object:Gem::Dependency
|
279
290
|
name: smartguard
|
280
|
-
requirement: &
|
291
|
+
requirement: &70303485053700 !ruby/object:Gem::Requirement
|
281
292
|
none: false
|
282
293
|
requirements:
|
283
294
|
- - =
|
284
295
|
- !ruby/object:Gem::Version
|
285
|
-
version: 0.3.
|
296
|
+
version: 0.3.12
|
286
297
|
type: :runtime
|
287
298
|
prerelease: false
|
288
|
-
version_requirements: *
|
299
|
+
version_requirements: *70303485053700
|
289
300
|
- !ruby/object:Gem::Dependency
|
290
301
|
name: amqp
|
291
|
-
requirement: &
|
302
|
+
requirement: &70303485051740 !ruby/object:Gem::Requirement
|
292
303
|
none: false
|
293
304
|
requirements:
|
294
305
|
- - =
|
@@ -296,10 +307,10 @@ dependencies:
|
|
296
307
|
version: 0.9.8
|
297
308
|
type: :runtime
|
298
309
|
prerelease: false
|
299
|
-
version_requirements: *
|
310
|
+
version_requirements: *70303485051740
|
300
311
|
- !ruby/object:Gem::Dependency
|
301
312
|
name: sidekiq
|
302
|
-
requirement: &
|
313
|
+
requirement: &70303485070080 !ruby/object:Gem::Requirement
|
303
314
|
none: false
|
304
315
|
requirements:
|
305
316
|
- - =
|
@@ -307,10 +318,10 @@ dependencies:
|
|
307
318
|
version: 2.6.5
|
308
319
|
type: :runtime
|
309
320
|
prerelease: false
|
310
|
-
version_requirements: *
|
321
|
+
version_requirements: *70303485070080
|
311
322
|
- !ruby/object:Gem::Dependency
|
312
323
|
name: slim
|
313
|
-
requirement: &
|
324
|
+
requirement: &70303485083820 !ruby/object:Gem::Requirement
|
314
325
|
none: false
|
315
326
|
requirements:
|
316
327
|
- - =
|
@@ -318,10 +329,10 @@ dependencies:
|
|
318
329
|
version: 1.3.4
|
319
330
|
type: :runtime
|
320
331
|
prerelease: false
|
321
|
-
version_requirements: *
|
332
|
+
version_requirements: *70303485083820
|
322
333
|
- !ruby/object:Gem::Dependency
|
323
334
|
name: rufus-scheduler
|
324
|
-
requirement: &
|
335
|
+
requirement: &70303485098540 !ruby/object:Gem::Requirement
|
325
336
|
none: false
|
326
337
|
requirements:
|
327
338
|
- - =
|
@@ -329,17 +340,21 @@ dependencies:
|
|
329
340
|
version: 2.0.17
|
330
341
|
type: :runtime
|
331
342
|
prerelease: false
|
332
|
-
version_requirements: *
|
343
|
+
version_requirements: *70303485098540
|
333
344
|
description: Smartkiosk client application
|
334
345
|
email:
|
335
346
|
- boris@roundlake.ru
|
336
|
-
executables:
|
347
|
+
executables:
|
348
|
+
- smartkiosk-client
|
337
349
|
extensions: []
|
338
350
|
extra_rdoc_files: []
|
339
351
|
files:
|
340
352
|
- .gitignore
|
341
353
|
- Gemfile
|
342
354
|
- Rakefile
|
355
|
+
- app/assets/flash/amqp.swf
|
356
|
+
- app/assets/flash/expressInstall.swf
|
357
|
+
- app/assets/javascripts/amqp.js
|
343
358
|
- app/controllers/banners.rb
|
344
359
|
- app/controllers/collections.rb
|
345
360
|
- app/controllers/config.rb
|
@@ -375,6 +390,7 @@ files:
|
|
375
390
|
- app/workers/startup_worker.rb
|
376
391
|
- app/workers/sync/icons_worker.rb
|
377
392
|
- app/workers/sync/receipt_templates_worker.rb
|
393
|
+
- bin/smartkiosk-client
|
378
394
|
- config/boot.rb
|
379
395
|
- config/services/application.yml
|
380
396
|
- config/services/database.yml
|
@@ -397,6 +413,7 @@ files:
|
|
397
413
|
- init.rb
|
398
414
|
- lib/pinger.rb
|
399
415
|
- lib/smartkiosk/client.rb
|
416
|
+
- lib/smartkiosk/client/logging.rb
|
400
417
|
- lib/smartkiosk/client/version.rb
|
401
418
|
- lib/smartkiosk/config/chunk.rb
|
402
419
|
- lib/smartkiosk/config/yaml.rb
|
@@ -408,6 +425,8 @@ files:
|
|
408
425
|
- lib/tasks/services.rb
|
409
426
|
- smartkiosk-client.gemspec
|
410
427
|
- vendor/assets/javascripts/jquery.js
|
428
|
+
- vendor/assets/javascripts/mq.js
|
429
|
+
- vendor/assets/javascripts/swfobject.js
|
411
430
|
homepage: https://github.com/smartkiosk/smartkiosk-client
|
412
431
|
licenses: []
|
413
432
|
post_install_message:
|
@@ -422,7 +441,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
422
441
|
version: '0'
|
423
442
|
segments:
|
424
443
|
- 0
|
425
|
-
hash:
|
444
|
+
hash: 3225357940920908049
|
426
445
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
427
446
|
none: false
|
428
447
|
requirements:
|
@@ -431,7 +450,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
431
450
|
version: '0'
|
432
451
|
segments:
|
433
452
|
- 0
|
434
|
-
hash:
|
453
|
+
hash: 3225357940920908049
|
435
454
|
requirements: []
|
436
455
|
rubyforge_project:
|
437
456
|
rubygems_version: 1.8.15
|