civility 1 → 2

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/civility +1 -1
  3. data/lib/civility.rb +19 -11
  4. metadata +15 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1df76ba40aea50dec8f246b036906e5f27dc002d
4
- data.tar.gz: e4e16a66f545ae76eb60c719170730853392f213
3
+ metadata.gz: 9b0f74580880b0d37770465bf37e82dc32218f26
4
+ data.tar.gz: da8899ef0175eb9a1baf87abb25ac9478f95b4c7
5
5
  SHA512:
6
- metadata.gz: eef89961b15e37fca9565cd636057f6012e2eb8132fea08d112ac2ffc235875212cbd06927042ab341e4cf4dcf2644d9f9a4f7df99de75d38a7e60e441d6ef76
7
- data.tar.gz: f84cd67d695ec79d6ecf4adc4dae5a9658dce3b4e411b013e741ce9b8a97abd843d84f679f69d741f85825f3a9cdecd9f916736f31d60a5e02c66470a68a80f1
6
+ metadata.gz: e2ac60210ac526e0366b8065fb6dbdf903cabb490a52a7b8572e7f776147faf0aac6c29db0eaa04fc0f966ed6a19e5cf2244ddd0de768d0604dd77f7eca95844
7
+ data.tar.gz: ea43b7945ecbbdfe43b27f90bb5994a2d99af93709741dc63545bb3e96b4496f53d5e833551f30dd8edea083348f9d32e86955874f058f026214f03b6dbaf1c2
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require '/Users/abraham/dev/civility/lib/civility'
3
+ require 'civility'
4
4
 
5
5
  Civility.start(ARGV)
@@ -5,7 +5,7 @@ require 'yaml'
5
5
  require 'thor'
6
6
 
7
7
  class Civility < Thor
8
- VERSION = '1'
8
+ VERSION = '2'
9
9
  SAVE_DIRECTORY = "/Documents/Aspyr/Sid\ Meier\'s\ Civilization\ 5/Saves/hotseat/"
10
10
  FILE_PREFIX = 'civility'
11
11
  FILE_EXT = 'Civ5Save'
@@ -35,27 +35,28 @@ class Civility < Thor
35
35
  desc "games", "List your current games"
36
36
  def games
37
37
  return missing_auth_error unless auth_key
38
- response = get('GetGamesAndPlayers', {authKey: auth_key, playerIDText: user_id})
39
- response = JSON.parse(response)
40
- output_games(response['Games'])
41
- self.config = @config.merge(games: response['Games'], updated_at: Time.now.to_i)
38
+ games = api_games
39
+ output_games(games)
42
40
  end
43
41
 
44
42
  desc 'play', 'Download a game to play'
45
- def play(name)
43
+ def play(*name)
44
+ name = name.join(' ')
46
45
  return missing_auth_error unless auth_key
47
46
  game = game_by_name(name)
48
- return missing_game_error unless game
47
+ return missing_game_error(name) unless game
49
48
  path = game_path(game)
50
49
  file('GetLatestSaveFileBytes', {authKey: auth_key, gameID: game['GameId']}, path)
51
50
  puts "Saved #{game['Name']} to #{path}"
51
+ api_games
52
52
  end
53
53
 
54
54
  desc 'complete', 'Upload a completed turn'
55
- def complete(name)
55
+ def complete(*name)
56
+ name = name.join(' ')
56
57
  return missing_auth_error unless auth_key
57
58
  game = game_by_name(name)
58
- return missing_game_error unless game
59
+ return missing_game_error(name) unless game
59
60
  path = game_path(game)
60
61
  response = upload_file('SubmitTurn', {authKey: auth_key, turnId: game['CurrentTurn']['TurnId']}, path)
61
62
  response = JSON.parse(response)
@@ -75,6 +76,13 @@ class Civility < Thor
75
76
 
76
77
  private
77
78
 
79
+ def api_games
80
+ response = get('GetGamesAndPlayers', {authKey: auth_key, playerIDText: user_id})
81
+ response = JSON.parse(response)
82
+ self.config = @config.merge(games: response['Games'], updated_at: Time.now.to_i)
83
+ response['Games']
84
+ end
85
+
78
86
  def game_path(game)
79
87
  "#{Dir.home}#{SAVE_DIRECTORY}#{FILE_PREFIX}-#{normalize(game['Name'])}-#{game['GameId']}.#{FILE_EXT}"
80
88
  end
@@ -171,8 +179,8 @@ class Civility < Thor
171
179
  "Unable to parse response\nCode: #{response.code}\nBody: #{response.body}"
172
180
  end
173
181
 
174
- def missing_game_error
175
- puts 'Unable to find that game'
182
+ def missing_game_error(name)
183
+ puts "Unable to find the game #{name}"
176
184
  end
177
185
 
178
186
  def missing_auth_error
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: civility
3
3
  version: !ruby/object:Gem::Version
4
- version: '1'
4
+ version: '2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abraham Williams
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  description: Civility is the easiest way to manage your Civ5 hotseat games hosted
28
42
  on Giant Multiplayer Robot
29
43
  email: abraham@abrah.am