deploygate 0.0.4 → 0.0.5

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: 4d4e48df0e61daf6cdbeed6389750ea02dc1d47c
4
- data.tar.gz: 46dc7c9fd4c536b58aafd09665a5cef09992a366
3
+ metadata.gz: bcbc0cf5a40dedda39f5a8133e251de4c6c8d955
4
+ data.tar.gz: 17e3f2da919f53adf2d2506d89a0e9c9c3b6f180
5
5
  SHA512:
6
- metadata.gz: 8243028a3183bde7dfb72d265fad7d2a18c82be0a1db821b2dd8e34868b34d1621ba57fa31edaddf3418d45a904f6f01045bb5dff44596e34f4de6cd0bdbea3a
7
- data.tar.gz: 7534091412ab6ceefd8c7920e10e5d2b5f19c9a47ab104775613582c6e783d889e8c3ff3ec03e88828af42910dff605f1a61398424966abf18e29d994489f3d5
6
+ metadata.gz: 7f9aac5b243a50fb6978e2fbd4d949dcb8cf89e668072d8d677344e1d052c8d60bcf970f7191ae2ace4d37cb4e63019b456912e8bac2cb3d846db00cb1c850cf
7
+ data.tar.gz: 0ac60a3e559e6330e0f5e7114e1eda5cbf8e133cdc1775f7d4bcabcd5ab76e512351e3c19f09b67d23ff05af6fc98088c19fe050ef647ca6cae340eacc855e68
data/deploygate.gemspec CHANGED
@@ -18,10 +18,6 @@ dg installed! To get started fast:
18
18
 
19
19
  $ dg deploy
20
20
 
21
- Or see the docs at:
22
-
23
- https://deploygate.com/docs/cli
24
-
25
21
  POST_INSTALL_MESSAGE
26
22
 
27
23
  spec.add_dependency 'json', '~> 1.8.2'
@@ -40,6 +36,7 @@ POST_INSTALL_MESSAGE
40
36
  spec.add_dependency 'gym', '~> 1.0.0'
41
37
  spec.add_dependency 'spaceship', '~> 0.12.3'
42
38
  spec.add_dependency 'sigh', '~> 1.1.0'
39
+ spec.add_dependency 'locale'
43
40
 
44
41
  spec.add_development_dependency "bundler", "~> 1.3"
45
42
  spec.add_development_dependency "rake"
@@ -6,14 +6,23 @@ module DeployGate
6
6
 
7
7
  class << self
8
8
 
9
+ # @param [String] token
10
+ # @return [Hash]
11
+ def show(token)
12
+ res = Base.new(token).get(ENDPOINT + '/user', {})
13
+ return nil if res['error']
14
+
15
+ res['results']
16
+ end
17
+
9
18
  # @param [String] name
10
19
  # @param [String] token
11
20
  # @return [Boolean]
12
21
  def check(name, token)
13
- res = Base.new(token).get(ENDPOINT + '/user', {})
14
- return false if res['error']
22
+ results = show(token)
23
+ return false if results.nil?
15
24
 
16
- name == res['results']['name']
25
+ name == results['name']
17
26
  end
18
27
 
19
28
  # @param [String] email
@@ -9,9 +9,10 @@ module DeployGate
9
9
  # @param [String] name
10
10
  # @param [String] email
11
11
  # @param [String] password
12
+ # @param [String] locale
12
13
  # @return [Hash]
13
- def create(name, email, password)
14
- res = Base.new().post(ENDPOINT, {:name => name, :email => email, :password => password})
14
+ def create(name, email, password, locale = 'en')
15
+ res = Base.new().post(ENDPOINT, {:name => name, :email => email, :password => password, :locale => locale})
15
16
 
