play_time 0.0.2 → 0.0.3

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: b9fda01e40d6f45ff8a8cd45993ad4607980d8db
4
- data.tar.gz: 9873585e4d98abdd9427db9be366bb3927d3b7ba
3
+ metadata.gz: 52263d955063ada0381b1f92eb4f3eb888e9b09a
4
+ data.tar.gz: a4a5c66750eeba46e127b1a16813fb3935873559
5
5
  SHA512:
6
- metadata.gz: 45a538a54f11c912363f9ba6e4fe31be275c99f78aacd5bb61f7821fa58d89594207cdd2c9079b2d37f8904d4481421e1fb4836bb930af157d6f6a8f5468d2d6
7
- data.tar.gz: 086f36a90eb5023bfacf2ca3b9f32d5e7960c3543c10ed56744533f764f0cb69d359a0fd14cb7fcef6c642de9118b22c3c8412ec3aac48455e8db236cddefd8e
6
+ metadata.gz: 416e3bbdbde16698f213f275b444181ca7e5ccbb448bb6f51de1fe026d87acc436da08573ce16df454d001ea2a6bc3ca405e5f4af51f6110f704363cfe28aa73
7
+ data.tar.gz: c8a5867c0c328306ee31d97a5d2f555e82bc85946d4ba10c3d72e79ebe6046ef13c7e2a125748a49a982af22242a33affd816da19bad15854cd51678b677f736
@@ -24,29 +24,33 @@ module PlayTime
24
24
 
25
25
  private
26
26
 
27
- attr_reader :edit_id
27
+ attr_reader :edit_id, :version_code
28
28
 
29
29
  def create_insert
30
- @edit_id = Runner.run!(client, api_method: service.edits.insert, parameters: parameters).data.id
30
+ @edit_id = run!(api_method: service.edits.insert, parameters: parameters).data.id
31
31
  end
32
32
 
33
33
  def upload_apk
34
34
  upload_params = parameters.merge(editId: edit_id, uploadType: 'media')
35
- Runner.run! client, api_method: service.edits.apks.upload, parameters: upload_params, media: Apk.load
35
+ @version_code = run!(api_method: service.edits.apks.upload, parameters: upload_params, media: Apk.load).data.versionCode
36
36
  end
37
37
 
38
38
  def update_track(track)
39
39
  update_params = parameters.merge(editId: edit_id, track: track)
40
- Runner.run! client, api_method: service.edits.tracks.update, parameters: update_params
40
+ run! api_method: service.edits.tracks.update, parameters: update_params, body_object: { versionCodes: [version_code] }
41
41
  end
42
42
 
43
43
  def save
44
44
  commit_params = parameters.merge(editId: edit_id)
45
- Runner.run! client, api_method: service.edits.commit, parameters: commit_params
45
+ run! api_method: service.edits.commit, parameters: commit_params
46
+ end
47
+
48
+ def run!(options = {})
49
+ Runner.run! client, options
46
50
  end
47
51
 
48
52
  def parameters
49
- {package_name: PlayTime.configuration.package_name}
53
+ {packageName: PlayTime.configuration.package_name}
50
54
  end
51
55
 
52
56
  def client
@@ -1,5 +1,7 @@
1
1
  module PlayTime
2
2
  class Configuration
3
+ class MissingOption < StandardError; end
4
+
3
5
  DEFAULT_CONFIG = 'config/play_time.yml'.freeze
4
6
  OPTIONS = %w(
5
7
  apk_path
@@ -17,9 +19,9 @@ module PlayTime
17
19
 
18
20
  OPTIONS.each do |config_name|
19
21
  eval <<-RUBY
20
- def #{config_name} # def config_option
21
- config["#{config_name}"] # config['config_option']
22
- end # end
22
+ def #{config_name}
23
+ config["#{config_name}"] || raise(MissingOption, "Missing #{config_name} in \#{PlayTime.config_path}")
24
+ end
23
25
  RUBY
24
26
  end
25
27
 
@@ -1,40 +1,17 @@
1
1
  module PlayTime
2
2
  class Runner
3
- class IOError < StandardError; end
4
3
  class ResponseError < StandardError; end
5
4
 
6
5
  class << self
7
6
  def run!(client, options = {})
8
7
  response = client.execute(options)
9
8
 
10
- if error?(response)
11
- raise error_for(response)
9
+ if response.data && (error = response.data['error'])
10
+ raise ResponseError, error
12
11
  else
13
12
  response
14
13
  end
15
14
  end
16
-
17
- private
18
-
19
- def has_data?(response)
20
- response && response.data
21
- end
22
-
23
- def error?(response)
24
- !has_data?(response) || response.data['error']
25
- end
26
-
27
- def error_message(response)
28
- response.data['error'] if has_data?(response)
29
- end
30
-
31
- def error_for(response)
32
- if error_message = error_message(response)
33
- ResponseError.new(error_message)
34
- else
35
- IOError
36
- end
37
- end
38
15
  end
39
16
  end
40
17
  end
@@ -1,3 +1,3 @@
1
1
  module PlayTime
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/spec/client_spec.rb CHANGED
@@ -67,7 +67,7 @@ describe PlayTime::Client do
67
67
  describe '#commit' do
68
68
  let(:track) { 'alpha' }
69
69
  let(:service) { double(Google::APIClient::API) }
70
- let(:response) { double(:response, data: double(:data, id: 'id')) }
70
+ let(:response) { double(:response, data: double(:data, id: 'id', versionCode: 'version code')) }
71
71
  let(:apk_file) { instance_double(Google::APIClient::UploadIO) }
72
72
 
73
73
  subject { PlayTime::Client.new.commit(track) }
@@ -94,7 +94,7 @@ describe PlayTime::Client do
94
94
  subject
95
95
 
96
96
  expect(PlayTime::Runner).to have_received(:run!).with(
97
- api_client, api_method: 'insert', parameters: { package_name: 'com.package.name' })
97
+ api_client, api_method: 'insert', parameters: { packageName: 'com.package.name' })
98
98
  end
