shooting_star 3.2.4 → 3.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ *** 3.2.5 / 2007-12-10
2
+ + 1 major enhancement
3
+ + Implemented user agent detection for ipod/iphone.
4
+ + 1 minor bugfix
5
+ + Fixed acquisition of meteorStrike object in iframe.
6
+
1
7
  *** 3.2.4 / 2007-09-20
2
8
  + 1 major spec change:
3
9
  + Using ExternalInterface instead of fscommand.
@@ -240,8 +240,9 @@ module ShootingStar
240
240
  assets = URI.parse(@params['execute'])
241
241
  assets.path = '/javascripts/prototype.js'
242
242
  assets.query = assets.fragment = nil
243
- query = @query.sub(%r[\&sig=\d+], '') + '&__s__=0'
243
+ query = @query.sub(%r[\&sig=\d+], '')
244
244
  query += "&" + FormEncoder.encode(:event => :init, :type => :xhr)
245
+ query += '#0'
245
246
  event_id = MD5.new("event-init-xhr-#{Asteroid::now}").to_s
246
247
  heartbeat = @params['heartbeat'].to_i
247
248
  send_data "HTTP/1.1 200 OK\nContent-Type: text/html\n\n" +
@@ -1,3 +1,3 @@
1
1
  module ShootingStar
2
- VERSION = '3.2.4'
2
+ VERSION = '3.2.5'
3
3
  end
data/test/test_helper.rb CHANGED
@@ -31,3 +31,9 @@ class Test::Unit::TestCase
31
31
 
32
32
  # Add more helper methods to be used by all tests here...
33
33
  end
34
+
35
+ class ActionController::TestRequest
36
+ def user_agent
37
+ env['HTTP_USER_AGENT'] || self.class.to_s
38
+ end
39
+ end
@@ -8,9 +8,9 @@
8
8
  var channel = #{@channel.to_json};
9
9
  var javascript = #{@javascript.to_json};
10
10
  var execute = function(){
11
- var ms = parent.parent.meteorStrike[channel];
11
+ var ms = (parent.meteorStrike || parent.parent.meteorStrike)[channel];
12
12
  if(ms) ms.evaluate(javascript, location.hash.slice(1));
13
- else setTimeout(evaluate, 0);
13
+ else setTimeout(execute, 0);
14
14
  };
15
15
  execute();
16
16
  })();
@@ -18,6 +18,9 @@ module MeteorStrike
18
18
  cc += 'post-check=0, pre-check=0'
19
19
  controller.headers['Cache-Control'] = cc
20
20
  end
21
+ if !!request.user_agent[/iPhone|iPod/]
22
+ options[:noflash] = true
23
+ end
21
24
  @meteor_strike = controller.install_meteor_strike
22
25
  config = Meteor::config
23
26
  server = Meteor::server
@@ -45,8 +45,11 @@
45
45
  ms.getTags = function(){return TAGS};
46
46
  ms.getUid = function(){return UID};
47
47
  ms.executionQueue = {};
48
- ms.executionCounter = 0;
48
+ ms.executionCounter = null;
49
49
  ms.evaluate = function(js, serialId){
50
+ if(ms.executionCounter == null){
51
+ ms.executionCounter = serialId;
52
+ }
50
53
  ms.executionQueue[serialId] = js;
51
54
  if(serialId == ms.executionCounter){
52
55
  while(js = ms.executionQueue[ms.executionCounter]){
@@ -54,6 +57,14 @@
54
57
  delete ms.executionQueue[ms.executionCounter];
55
58
  ++ms.executionCounter;
56
59
  }
60
+ }else{
61
+ setTimeout(function(){
62
+ if(js = ms.executionQueue[this]){
63
+ eval(js);
64
+ delete ms.executionQueue[this];
65
+ ms.executionCounter = null;
66
+ }
67
+ }.bind(serialId), 3000);
57
68
  }
58
69
  };
59
70
  ms.event = function(params){
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: shooting_star
5
5
  version: !ruby/object:Gem::Version
6
- version: 3.2.4
7
- date: 2007-09-21 00:00:00 +09:00
6
+ version: 3.2.5
7
+ date: 2007-12-10 00:00:00 +09:00
8
8
  summary: Our goal is development of practical comet server which will be achieving over 100,000 simultaneous connections per host. On this purpose, we abandon portability and use system calls depending on particular OS such as epoll and kqueue.
9
9
  require_paths:
10
10
  - lib