autoremote 0.2.0 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 556baa7cab3df31f1515bb062d933440923499b0
4
- data.tar.gz: 8d2c4700f0ea3c49502f4928c38e8e5ad6494ed5
3
+ metadata.gz: f2b9cbfdd54c4ff05c1075eabe8b2ddf8ac1af82
4
+ data.tar.gz: 9d3f433333b4e827c8755a016bcc074e0ab02890
5
5
  SHA512:
6
- metadata.gz: a621b850030b061cea9be09cd2f2a09106dc6f07029856276dbe0929ff86c99250104758e679c22ec45b62f8666861a981818ce9cfeeef417c28e948a6a96e1b
7
- data.tar.gz: d42f3720da620411a193ca9c3aa385b3a436579548ca11d0ac5d7ce523f7081a13e2cd6008038938cf40ae2e0202c0094adda76fc30fd1cf2617871e0e7ba067
6
+ metadata.gz: c7f8e03824393a70fe0a5a6f4d329667c2b9a965149ff082555c816888d9c8264f0078e09c7827fa02b947ea4e472009489ff67f758f657b303d63924900297d
7
+ data.tar.gz: 67ab0febc0d4a344803dc6c4f2cf9c788b7511250d390c658523a36f2f7b2cb9c8a2ec6241b7ac1a0095e6250aadc145a364bc88d4e2afe8692f9ae2e3106a0b
data/.gitignore CHANGED
@@ -9,6 +9,7 @@
9
9
  /tmp/
10
10
  *.gem
11
11
  *.bundle
12
+ *.db
12
13
  *.so
13
14
  *.o
14
15
  *.a
@@ -0,0 +1,5 @@
1
+ ---
2
+ rules:
3
+ ignore:
4
+ - remove_trailing_whitespace
5
+
@@ -0,0 +1,35 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.5
6
+ - 2.2.0
7
+ - rbx-2.1.1
8
+ - rbx-2.2.0
9
+ - rbx-2.3.0
10
+ - rbx
11
+ - jruby-19mode
12
+ - jruby
13
+
14
+ matrix:
15
+ fast_finish: true
16
+ allow_failures:
17
+ - rvm: rbx-2.1.1
18
+ - rvm: rbx-2.2.0
19
+ - rvm: rbx-2.3.0
20
+ - rvm: rbx
21
+ - rvm: jruby-19mode
22
+ - rvm: jruby
23
+
24
+ addons:
25
+ code_climate:
26
+ repo_token:
27
+ secure: "DUVG31yOL3GfE9FASaTXuTKWibxuGgiJItSXAFoSjQU3QYDcC/f/MH/58jfZnMy7Vrt36/RcuwBifCgBWNMkH0jHdYUtZyKkEyDxc98nKXD8R02uKFMhBVBvInakmDnAPfl75OO0A4peibZ+feHzv5NoK2wL4p3+eR3wLGWwLV4="
28
+
29
+ before_install:
30
+ - gem update --system
31
+ - gem --version
32
+
33
+ bundler_args: --jobs=1 --retry=3
34
+
35
+ script: bundle exec rspec
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in autoremote.gemspec
4
4
  gemspec
5
+
6
+ gem "codeclimate-test-reporter", group: :test, require: nil
data/README.md CHANGED
@@ -40,25 +40,28 @@ Since version 0.1.0 you can use the goo.gl url instead of the key when adding de
40
40
  require 'autoremote'
41
41
 
42
42
  # Adding devices can be done either with the key
43
- AutoRemote.addDevice( name, "A VERY LONG STRING OF CHARACTERS" )
43
+ AutoRemote.add_device( name, "A VERY LONG STRING OF CHARACTERS" )
44
44
  # Or with your 'goo.gl' address
45
- AutoRemote.addDevice( name, "http://goo.gl/XXXXXX" )
45
+ AutoRemote.add_device( name, "http://goo.gl/XXXXXX" )
46
46
 
47
47
  # Removes a device
48
- AutoRemote.removeDevice( name )
48
+ AutoRemote.remove_device( name )
49
49
 
50
50
  # List all saved devices
51
51
  AutoRemote.list
52
52
 
53
+ # Get a specific device
54
+ AutoRemote.get_device( name )
55
+
53
56
  # Send a message to a device
54
57
  # The parameter device can either be a Device object or the name of the device
