openstf-ruby-client 0.1.2 → 0.2.0

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: 0e3fb48b171d12f4ae7d4edbb6f7a38a95e0cc52
4
- data.tar.gz: a74c4bf0a9f9df8478c94e882cd8eb0ff4eabc88
3
+ metadata.gz: 8e7132f7e1b85fae3ac49dffc6facc26acaa9048
4
+ data.tar.gz: 2d6b1f4d7d2c5c11a2ce0feed0f69037448ab1da
5
5
  SHA512:
6
- metadata.gz: 3d9cb4c6974391778ed660f46db7a44eedc8f0e33e7d47e187aa08596bb4b8be65c8fa4048ca9886af1d18918b05052439726ad89949a7bf4705afb690469f06
7
- data.tar.gz: 08a0e65598f156d5a036fc77bcb0433d6dc37874803b08de92c9cc53a1ce9790d991c9f60a33e87f77d0338886261611b94dd771e7527eb108ed143dc2ced05a
6
+ metadata.gz: c8bc704f3760cbac2404ad709e941a54fca6fae517979523e361ca2a706bcbba4521ac7b34094f5e61b908444db0c9a77ff0ad7bb38864904e3991e77460bf68
7
+ data.tar.gz: a7f39b2ffb7f7bad11b9048225dce583abda4cb7bfd6f004c201cff3ce551e139a846a74e54209be5a8bab49a7adb63dcb6c9f94af7db725216785b4610a8309
data/README.md CHANGED
@@ -6,7 +6,8 @@ A Ruby client for the OpenSTF APIs. It converts Swagger documentation of OpenSTF
6
6
 
7
7
  Add this line to your application's Gemfile:
8
8
 
9
- ```ruby
9
+ ```ruby
10
+ gem 'svelte', :git => 'https://github.com/ainoya/svelte.git' # you must specify patched version svelte gem before install openstf-ruby-client
10
11
  gem 'openstf-ruby-client'
11
12
  ```
12
13
 
@@ -14,9 +15,6 @@ And then execute:
14
15
 
15
16
  $ bundle
16
17
 
17
- Or install it yourself as:
18
-
19
- $ gem install openstf-ruby-client
20
18
 
21
19
  ## Usage
22
20
 
@@ -1,7 +1,8 @@
1
1
  require 'faraday'
2
2
  require 'svelte'
3
- require "openstf/version"
4
- require "openstf/faraday/ext"
3
+ require 'openstf/version'
4
+ require 'openstf/faraday/ext'
5
+ require 'openstf/device'
5
6
 
6
7
  module OpenSTF
7
8
  module Client
@@ -19,6 +20,37 @@ module OpenSTF
19
20
  host: host}
20
21
  )
21
22
  self.module_eval("include #{@service}")
23
+ return Service.new(@service)
24
+ end
25
+
26
+ class Service
27
+ def initialize(service)
28
+ @service = service
29
+ end
30
+
31
+ def fetch_available_devices
32
+ devices = OpenSTF::Client::Devices.get_devices.body['devices']
33
+
34
+ available = devices.reject do |device|
35
+ !device['present'] || !device['ready'] || device['using'] || device['owner']
36
+ end
37
+
38
+ @devices = available.map do |d|
39
+ Device.new(data: d, serial: d['serial'])
40
+ end
41
+
42
+ @devices
43
+ end
44
+
45
+ def connect_device(serial:)
46
+ d = Device.new(serial: serial)
47
+ d.connect
48
+ end
49
+
50
+ def disconnect_device(serial:)
51
+ d = Device.new(serial: serial)
52
+ d.disconnect
53
+ end
22
54
  end
23
55
  end
24
56
  end
@@ -0,0 +1,50 @@
1
+ module OpenSTF
2
+ class Device
3
+ DEVICE_TIMEOUT = 60 * 60 * 2 * 1000 # 2hours, milli second unit
4
+ attr_accessor :remote_connect_url
5
+
6
+ def initialize(data: {}, serial: nil)
7
+ @data = data
8
+ @serial = data['serial'] || serial
9
+ end
10
+
11
+ def connect
12
+ device = ::OpenSTF::Client::Devices.get_device_by_serial(
13
+ serial: @serial,
14
+ fields: 'serial,present,ready,using,owner').body['device']
15
+ if !device['present'] || !device['ready'] || device['using'] || device['owner']
16
+ raise("Device #{@serial} is not available")
17
+ end
18
+
19
+ added = ::OpenSTF::Client::User::Devices.add_user_device(
20
+ serial: @serial,
21
+ timeout:DEVICE_TIMEOUT
22
+ ).body
23
+
24
+ raise("Could not connect to device #{@serial}")unless added['success']
25
+
26
+ connected = ::OpenSTF::Client::User::Devices::RemoteConnect.remote_connect_user_device_by_serial(serial: @serial).body
27
+
28
+ raise("#{connected['description']}: #{@serial}") unless connected['success']
29
+
30
+ return connected['remoteConnectUrl']
31
+ end
32
+
33
+ def disconnect
34
+ user_devices = OpenSTF::Client::User::Devices
35
+ .get_user_device_by_serial(
36
+ serial: @serial,
37
+ fields: 'serial,present,ready,using,owner'
38
+ ).body
39
+ raise("#{user_devices['description']}: #{@serial}") unless user_devices['success']
40
+
41
+ deleted = OpenSTF::Client::User::Devices
42
+ .delete_user_device_by_serial(
43
+ serial: @serial
44
+ ).body
45
+
46
+ raise("#{deleted['description']}: #{@serial}") unless deleted['success']
47
+ end
48
+ end
49
+
50
+ end
@@ -1,3 +1,3 @@
1
1
  module OpenSTF
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -30,9 +30,9 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_runtime_dependency "svelte", "0.1.4-patched"
33
+ spec.add_runtime_dependency "svelte", "0.1.6-patched"
34
34
 
35
- spec.add_development_dependency "bundler", "1.13.0.rc.1"
35
+ spec.add_development_dependency "bundler", "~> 1.12.0"
36
36
  spec.add_development_dependency "rake", "~> 10.0"
37
37
  spec.add_development_dependency "rspec", "~> 3.0"
38
38
  spec.add_development_dependency "pry"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstf-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naoki AINOYA
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.4.pre.patched
19
+ version: 0.1.6.pre.patched
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.4.pre.patched
26
+ version: 0.1.6.pre.patched
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.13.0.rc.1
33
+ version: 1.12.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.13.0.rc.1
40
+ version: 1.12.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -98,6 +98,7 @@ files:
98
98
  - bin/console
99
99
  - bin/setup
100
100
  - lib/openstf/client.rb
101
+ - lib/openstf/device.rb
101
102
  - lib/openstf/faraday/ext.rb
102
103
  - lib/openstf/version.rb
103
104
  - openstf-ruby-client.gemspec