16
17
  user_create_results = {
17
18
  :error => res['error'],
@@ -28,6 +28,7 @@ module DeployGate
28
28
  @scheme = project.options[:scheme]
29
29
  end
30
30
 
31
+ # Support Xcode7 more
31
32
  # @return [String]
32
33
  def target_bundle_identifier
33
34
  product_name = target_product_name
@@ -50,17 +50,17 @@ module DeployGate
50
50
  certificate_str = cert.read
51
51
  certificate = OpenSSL::X509::Certificate.new certificate_str
52
52
  id = OpenSSL::Digest::SHA1.new(certificate.to_der).to_s.upcase!
53
- installed_identies.include?(id)
53
+ installed_distribution_certificate_ids.include?(id)
54
54
  end
55
55
  certs.include?(true)
56
56
  end
57
57
 
58
58
  # @return [Array]
59
- def installed_identies
60
- available = `security find-identity -v -p codesigning`
59
+ def installed_distribution_certificate_ids
60
+ certificates = installed_certificates()
61
61
  ids = []
62
- available.split("\n").each do |current|
63
- next if current.include? "REVOKED"
62
+ certificates.each do |current|
63
+ next unless current.match(/iPhone Distribution:/)
64
64
  begin
65
65
  (ids << current.match(/.*\) (.*) \".*/)[1])
66
66
  rescue
@@ -71,6 +71,43 @@ module DeployGate
71
71
  ids
72
72
  end
73
73
 
74
+ # @return [Array]
75
+ def installed_distribution_conflicting_certificates
76
+ certificates = installed_certificates()
77
+ names = []
78
+ certificates.each do |current|
79
+ begin
80
+ names << current.match(/(iPhone Distribution:.*)/)[1]
81
+ rescue
82
+ end
83
+ end
84
+
85
+ conflicting_names = names.select{|e| names.index(e) != names.rindex(e)}.uniq
86
+ conflicting_certificates = []
87
+ certificates.each do |current|
88
+ begin
89
+ name = current.match(/(iPhone Distribution:.*)/)[1]
90
+ next unless conflicting_names.include?(name)
91
+ conflicting_certificates << current
92
+ rescue
93
+ end
94
+ end
95
+
96
+ conflicting_certificates
97
+ end
98
+
99
+ # @return [Array]
100
+ def installed_certificates
101
+ available = `security find-identity -v -p codesigning`
102
+ certificates = []
103
+ available.split("\n").each do |current|
104
+ next if current.include? "REVOKED"
105
+ certificates << current
106
+ end
107
+
108
+ certificates
109
+ end
110
+
74
111
  # @param [Array] profile_paths
75
112
  # @return [String]
76
113
  def select_profile(profile_paths)
@@ -11,14 +11,14 @@ module DeployGate
11
11
  program :version, VERSION
12
12
  program :description, 'You can control to DeployGate in your terminal.'
13
13
 
14
- command :init do |c|
15
- c.syntax = 'dg init'
16
- c.description = 'project initial command'
14
+ command :login do |c|
15
+ c.syntax = 'dg login'
16
+ c.description = 'DeployGate login command'
17
17
  c.action do |args, options|
18
18
  begin
19
- Commands::Init.run
19
+ Commands::Login.run
20
20
  rescue => e
21
- error_handling("Commands::Init Error: #{e.class}", create_error_issue_body(e))
21
+ error_handling("Commands::Login Error: #{e.class}", create_error_issue_body(e))
22
22
  raise e
23
23
  end
24
24
  end
@@ -56,6 +56,22 @@ module DeployGate
56
56
  end
57
57
  end
58
58
 
59
+ command :config do |c|
60
+ c.syntax = 'dg config'
61
+ c.description = 'dg user login config'
62
+ c.option '--json', 'output json format'
63
+ c.option '--name STRING', String, 'your DeployGate user name'
64
+ c.option '--token STRING', String, 'your DeployGate api token'
65
+ c.action do |args, options|
66
+ begin
67
+ Commands::Config.run(args, options)
68
+ rescue => e
69
+ error_handling("Commands::Config Error: #{e.class}", create_error_issue_body(e))
70
+ raise e
71
+ end
72
+ end
73
+ end
74
+
59
75
  run!
60
76
  end
61
77
 
@@ -0,0 +1,118 @@
1
+ module DeployGate
2
+ module Commands
3
+ class Config
4
+ class << self
5
+
6
+ # @param [Array] args
7
+ # @param [Commander::Command::Options] options
8
+ def run(args, options)
9
+ json_format = options.json
10
+ name = options.name
11
+ token = options.token
12
+
13
+ if name.nil? || token.nil?
14
+ login_user = DeployGate::Session.new().show_login_user
15
+ if login_user.nil?
16
+ print_not_login(json_format)
17
+ else
18
+ print_login_user(login_user, json_format)
19
+ end
20
+ else
21
+ login(name, token, json_format)
22
+ end
23
+ end
24
+
25
+ # @param [String] name
26
+ # @param [String] token
27
+ # @param [Boolean] json_format
28
+ # @return [void]
29
+ def login(name, token, json_format)
30
+ if API::V1::Session.check(name, token)
31
+ DeployGate::Session.save(name, token)
32
+ login_user = DeployGate::Session.new().show_login_user
33
+ print_login_success(login_user, json_format)
34
+ else
35
+ print_login_failed(json_format)
36
+ end
37
+ end
38
+
39
+ # @param [Hash] login_user
40
+ # @param [Boolean] json_format
41
+ # @return [void]
42
+ def print_login_success(login_user, json_format)
43
+ message = 'Login success'
44
+ data = {:message => message, :error => false}
45
+
46
+ unless json_format
47
+ DeployGate::Message::Success.print(message)
48
+ puts ''
49
+ end
50
+
51
+ print_login_user(login_user, json_format, data)
52
+ end
53
+
54
+ # @param [Boolean] json_format
55
+ # @param [Hash] data
56
+ # @return [void]
57
+ def print_login_failed(json_format, data = {})
58
+ message = 'Login failed'
59
+ data[:error] = true
60
+ data[:message] = message
61
+
62
+ if json_format
63
+ print_json(data)
64
+ else
65
+ DeployGate::Message::Error.print(message)
66
+ puts <<EOF
67
+
68
+ Please check your name and api token.
69
+ EOF
70
+ end
71
+ end
72
+
73
+ # @param [Boolean] json_format
74
+ # @param [Hash] data
75
+ # @return [void]
76
+ def print_not_login(json_format, data = {})
77
+ message = 'Not user login'
78
+ data[:error] = true
79
+ data[:message] = message
80
+
81
+ if json_format
82
+ print_json(data)
83
+ else
84
+ DeployGate::Message::Warning.print(message)
85
+ puts <<EOF
86
+
87
+ Please login to dg command.
88
+ $ dg login
89
+ EOF
90
+ end
91
+ end
92
+
93
+ # @param [Hash] login_user
94
+ # @param [Boolean] json_format
95
+ # @param [Hash] data
96
+ # @return [void]
97
+ def print_login_user(login_user, json_format, data = {})
98
+ data[:error] = data[:error].nil? ? false : data[:error]
99
+ data[:name] = login_user['name']
100
+
101
+ if json_format
102
+ print_json(data)
103
+ else
104
+ puts <<EOF
105
+ User name: #{data[:name]}
106
+ EOF
107
+ end
108
+ end
109
+
110
+ # @param [Hash] data
111
+ # @return [void]
112
+ def print_json(data)
113
+ puts data.to_json
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
@@ -12,6 +12,7 @@ module DeployGate
12
12
  work_dir = args.first
13
13
 
14
14
  if DeployGate::Build.ios?(work_dir)
15
+ check_local_certificates()
15
16
  root_path = DeployGate::Builds::Ios.project_root_path(work_dir)
16
17
  workspaces = DeployGate::Builds::Ios.find_workspaces(root_path)
17
18
  ios(workspaces, options)
@@ -156,6 +157,38 @@ Please run on the root directory of iOS project or specify .apk/.ipa file to dep
156
157
  EOF
157
158
  DeployGate::Message::Warning.print(message)
158
159
  end
160
+
161
+ def check_local_certificates
162
+ if DeployGate::Builds::Ios::Export.installed_distribution_certificate_ids.count == 0
163
+ # not local install certificate
164
+ DeployGate::Message::Error.print("Error: Not local install distribution certificate")
165
+ puts <<EOF
166
+
167
+ Not local install iPhone Distribution certificates.
168
+ Please install certificate.
169
+
170
+ Docs: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html
171
+
172
+ EOF
173
+ exit
174
+ end
175
+
176
+ conflicting_certificates = DeployGate::Builds::Ios::Export.installed_distribution_conflicting_certificates
177
+ if conflicting_certificates.count > 0
178
+ DeployGate::Message::Error.print("Error: Conflicting local install certificates")
179
+ puts <<EOF
180
+
181
+ Conflicting local install certificates.
182
+ Please uninstall certificates.
183
+ EOF
184
+ conflicting_certificates.each do |certificate|
185
+ puts certificate
186
+ end
187
+ puts ""
188
+
189
+ exit
190
+ end
191
+ end
159
192
  end
160
193
  end
161
194
  end
@@ -12,7 +12,7 @@ module DeployGate
12
12
  def upload(args, options)
13
13
  session = DeployGate::Session.new()
14
14
  unless session.login?
15
- Init.login
15
+ Login.start_login_or_create_account()
16
16
  session = DeployGate::Session.new()
17
17
  end
18
18
 
@@ -6,7 +6,7 @@ module DeployGate
6
6
  # @param [Array] args
7
7
  # @param [Commander::Command::Options] options
8
8
  def run(args, options)
9
- Init.start_login_or_create_account() unless DeployGate::Session.new.login?
9
+ Login.start_login_or_create_account() unless DeployGate::Session.new.login?
10
10
 
11
11
  # push or build(android/ios)
12
12
  args.push(Dir.pwd) if args.empty?
@@ -1,18 +1,17 @@
1
1
  module DeployGate
2
2
  module Commands
3
- class Init
3
+ class Login
4
4
  class << self
5
5
 
6
6
  # @return [void]
7
7
  def run
8
- start_login_or_create_account() unless Session.new().login?
9
-
10
- finish
8
+ start_login_or_create_account()
11
9
  end
12
10
 
13
11
  # @return [void]
14
12
  def start_login_or_create_account
15
13
  puts 'Welcome to DeployGate!'
14
+ print_deploygate_aa()
16
15
  puts ''
17
16
  email = ask("Email: ")
18
17
 
@@ -22,7 +21,7 @@ module DeployGate
22
21
  puts ''
23
22
  password = input_password('Password: ')
24
23
  puts ''
25
- login(email, password)
24
+ start(email, password)
26
25
  else
27
26
  create_account(email)
28
27
  end
@@ -31,7 +30,7 @@ module DeployGate
31
30
  # @param [String] email
32
31
  # @param [String] password
33
32
  # @return [void]
34
- def login(email, password)
33
+ def start(email, password)
35
34
  begin
36
35
  Session.login(email, password)
37
36
  rescue Session::LoginError => e
@@ -65,7 +64,7 @@ module DeployGate
65
64
  raise 'User create error'
66
65
  else
67
66
  Message::Success.print('done! Your account has been set up successfully.')
68
- login(email, password)
67
+ start(email, password)
69
68
  end
70
69
  end
71
70
 
@@ -101,9 +100,16 @@ module DeployGate
101
100
  ask(message) { |q| q.echo = "*" }
102
101
  end
103
102
 
104
- # @return [void]
105
- def finish
106
- Message::Success.print('Enjoy development!')
103
+ def print_deploygate_aa
104
+ puts <<'EOF'
105
+ _ _ _
106
+ | | | | | |
107
+ __| | ___ ___ | | ___ _ ,____ ___ | |_ ___
108
+ / _` |/ _ \' _ \| |/ _ \ \ / / _ \ / _ `| __/ _ \
109
+ | (_| | __/ |_) | | (_) \ v / (_| | (_| | |_' __/
110
+ \___, \___| .__/|_|\___/ ` / \__, |\__,_|\__\___`
111
+ |_| /_/ |___/
112
+ EOF
107
113
  end
108
114
  end
109
115
  end
@@ -17,6 +17,10 @@ module DeployGate
17
17
  @@login = @@login.nil? ? API::V1::Session.check(@name, @token) : @@login
18
18
  end
19
19
 
20
+ def show_login_user
21
+ API::V1::Session.show(@token)
22
+ end
23
+
20
24
  # @param [String] email
21
25
  # @param [String] password
22
26
  # @return [void]
@@ -13,7 +13,8 @@ module DeployGate
13
13
  # @param [String] password
14
14
  # @return [DeployGate::User]
15
15
  def self.create(name, email, password)
16
- results = DeployGate::API::V1::User.create(name, email, password)
16
+ locale = Locale.current.language
17
+ results = DeployGate::API::V1::User.create(name, email, password, locale)
17
18
  return if results[:error]
18
19
  DeployGate::User.new(results[:name])
19
20
  end
@@ -1,3 +1,3 @@
1
1
  module DeployGate
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/deploygate.rb CHANGED
@@ -12,6 +12,7 @@ require "highline"
12
12
  require "uuid"
13
13
  require "gem_update_checker"
14
14
  require "active_support/core_ext/time"
15
+ require "locale"
15
16
 
16
17
  # ios build
17
18
  require "gym"
@@ -27,8 +28,9 @@ require "deploygate/api/v1/session"
27
28
  require "deploygate/api/v1/push"
28
29
  require "deploygate/api/v1/user"
29
30
  require "deploygate/command_builder"
30
- require "deploygate/commands/init"
31
+ require "deploygate/commands/login"
31
32
  require "deploygate/commands/logout"
33
+ require "deploygate/commands/config"
32
34
  require "deploygate/commands/deploy"
33
35
  require "deploygate/commands/deploy/push"
34
36
  require "deploygate/commands/deploy/build"
@@ -1,25 +1,24 @@
1
1
  describe DeployGate::API::V1::Session do
2
- describe "#check" do
2
+ describe "#show" do
3
3
  it "logined" do
4
4
  token = 'token'
5
5
  name = 'test'
6
6
  response = {
7
7
  :error => false,
8
8
  :because => '',
9
- :results => {:name => name}
9
+ :results => {'name' => name}
10
10
  }
11
11
  stub_request(:get, "#{API_ENDPOINT}/sessions/user").
12
12
  with(:headers => { 'AUTHORIZATION' => token }).
13
13
  to_return(:body => response.to_json)
14
14
 
15
15
 
16
- result = DeployGate::API::V1::Session.check(name, token)
17
- expect(result).to be_truthy
16
+ results = DeployGate::API::V1::Session.show(token)
17
+ expect(results).to eql response[:results]
18
18
  end
19
19
 
20
20
  it "not login" do
21
21
  token = 'token'
22
- name = 'test'
23
22
  response = {
24
23
  :error => true,
25
24
  :because => 'error message'
@@ -28,6 +27,26 @@ describe DeployGate::API::V1::Session do
28
27
  with(:headers => { 'AUTHORIZATION' => token }).
29
28
  to_return(:body => response.to_json)
30
29
 
30
+ results = DeployGate::API::V1::Session.show(token)
31
+ expect(results).to eql response[:results]
32
+ end
33
+ end
34
+ describe "#check" do
35
+ it "logined" do
36
+ token = 'token'
37
+ name = 'test'
38
+ results = {'name' => name}
39
+ allow(DeployGate::API::V1::Session).to receive(:show).and_return(results)
40
+
41
+ result = DeployGate::API::V1::Session.check(name, token)
42
+ expect(result).to be_truthy
43
+ end
44
+
45
+ it "not login" do
46
+ token = 'token'
47
+ name = 'test'
48
+ allow(DeployGate::API::V1::Session).to receive(:show).and_return(nil)
49
+
31
50
  result = DeployGate::API::V1::Session.check(name, token)
32
51
  expect(result).to be_falsey
33
52
  end
@@ -56,4 +56,41 @@ describe DeployGate::Builds::Ios::Export do
56
56
  expect(DeployGate::Builds::Ios::Export.inhouse?('path')).to be_falsey
57
57
  end
58
58
  end
59
+
60
+ describe "#installed_distribution_certificate_ids" do
61
+ before do
62
+ @distribution_certificate_id = 'distribution_certificate_id'
63
+ @distribution_certificate = " 1) #{@distribution_certificate_id} \"iPhone Distribution: DeployGate Inc.\""
64
+ @not_distribution_certificate = " 1) xxxxxxxxxxxxxx \"iPhone Developer: DeployGate Inc.\""
65
+ end
66
+ it "not installed distribution certificate" do
67
+ allow(DeployGate::Builds::Ios::Export).to receive(:installed_certificates).and_return([@not_distribution_certificate])
68
+ expect(DeployGate::Builds::Ios::Export.installed_distribution_certificate_ids.count).to eql 0
69
+ end
70
+
71
+ it "installed distribution certificate" do
72
+ allow(DeployGate::Builds::Ios::Export).to receive(:installed_certificates).and_return([@distribution_certificate, @not_distribution_certificate])
73
+
74
+ ids = DeployGate::Builds::Ios::Export.installed_distribution_certificate_ids
75
+ expect(ids).to eql([@distribution_certificate_id])
76
+ end
77
+ end
78
+
79
+ describe "#installed_distribution_conflicting_certificates" do
80
+ before do
81
+ @distribution_certificate = " 1) xxxxxxxxxx \"iPhone Distribution: DeployGate Inc.\""
82
+ @distribution_certificate2 = " 2) yyyyyyyyyyyy \"iPhone Distribution: DeployGate Inc.\""
83
+ @distribution_certificate3 = " 2) yyyyyyyyyyyy \"iPhone Distribution: DeployGate Inc2.\""
84
+ end
85
+
86
+ it "conflicting" do
87
+ allow(DeployGate::Builds::Ios::Export).to receive(:installed_certificates).and_return([@distribution_certificate, @distribution_certificate2])
88
+ expect(DeployGate::Builds::Ios::Export.installed_distribution_conflicting_certificates.count).to eql 2
89
+ end
90
+
91
+ it "not conflicting" do
92
+ allow(DeployGate::Builds::Ios::Export).to receive(:installed_certificates).and_return([@distribution_certificate, @distribution_certificate3])
93
+ expect(DeployGate::Builds::Ios::Export.installed_distribution_conflicting_certificates.count).to eql 0
94
+ end
95
+ end
59
96
  end
@@ -0,0 +1,3 @@
1
+ describe DeployGate::User do
2
+ # TODO: add test
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deploygate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - deploygate
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-05 00:00:00.000000000 Z
11
+ date: 2015-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -206,6 +206,20 @@ dependencies:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: 1.1.0
209
+ - !ruby/object:Gem::Dependency
210
+ name: locale
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: bundler
211
225
  requirement: !ruby/object:Gem::Requirement
@@ -290,10 +304,11 @@ files:
290
304
  - lib/deploygate/builds/ios/export.rb
291
305
  - lib/deploygate/builds/ios/set_profile.rb
292
306
  - lib/deploygate/command_builder.rb
307
+ - lib/deploygate/commands/config.rb
293
308
  - lib/deploygate/commands/deploy.rb
294
309
  - lib/deploygate/commands/deploy/build.rb
295
310
  - lib/deploygate/commands/deploy/push.rb
296
- - lib/deploygate/commands/init.rb
311
+ - lib/deploygate/commands/login.rb
297
312
  - lib/deploygate/commands/logout.rb
298
313
  - lib/deploygate/config/base.rb
299
314
  - lib/deploygate/config/cache_version.rb
@@ -316,6 +331,7 @@ files:
316
331
  - spec/deploygate/config/base_spec.rb
317
332
  - spec/deploygate/deploy_spec.rb
318
333
  - spec/deploygate/session_spec.rb
334
+ - spec/deploygate/user_spec.rb
319
335
  - spec/spec_helper.rb
320
336
  - spec/test_files/DeployGateSample.apk
321
337
  homepage: https://deploygate.com
@@ -328,10 +344,6 @@ post_install_message: |2+
328
344
 
329
345
  $ dg deploy
330
346
 
331
- Or see the docs at:
332
-
333
- https://deploygate.com/docs/cli
334
-
335
347
  rdoc_options: []
336
348
  require_paths:
337
349
  - lib
@@ -347,7 +359,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
347
359
  version: '0'
348
360
  requirements: []
349
361
  rubyforge_project:
350
- rubygems_version: 2.4.5
362
+ rubygems_version: 2.4.5.1
351
363
  signing_key:
352
364
  specification_version: 4
353
365
  summary: A command-line interface for DeployGate
@@ -363,5 +375,6 @@ test_files:
363
375
  - spec/deploygate/config/base_spec.rb
364
376
  - spec/deploygate/deploy_spec.rb
365
377
  - spec/deploygate/session_spec.rb
378
+ - spec/deploygate/user_spec.rb
366
379
  - spec/spec_helper.rb
367
380
  - spec/test_files/DeployGateSample.apk