55
- AutoRemote.sendMessage( device, message )
58
+ AutoRemote.send_message( device, message )
56
59
 
57
60
  # Register on the device.
58
61
  # This has the same effect as following the guide on http://joaoapps.com/autoremote/linux/)
59
62
  # device can either be a Device object or the name of the device
60
63
  # host can be either a hostname or ip-address, but they have to be public (i.e. reachable from the internet)
61
- AutoRemote.registerOnDevice( device, host )
64
+ AutoRemote.register_on_device( device, host )
62
65
  ```
63
66
 
64
67
  ## Contributing
@@ -8,6 +8,19 @@ def to_bool(string)
8
8
  raise ArgumentError, "Invalid value: #{string}"
9
9
  end
10
10
 
11
+ # Prints the header for the list of devices
12
+ def print_list_head(withkey)
13
+ puts 'Listing devices'
14
+
15
+ print 'Name'.rjust(18)
16
+ print ' Key' if withkey
17
+ puts
18
+
19
+ print '--------'.rjust(18)
20
+ print ' --------' if withkey
21
+ puts
22
+ end
23
+
11
24
  ## Prints help
12
25
  def print_help
13
26
  puts 'AutoRemote v' + AutoRemote::VERSION
@@ -23,41 +36,58 @@ end
23
36
 
24
37
  arg0 = ARGV[0].downcase if ARGV[0]
25
38
 
39
+ # Prints help
26
40
  if arg0 == 'help' || arg0 == '-h' || arg0 == '--help'
27
41
  print_help
42
+
43
+ # Add device
28
44
  elsif arg0 == 'add' && ARGV[1] && ARGV[2]
45
+
29
46
  puts 'Adding device'
30
47
  begin
31
48
  AutoRemote.addDevice(ARGV[1], ARGV[2])
32
49
  puts 'Device added successfully'
33
- rescue Exception => e
50
+ rescue StandardError => e
34
51
  puts "Error: #{e.message}"
35
52
  end
53
+
54
+ # Remove device
36
55
  elsif ( arg0 == 'remove' || arg0 == 'delete' ) && ARGV[1]
56
+
37
57
  puts 'Removing device'
38
58
  begin
39
59
  AutoRemote.removeDevice(ARGV[1])
40
60
  puts 'Device removed successfully'
41
- rescue Exception => e
61
+ rescue StandardError => e
42
62
  puts "Error: #{e.message}"
43
63
  end
64
+
65
+ # List all devices
44
66
  elsif arg0 == 'list'
67
+
45
68
  withkey = to_bool(ARGV[1])
46
- puts 'Listing devices'
47
-
69
+ print_list_head(withkey)
70
+
48
71
  AutoRemote.listDevices.each do|device|
49
- print "Name: #{device.name}"
50
- print " Key: #{device.key}" if withkey
72
+ print "#{device.name}".rjust(18)
73
+ print " #{device.key}" if withkey
51
74
  puts
52
75
  end
76
+
77
+ # Send a message to a device
53
78
  elsif arg0 == 'message' && ARGV[1] && ARGV[2]
79
+
54
80
  begin
55
81
  AutoRemote.sendMessage(ARGV[1], ARGV[2])
56
82
  puts 'Message sent successfully'
57
- rescue Exception => e
83
+ rescue StandardError => e
58
84
  puts "Error: #{e.message}"
59
85
  end
86
+
87
+ # Register on a device
60
88
  elsif arg0 == 'register' && ARGV[1] && ARGV[2]
89
+
90
+ # Display a prompt if registering on windows
61
91
  if RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw|cygwin|bccwin|wince|emc/i
62
92
  puts 'Are you sure you want to register a windows computer?'
63
93
  print 'You will need an SSH server on the computer. (y/n)'
@@ -66,13 +96,15 @@ elsif arg0 == 'register' && ARGV[1] && ARGV[2]
66
96
  exit
67
97
  end
68
98
  end
69
-
99
+
70
100
  begin
71
101
  AutoRemote.registerOnDevice(ARGV[1], ARGV[2])
72
102
  puts 'Device registered successfully'
73
- rescue Exception => e
103
+ rescue StandardError => e
74
104
  puts "Error: #{e.message}"
75
105
  end
106
+
107
+ # Display help if arguments are invalid
76
108
  else
77
109
  print_help
78
110
  end
@@ -1,10 +1,9 @@
1
+ require 'autoremote/net'
1
2
  require 'autoremote/version'
2
3
  require 'autoremote/exceptions'
3
4
  require 'sqlite3'
4
5
  require 'active_record'
5
- require 'net/http'
6
6
  require 'socket'
7
- require 'httparty'
8
7
 
9
8
  ## Establish the database connection
10
9
  ActiveRecord::Base.establish_connection(
@@ -25,21 +24,17 @@ ActiveRecord::Schema.define do
25
24
  end
26
25
 
27
26
  module AutoRemote
28
- REGURL = 'http://autoremotejoaomgcd.appspot.com/registerpc?key=%YOUR_KEY%&name=%DISPLAY_NAME%&id=%UNIQUE_ID%&type=linux&publicip=%PUBLIC_HOST%&localip=%IP_ADDRESS%'
29
- MSGURL = 'http://autoremotejoaomgcd.appspot.com/sendmessage?key=%YOUR_KEY%&message=%MESSAGE%&sender=%SENDER_ID%'
30
- VALIDATIONURL = 'http://autoremotejoaomgcd.appspot.com/sendmessage?key=%YOUR_KEY%'
31
-
32
27
  # Add a device
33
28
  # @param name [String] The name of the device
34
29
  # @param input [String] Can either be the 'goo.gl' url or the personal key of the device
35
- # @raise [AutoRemote::DeviceAlreadyExist] if the device already exits
36
30
  # @raise [AutoRemote::InvalidKey] if the key or url is invalid
37
- # @return [void]
38
- def AutoRemote::addDevice(name, input)
31
+ # @return [Device] the device that was was created
32
+ # @return [nil] if the device already exists
33
+ def AutoRemote::add_device(name, input)
39
34
 
40
35
  ## Validation if input is a 'goo.gl' url
41
36
  if input.match(/^(https?:\/{2})?(goo.gl\/[\S]*)$/i)
42
- result = self.urlRequest(input)
37
+ result = AutoRemoteRequest.validate_url(input)
43
38
 
44
39
  ## Get the key from the resulting url
45
40
  begin
@@ -51,119 +46,148 @@ module AutoRemote
51
46
  ## If not a 'goo.gl' url, check if it is a valid key
52
47
  else
53
48
  ## Validate key
54
- result = self.urlRequest(VALIDATIONURL.sub(/%YOUR_KEY%/, input))
49
+ result = AutoRemoteRequest.validate_key(input)
55
50
 
56
51
  ## Check result
57
- if result.body != 'OK'
58
- raise self::InvalidKey
59
- end
52
+ raise self::InvalidKey if result.body != 'OK'
60
53
  end
61
54
 
62
55
  ## Check if the device already exist
63
- if Device.find_by_name(name) || Device.find_by_key(input)
64
- raise self::DeviceAlreadyExist
56
+ if Device.find_by_name(name)
57
+ return nil
58
+ else
59
+ ## Save the device
60
+ return Device.create(:name => name, :key => input)
65
61
  end
66
-
67
- ## Save the device
68
- Device.create(:name => name, :key => input)
69
62
  end
70
63
 
71
64
  # Remove a specific device
72
65
  # @param name [String] The name of the device
73
- # @raise [AutoRemote::DeviceNotFound] if the device didn't exist
74
- # @return [void]
75
- def AutoRemote::removeDevice(name)
66
+ # @return [true] if the device was deleted
67
+ # @return [false] if the device wasn't found
68
+ def AutoRemote::remove_device(name)
76
69
  if device = Device.find_by_name(name)
77
70
  ## Remove the device
78
71
  Device.delete(device.id)
72
+ return true
79
73
  else
80
- raise self::DeviceNotFound
74
+ return false
81
75
  end
82
76
  end
83
77
 
84
78
  # Returns a list with all devices
85
79
  # @return [Device::ActiveRecord_Relation]
86
- def AutoRemote::listDevices
80
+ def AutoRemote::list_devices
87
81
  return Device.order('name').all
88
82
  end
89
83
 
90
84
  # Returns one specific device
91
- # @return [Device]
92
- def AutoRemote::getDevice(name)
85
+ # @return [Device] if the device was found
86
+ # @return [nil] if the device wasn't found
87
+ def AutoRemote::get_device(name)
93
88
  return Device.find_by_name(name)
94
89
  end
95
90
 
96
91
  # Sends a message to a device
97
92
  # @param device [Device, String] A device object or the name of the device
98
93
  # @param message [String] The message to send
99
- # @raise [AutoRemote::DeviceNotFound] if the device didn't exits
100
- # @raise [TypeError] if message isn't a string
101
- # @return [void]
102
- def AutoRemote::sendMessage(device, message)
103
- if ! device.kind_of?(Device) && ! (device = Device.find_by_name(device))
104
- raise self::DeviceNotFound
105
- elsif ! message.kind_of?(String)
106
- raise TypeError, 'Message must be a string'
107
- end
94
+ # @raise [ArgumentError] if message isn't a string
95
+ # @return [true] if the message was sent
96
+ # @return [false] if the message wasn't sent
97
+ def AutoRemote::send_message(device, message)
98
+ device = self.validate_device(device)
108
99
 
109
- hostname = `hostname`.strip
100
+ if !device
101
+ return false
102
+ elsif ! message.is_a?(String)
103
+ raise ArgumentError, 'Message must be a string'
104
+ end
110
105
 
111
106
  ## Send the message
112
- result = self.urlRequest(MSGURL.sub(/%YOUR_KEY%/, device.key).sub(/%MESSAGE%/, CGI.escape(message)).sub(/%SENDER_ID%/, hostname))
107
+ result = AutoRemoteRequest.message(device.key, `hostname`.strip, CGI.escape(message))
113
108
 
114
109
  ## Check result
115
- if result.body != 'OK'
116
- raise self::InvalidKey
110
+ if result.body == 'OK'
111
+ return true
112
+ else
113
+ return false
117
114
  end
118
115
  end
119
116
 
120
117
  # Register on the device
121
118
  # @param device [Device, String] A device object or the name of the device
122
119
  # @param remotehost [String] The public hostname or ip-address
123
- # @raise [AutoRemote::DeviceNotFound] if the device didn't exits
124
- # @raise [AutoRemote::UnsupportedAction] if running from windows
125
- # @raise [TypeError] if message isn't a string or less than 5 characters
126
- # @return [void]
127
- def AutoRemote::registerOnDevice(device, remotehost)
128
- if ! device.kind_of?(Device) && ! (device = Device.find_by_name(device))
129
- raise self::DeviceNotFound
130
- elsif ! remotehost.kind_of?(String) || remotehost.length < 5
120
+ # @raise [ArgumentError] if message isn't a string or less than 5 characters
121
+ # @return [true] if the registration was successful
122
+ # @return [false] if the registration failed
123
+ def AutoRemote::register_on_device(device, remotehost)
124
+ device = self.validate_device(device)
125
+
126
+ if !device
127
+ return false
128
+ elsif ! remotehost.is_a?(String) || remotehost.length < 5
131
129
  raise ArgumentError, 'remotehost must be a string of 5 chars or more'
132
130
  end
133
131
 
134
132
  hostname = `hostname`.strip
135
- ipAddress = AutoRemote::getIpAddress.ip_address
133
+ ipAddress = AutoRemote::get_ip_address.ip_address
136
134
 
137
135
  ## Perform the registration
138
- result = self.urlRequest(REGURL.sub(/%YOUR_KEY%/, device.key).sub(/%DISPLAY_NAME%/, hostname).sub(/%UNIQUE_ID%/, hostname).sub(/%PUBLIC_HOST%/, remotehost).sub(/%IP_ADDRESS%/, ipAddress))
136
+ result = AutoRemoteRequest.register(device.key, hostname, hostname, remotehost, ipAddress)
139
137
 
140
138
  ## Check result
141
- if result.body != 'OK'
142
- raise self::AutoRemoteException, 'Something went wrong when registering on the device'
139
+ if result.body == 'OK'
140
+ return true
141
+ else
142
+ return false
143
143
  end
144
144
  end
145
145
 
146
146
  ## Define alases for some methods
147
147
  class << AutoRemote
148
- alias :saveDevice :addDevice
149
- alias :deleteDevice :removeDevice
150
- alias :sendMsg :sendMessage
151
- alias :regOnDevice :registerOnDevice
148
+ # Add
149
+ alias :addDevice :add_device
150
+ alias :saveDevice :add_device
151
+ alias :save_device :add_device
152
+ # Remove
153
+ alias :removeDevice :remove_device
154
+ alias :deleteDevice :remove_device
155
+ alias :delete_device :remove_device
156
+ # List
157
+ alias :listDevices :list_devices
158
+ # Get
159
+ alias :getDevice :get_device
160
+ # Message
161
+ alias :sendMessage :send_message
162
+ alias :sendMsg :send_message
163
+ alias :send_msg :send_message
164
+ # Register
165
+ alias :registerOnDevice :register_on_device
166
+ alias :regOnDevice :register_on_device
167
+ alias :reg_on_device :register_on_device
152
168
  end
153
169
 
154
170
  private
171
+ # Validates device
172
+ # @param input the input to validate
173
+ # @return [Device] if the input is valid
174
+ # @return [nil] if the input is not valid
175
+ def AutoRemote::validate_device(input)
176
+ if input.is_a?(Device)
177
+ return input
178
+ else
179
+ device = Device.find_by_name(input)
180
+ if device.kind_of?(Device)
181
+ return device
182
+ else
183
+ return nil
184
+ end
185
+ end
186
+ end
187
+
155
188
  # Gets the ip address of the system
156
189
  # @return [String]
157
- def AutoRemote::getIpAddress
190
+ def AutoRemote::get_ip_address
158
191
  return Socket.ip_address_list.detect { |ipInfo| ipInfo.ipv4_private? }
159
192
  end
160
-
161
- # Performs a http request
162
- # @param url [String]
163
- def AutoRemote::urlRequest(url)
164
- ## Add http:// to the url if not present
165
- url = 'http://' + url unless url.match(/^https?:\/{2}/i)
166
-
167
- return HTTParty.get(url)
168
- end
169
193
  end
@@ -1,23 +1,11 @@
1
1
  module AutoRemote
2
2
  class AutoRemoteException < StandardError
3
3
  end
4
-
5
- class DeviceNotFound < AutoRemoteException
6
- def message
7
- "Device doesn't exist"
8
- end
9
- end
10
-
11
- class DeviceAlreadyExist < AutoRemoteException
12
- def message
13
- "Device already exist"
14
- end
15
- end
16
-
4
+
17
5
  class InvalidKey < AutoRemoteException
18
6
  def message
19
7
  "The key is invalid"
20
8
  end
21
9
  end
22
-
10
+
23
11
  end
@@ -0,0 +1,25 @@
1
+ require 'httparty'
2
+
3
+ class AutoRemoteRequest
4
+ include HTTParty
5
+ base_uri 'https://autoremotejoaomgcd.appspot.com'
6
+
7
+ def self.register(key, id, name, publicip, localip)
8
+ get('/registerpc', query: { key: key, id: id, name: name, publicip: publicip, localip: localip })
9
+ end
10
+
11
+ def self.message(key, sender, message)
12
+ get('/sendmessage', query: { key: key, sender: sender, message: message })
13
+ end
14
+
15
+ def self.validate_key(key)
16
+ get('/sendmessage', query: { key: key })
17
+ end
18
+
19
+ def self.validate_url(url)
20
+ ## Add https:// to the url if not present
21
+ url.prepend 'https://' unless url.match(/^https?:\/{2}/i)
22
+ get(url)
23
+ end
24
+
25
+ end
@@ -1,3 +1,3 @@
1
1
  module AutoRemote
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
@@ -1,38 +1,84 @@
1
+ require 'codeclimate-test-reporter'
2
+ CodeClimate::TestReporter.start
3
+
1
4
  require 'spec_helper.rb'
2
5
  require 'autoremote'
3
6
 
4
7
  TEST_NAME = 'TestDevice'
5
8
  TEST_URL = 'http://goo.gl/CyA66h'
6
9
  TEST_KEY = 'APA91bFKEjtBfVU5WoJJ8KyfmR3LfmUpcVrePdQQ_T5oN1h8KcLptzhCvDE-FP1IQPimb9bk4Osm2FzTUvUT5YRylgjTMTHbS7HqbveHE-ZhgwtJEsfoKvo_JAN8Oh5NLpk-mvWEMBaZtpZVXqb3oP-G_7iKmY4UrNhXhrx9CNKOEWjhuluM0Js'
7
- TEST_MSG = 'This is a test message'
10
+ TEST_MSG = 'This is a test message from the autoremote ruby gem'
8
11
 
9
12
  describe AutoRemote do
10
- describe '#addDevice' do
11
- it 'adds a device' do
12
- AutoRemote.addDevice(TEST_NAME, TEST_URL)
13
+ describe '#add_device(key)' do
14
+ it 'adds a device with a key' do
15
+ device = AutoRemote.add_device(TEST_NAME, TEST_KEY)
16
+ expect(device).to be_instance_of(Device)
17
+ expect(device.name).to eq(TEST_NAME)
18
+ expect(device.key).to eq(TEST_KEY)
19
+ end
20
+ end
21
+
22
+ describe '#get_device' do
23
+ it 'returns a device' do
24
+ device = AutoRemote.get_device(TEST_NAME)
25
+ expect(device).to be_instance_of(Device)
26
+ expect(device.name).to eq(TEST_NAME)
27
+ expect(device.key).to eq(TEST_KEY)
28
+ end
29
+ end
30
+
31
+ describe '#remove_device' do
32
+ it 'removes a device after adding with key' do
33
+ result = AutoRemote.remove_device(TEST_NAME)
34
+ expect(result).to eq(true)
35
+ end
36
+ end
37
+
38
+ describe '#add_device(url)' do
39
+ it 'adds a device with url' do
40
+ device = AutoRemote.add_device(TEST_NAME, TEST_URL)
41
+ expect(device).to be_instance_of(Device)
42
+ expect(device.name).to eq(TEST_NAME)
43
+ expect(device.key).to eq(TEST_KEY)
13
44
  end
14
45
  end
15
46
 
16
- describe '#listDevices' do
47
+ describe '#list_devices' do
17
48
  it 'returns a list of devices' do
18
- list = AutoRemote.listDevices
49
+ list = AutoRemote.list_devices
19
50
  expect(list).not_to eq(nil)
20
51
  expect(list.count).to be > 0
21
52
  end
22
53
  end
23
54
 
24
- describe '#getDevice' do
55
+ describe '#get_device' do
25
56
  it 'returns a device' do
26
- device = AutoRemote.getDevice(TEST_NAME)
57
+ device = AutoRemote.get_device(TEST_NAME)
27
58
  expect(device).to be_instance_of(Device)
28
59
  expect(device.name).to eq(TEST_NAME)
29
60
  expect(device.key).to eq(TEST_KEY)
30
61
  end
31
62
  end
32
63
 
33
- describe 'sends a message' do
34
- it do
35
- AutoRemote.sendMessage(TEST_NAME, TEST_MSG)
64
+ describe '#send_message' do
65
+ it 'sends a message to the device' do
66
+ result = AutoRemote.send_message(TEST_NAME, TEST_MSG)
67
+ expect(result).to eq(true)
68
+ end
69
+ end
70
+
71
+ describe '#register_on_device' do
72
+ it 'register computer on the device' do
73
+ result = AutoRemote.register_on_device(TEST_NAME, 'autoremote.example.test')
74
+ expect(result).to eq(true)
75
+ end
76
+ end
77
+
78
+ describe '#remove_device' do
79
+ it 'removes a device at the end of the test' do
80
+ result = AutoRemote.remove_device(TEST_NAME)
81
+ expect(result).to eq(true)
36
82
  end
37
83
  end
38
84
  end
@@ -1,3 +1,4 @@
1
+ # Always use the expect syntax
1
2
  RSpec.configure do |config|
2
3
  config.expect_with :rspec do |c|
3
4
  c.syntax = :expect
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoremote
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Magnus Smedberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-23 00:00:00.000000000 Z
11
+ date: 2015-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -103,6 +103,8 @@ extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
105
  - ".gitignore"
106
+ - ".pullreview.yml"
107
+ - ".travis.yml"
106
108
  - Gemfile
107
109
  - LICENSE.txt
108
110
  - README.md
@@ -111,6 +113,7 @@ files:
111
113
  - bin/autoremote
112
114
  - lib/autoremote.rb
113
115
  - lib/autoremote/exceptions.rb
116
+ - lib/autoremote/net.rb
114
117
  - lib/autoremote/version.rb
115
118
  - spec/autoremote_spec.rb
116
119
  - spec/spec_helper.rb