99
99
 
100
100
  it 'uploads an apk file' do
@@ -103,7 +103,7 @@ describe PlayTime::Client do
103
103
  expect(PlayTime::Runner).to have_received(:run!).with(
104
104
  api_client,
105
105
  api_method: 'upload',
106
- parameters: { package_name: 'com.package.name', editId: 'id', uploadType: 'media' },
106
+ parameters: { packageName: 'com.package.name', editId: 'id', uploadType: 'media' },
107
107
  media: apk_file
108
108
  )
109
109
  end
@@ -114,7 +114,8 @@ describe PlayTime::Client do
114
114
  expect(PlayTime::Runner).to have_received(:run!).with(
115
115
  api_client,
116
116
  api_method: 'track update',
117
- parameters: { package_name: 'com.package.name', editId: 'id', track: track }
117
+ parameters: { packageName: 'com.package.name', editId: 'id', track: track },
118
+ body_object: { versionCodes: ['version code'] }
118
119
  )
119
120
  end
120
121
 
@@ -124,7 +125,7 @@ describe PlayTime::Client do
124
125
  expect(PlayTime::Runner).to have_received(:run!).with(
125
126
  api_client,
126
127
  api_method: 'commit',
127
- parameters: { package_name: 'com.package.name', editId: 'id' }
128
+ parameters: { packageName: 'com.package.name', editId: 'id' }
128
129
  )
129
130
  end
130
131
  end
@@ -7,6 +7,16 @@ describe PlayTime::Configuration do
7
7
  it "fetchings the option from the config" do
8
8
  expect(subject).to eq option
9
9
  end
10
+
11
+ context 'missing options' do
12
+ let(:configuration) { PlayTime::Configuration.new({'foo' => 'bar'}) }
13
+
14
+ it "raises an exception for each missing param" do
15
+ expect {
16
+ subject
17
+ }.to raise_error PlayTime::Configuration::MissingOption, "Missing #{option} in #{PlayTime.config_path}"
18
+ end
19
+ end
10
20
  end
11
21
 
12
22
  PlayTime::Configuration::OPTIONS.each do |option|
data/spec/runner_spec.rb CHANGED
@@ -16,29 +16,17 @@ describe PlayTime::Runner do
16
16
  it 'returns a response' do
17
17
  expect(subject).to eq response
18
18
  end
19
- end
20
-
21
- context 'when failure' do
22
- context 'when no response' do
23
- let(:response) { nil }
24
-
25
- it 'raises an error' do
26
- expect {
27
- subject
28
- }.to raise_error PlayTime::Runner::IOError
29
- end
30
- end
31
19
 
32
20
  context 'when data is nil' do
33
21
  let(:response) { double(:response, data: nil) }
34
22
 
35
- it 'raises an error' do
36
- expect {
37
- subject
38
- }.to raise_error PlayTime::Runner::IOError
23
+ it 'returns the response' do
24
+ expect(subject).to eq response
39
25
  end
40
26
  end
27
+ end
41
28
 
29
+ context 'when failure' do
42
30
  context 'when data has an error' do
43
31
  let(:response) { double(:response, data: {'error' => 'Something went wrong'}) }
44
32
 
@@ -1,5 +1,7 @@
1
1
  package_name: com.example.app
2
2
  secret_path: /path/to/secret/secret.p12
3
+ secret_passphrase: notasecret
3
4
  apk_path: /path/to/alpha/app.apk
4
- client_name: 'Google API Client Name'
5
- client_version: '1.0.0'
5
+ client_name: Google API Client Name
6
+ client_version: 1.0.0
7
+ issuer: issuer@developer.gserviceaccount.com
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: play_time
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - IS Dev team