gameworks 1.0.0 → 1.0.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
  SHA1:
3
- metadata.gz: ffa430b13432be40c5d7012161ca9ae9d3cc2461
4
- data.tar.gz: bd766b49c63da9fbf51686c611371ed979a8e3c2
3
+ metadata.gz: df917ca798961d763e0a0767a16e65754d6d6153
4
+ data.tar.gz: 4a5afc01de838e342c9fee794ba576741ee3002a
5
5
  SHA512:
6
- metadata.gz: 914f509a5940360aaa8d33e1762e6624d07055c5b1e8d511c7c0726bc88dd6d869237242c0ced9d6ae90f9873bab9923256c9b4f9ce003fc7efd123daa1941d0
7
- data.tar.gz: 6b90a75243aad00713e1d8dac62331dda700a1673637a40900bb4de718d6ef4548de42d777264a234628e56659a857de586ca37df65f84ac13e1c7ea0e229271
6
+ metadata.gz: 82b73405e851e4e98a1758a2b42e2baf122243c8b93b611f7c57579bf0f3d75d5e558cc2b16e6250670ec6e2c7749768420e4d5046ed13cbaec32d257ca2b645
7
+ data.tar.gz: 45115aec3dd59ea486da297686beaede76c34c3b08020605df97022dabe379d3b9c17ab3e1c0893580465f517ec9653f23f9d056efbcfb80a3d53f41bebb64d7
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gameworks (1.0.0)
5
- eventmachine (~> 1.0.7)
6
- json (~> 1.8.3)
4
+ gameworks (1.0.1)
5
+ eventmachine (~> 1.0, >= 1.0.7)
6
+ json (~> 1.8, >= 1.8.3)
7
7
  rake (~> 10.0)
8
- thin (~> 1.6.3)
8
+ thin (~> 1.6, >= 1.6.3)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
@@ -43,8 +43,8 @@ PLATFORMS
43
43
  DEPENDENCIES
44
44
  bundler (~> 1.8)
45
45
  gameworks!
46
- rspec (~> 3.3.0)
47
- rspec-eventmachine (~> 0.2.0)
46
+ rspec (~> 3.3, >= 3.3.0)
47
+ rspec-eventmachine (~> 0.2)
48
48
 
49
49
  BUNDLED WITH
50
- 1.10.3
50
+ 1.10.5
data/build.sh ADDED
@@ -0,0 +1,8 @@
1
+ #! /bin/bash
2
+ . ~/.bash_profile
3
+ export COVERAGE=1
4
+ rvm use ruby-2.1.5 2>/dev/null || :
5
+
6
+ gem install bundler
7
+ bundle install
8
+ bundle exec rspec
@@ -1,4 +1,5 @@
1
1
  require_relative 'player'
2
+ require_relative 'notifier'
2
3
  require_relative 'game_snapshot'
3
4
  require_relative 'fuse'
4
5
 
@@ -11,9 +12,10 @@ module Gameworks
11
12
  STATE_IN_PLAY = 'in play'
12
13
  STATE_COMPLETED = 'completed'
13
14
 
14
- attr_reader :players, :state, :id, :delay_time
15
+ attr_reader :players, :state, :id, :delay_time, :notifier
15
16
 
16
17
  def initialize(payload={})
18
+ @notifier = Notifier.new
17
19
  @players = []
18
20
  @state = STATE_INITIATING
19
21
  @delay_time = payload['delay_time'] || DEFAULT_DELAY
@@ -35,6 +37,7 @@ module Gameworks
35
37
  cb.call(delta(snapshot).to_json)
36
38
  cb.succeed if end_game
37
39
  end
40
+ notifier.push(self, delta(initial_snapshot).to_json)
38
41
  end
39
42
 
40
43
  def snapshot_for_observer(token)
@@ -46,6 +49,10 @@ module Gameworks
46
49
  snapshot
47
50
  end
48
51
 
52
+ def initial_snapshot
53
+ @initial_snapshot ||= snapshot
54
+ end
55
+
49
56
  def player_changed?(player, snapshot, for_player=nil)
50
57
  player.score != snapshot.player_scores[player]
51
58
  end
@@ -0,0 +1,45 @@
1
+ require "net/http"
2
+
3
+ module Gameworks
4
+ class Notifier
5
+ def configured?
6
+ ![app_id, key, secret, base_url].any?(&:nil?)
7
+ end
8
+
9
+ def push(game, body)
10
+ return unless configured?
11
+
12
+ uri = URI(build_url(game))
13
+ req = Net::HTTP::Post.new(uri)
14
+
15
+ req.basic_auth(key, secret)
16
+ req.body = body
17
+ req["Content-Type"] = "application/json"
18
+ Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
19
+ http.request(req)
20
+ end
21
+ end
22
+
23
+ private
24
+
25
+ def build_url(game)
26
+ "%s/channel/%s/public/games/%s" % [base_url, app_id, game.id]
27
+ end
28
+
29
+ def app_id
30
+ @app_id ||= ENV["PANDA_PUSH_APP_ID"]
31
+ end
32
+
33
+ def key
34
+ @key ||= ENV["PANDA_PUSH_KEY"]
35
+ end
36
+
37
+ def secret
38
+ @secret ||= ENV["PANDA_PUSH_SECRET"]
39
+ end
40
+
41
+ def base_url
42
+ @base_url ||= ENV["PANDA_PUSH_URL"]
43
+ end
44
+ end
45
+ end
@@ -1,3 +1,3 @@
1
1
  module Gameworks
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gameworks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Palmer
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2015-07-07 00:00:00.000000000 Z
15
+ date: 2015-07-09 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rake
@@ -154,12 +154,14 @@ files:
154
154
  - Rakefile
155
155
  - bin/console
156
156
  - bin/setup
157
+ - build.sh
157
158
  - gameworks.gemspec
158
159
  - lib/gameworks.rb
159
160
  - lib/gameworks/fuse.rb
160
161
  - lib/gameworks/game.rb
161
162
  - lib/gameworks/game_registry.rb
162
163
  - lib/gameworks/game_snapshot.rb
164
+ - lib/gameworks/notifier.rb
163
165
  - lib/gameworks/player.rb
164
166
  - lib/gameworks/server.rb
165
167
  - lib/gameworks/servlet/add_move.rb