linodeapi 1.0.0 → 1.0.1
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 +4 -4
- data/.prospectus +31 -0
- data/CHANGELOG.md +4 -0
- data/dev/cache_spec.rb +39 -4
- data/dev/spec.yml +2 -112
- data/dev/version +1 -0
- data/lib/linodeapi.rb +14 -6
- data/lib/linodeapi/raw.rb +25 -24
- data/linodeapi.gemspec +6 -6
- data/spec/linodeapi/raw_spec.rb +2 -2
- data/spec/linodeapi_spec.rb +4 -0
- data/spec/spec_helper.rb +3 -0
- metadata +15 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2b6266cebf4ba879b7b79560958046dcfbeef85
|
4
|
+
data.tar.gz: e4f7be859b3b424d4023d228a2bf465652b27c8d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c0400892e248bf04836685ea695ed2415dd5c38b39fd12f55028685a178d3cc6891ac99c07a6c730b2ada07c19058a86dad965bfc3ad472c19a7cb0df65586c
|
7
|
+
data.tar.gz: a3645671fea6219314385c06f922eb957796460beb4f864a8df72700e2210d306dd699d39c00079791fb7b3546256284d6337b386180b3f2d942642bfe3bd1a6
|
data/.prospectus
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
item do
|
4
|
+
expected do
|
5
|
+
static
|
6
|
+
set 'green'
|
7
|
+
end
|
8
|
+
|
9
|
+
actual do
|
10
|
+
gemnasium
|
11
|
+
slug 'akerl/linodeapi'
|
12
|
+
end
|
13
|
+
|
14
|
+
deps do
|
15
|
+
YAML.load(`./dev/cache_spec.rb --noop`).each do |item_name, (old, new)|
|
16
|
+
item do
|
17
|
+
name "api.spec.#{item_name}"
|
18
|
+
|
19
|
+
expected do
|
20
|
+
static
|
21
|
+
set new
|
22
|
+
end
|
23
|
+
|
24
|
+
actual do
|
25
|
+
static
|
26
|
+
set old
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/CHANGELOG.md
CHANGED
data/dev/cache_spec.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'mercenary'
|
3
4
|
require 'linodeapi'
|
4
5
|
require 'yaml'
|
6
|
+
require 'digest'
|
5
7
|
|
6
|
-
SPEC_FILE =
|
8
|
+
SPEC_FILE = 'dev/spec.yml'.freeze
|
9
|
+
VERSION_FILE = File.join(File.dirname(SPEC_FILE), 'version')
|
7
10
|
|
8
11
|
def parse_node(node)
|
9
|
-
return clean_node(node) if node[:type] == :call
|
12
|
+
return clean_node(node.dup) if node[:type] == :call
|
10
13
|
Hash[node[:subs].sort.map { |k, v| [k.to_s, parse_node(v)] }]
|
11
14
|
end
|
12
15
|
|
@@ -20,6 +23,38 @@ def hash_to_array(hash)
|
|
20
23
|
hash.to_a.sort.map { |x| Hash[x.first.to_s, hash_to_array(x.last)] }
|
21
24
|
end
|
22
25
|
|
23
|
-
|
26
|
+
def write_changes
|
27
|
+
File.open(SPEC_FILE, 'w') { |fh| fh << YAML.dump(parse_node(LinodeAPI.spec)) }
|
28
|
+
File.open(VERSION_FILE, 'w') { |fh| fh << LinodeAPI.spec_version }
|
29
|
+
end
|
30
|
+
|
31
|
+
def sha(string)
|
32
|
+
Digest::SHA256.hexdigest(string)[0..7]
|
33
|
+
end
|
34
|
+
|
35
|
+
def all_changes
|
36
|
+
{
|
37
|
+
'version' => [
|
38
|
+
File.read(VERSION_FILE).chomp,
|
39
|
+
LinodeAPI.spec_version
|
40
|
+
],
|
41
|
+
'spec' => [
|
42
|
+
sha(File.read(SPEC_FILE)),
|
43
|
+
sha(YAML.dump(parse_node(LinodeAPI.spec)))
|
44
|
+
]
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
Mercenary.program(:cache_spec) do |p|
|
49
|
+
p.version '0.0.1'
|
50
|
+
p.description 'Update cache file of api.apec'
|
51
|
+
p.syntax "#{$PROGRAM_NAME} [options]"
|
24
52
|
|
25
|
-
|
53
|
+
p.option :noop, '-n', '--noop', 'No-op run (will not update the cached file'
|
54
|
+
p.option :quiet, '-q', '--quiet', 'Quiet mode'
|
55
|
+
|
56
|
+
p.action do |_, options|
|
57
|
+
puts YAML.dump(all_changes) unless options[:quiet]
|
58
|
+
write_changes unless options[:noop]
|
59
|
+
end
|
60
|
+
end
|
data/dev/spec.yml
CHANGED
@@ -1476,117 +1476,6 @@ nodebalancer:
|
|
1476
1476
|
- throws:
|
1477
1477
|
- NOTFOUND
|
1478
1478
|
- VALIDATION
|
1479
|
-
professionalservices:
|
1480
|
-
scope:
|
1481
|
-
create:
|
1482
|
-
- desc: Creates a new Professional Services scope submission
|
1483
|
-
- params:
|
1484
|
-
- application_quantity:
|
1485
|
-
- desc: How many separate applications or websites are involved in this migration?
|
1486
|
-
- required: false
|
1487
|
-
- type: :string
|
1488
|
-
- content_management:
|
1489
|
-
- desc: Centralized interfaces for editing, organizing, and publishing content
|
1490
|
-
- required: false
|
1491
|
-
- type: :string
|
1492
|
-
- crossover:
|
1493
|
-
- desc: These can assist in providing reliable crossover--failures of individual
|
1494
|
-
components can be transparent to the application.
|
1495
|
-
- required: false
|
1496
|
-
- type: :string
|
1497
|
-
- current_provider:
|
1498
|
-
- desc: ''
|
1499
|
-
- required: false
|
1500
|
-
- type: :string
|
1501
|
-
- customer_name:
|
1502
|
-
- desc: ''
|
1503
|
-
- required: false
|
1504
|
-
- type: :string
|
1505
|
-
- database_server:
|
1506
|
-
- desc: Generally used by applications to provide an organized way to capture
|
1507
|
-
and manipulate data
|
1508
|
-
- required: false
|
1509
|
-
- type: :string
|
1510
|
-
- email_address:
|
1511
|
-
- desc: ''
|
1512
|
-
- required: false
|
1513
|
-
- type: :string
|
1514
|
-
- linode_datacenter:
|
1515
|
-
- desc: Which datacenters would you like your Linodes to be deployed in?
|
1516
|
-
- required: false
|
1517
|
-
- type: :string
|
1518
|
-
- linode_plan:
|
1519
|
-
- desc: Which Linode plans would you like to deploy?
|
1520
|
-
- required: false
|
1521
|
-
- type: :string
|
1522
|
-
- mail_filtering:
|
1523
|
-
- desc: Services here manipulate recieved messages in various ways
|
1524
|
-
- required: false
|
1525
|
-
- type: :string
|
1526
|
-
- mail_retrieval:
|
1527
|
-
- desc: User mail clients connect to these to retrieve delivered mail
|
1528
|
-
- required: false
|
1529
|
-
- type: :string
|
1530
|
-
- mail_transfer:
|
1531
|
-
- desc: Mail transfer agents facilitate message transfer between servers
|
1532
|
-
- required: false
|
1533
|
-
- type: :string
|
1534
|
-
- managed:
|
1535
|
-
- desc: ''
|
1536
|
-
- required: false
|
1537
|
-
- type: :string
|
1538
|
-
- monitoring:
|
1539
|
-
- desc: Constant monitoring of your deployed systems--these can also provide
|
1540
|
-
automatic notifications for service failures.
|
1541
|
-
- required: false
|
1542
|
-
- type: :string
|
1543
|
-
- notes:
|
1544
|
-
- desc: ''
|
1545
|
-
- required: false
|
1546
|
-
- type: :string
|
1547
|
-
- phone_number:
|
1548
|
-
- desc: ''
|
1549
|
-
- required: false
|
1550
|
-
- type: :string
|
1551
|
-
- provider_access:
|
1552
|
-
- desc: What types of server access do you have at your current provider?
|
1553
|
-
- required: false
|
1554
|
-
- type: :string
|
1555
|
-
- replication:
|
1556
|
-
- desc: Redundant services often have shared state--replication automatically
|
1557
|
-
propagates state changes between individual components.
|
1558
|
-
- required: false
|
1559
|
-
- type: :string
|
1560
|
-
- requested_service:
|
1561
|
-
- desc: ''
|
1562
|
-
- required: false
|
1563
|
-
- type: :string
|
1564
|
-
- server_quantity:
|
1565
|
-
- desc: How many separate servers are involved in this migration?
|
1566
|
-
- required: false
|
1567
|
-
- type: :string
|
1568
|
-
- system_administration:
|
1569
|
-
- desc: Various web interfaces for performing system administration tasks
|
1570
|
-
- required: false
|
1571
|
-
- type: :string
|
1572
|
-
- ticket_number:
|
1573
|
-
- desc: ''
|
1574
|
-
- required: false
|
1575
|
-
- type: :string
|
1576
|
-
- web_cache:
|
1577
|
-
- desc: Caching mechanisms provide temporary storage for web requests--cached
|
1578
|
-
content can generally be retrieved faster.
|
1579
|
-
- required: false
|
1580
|
-
- type: :string
|
1581
|
-
- web_server:
|
1582
|
-
- desc: These provide network protocol handling for hosting websites.
|
1583
|
-
- required: false
|
1584
|
-
- type: :string
|
1585
|
-
- webmail:
|
1586
|
-
- desc: Access and administrate mail via web interfaces
|
1587
|
-
- required: false
|
1588
|
-
- type: :string
|
1589
|
-
- throws: []
|
1590
1479
|
stackscript:
|
1591
1480
|
create:
|
1592
1481
|
- desc: Create a StackScript.
|
@@ -1680,7 +1569,8 @@ user:
|
|
1680
1569
|
getapikey:
|
1681
1570
|
- desc: Authenticates a Linode Manager user against their username, password, and
|
1682
1571
|
two-factor token (when enabled), and then returns a new API key, which can be
|
1683
|
-
used until it expires. The number of active keys is limited to 20.
|
1572
|
+
used until it expires. The number of active keys is limited to 20. Batch requests
|
1573
|
+
will be rejected if they include this API action.
|
1684
1574
|
- params:
|
1685
1575
|
- expires:
|
1686
1576
|
- desc: Number of hours the key will remain valid, between 0 and 8760. 0 means
|
data/dev/version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.3
|
data/lib/linodeapi.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'httparty'
|
2
3
|
|
3
4
|
##
|
@@ -6,19 +7,26 @@ module LinodeAPI
|
|
6
7
|
##
|
7
8
|
# Default API endpoint
|
8
9
|
|
9
|
-
DEFAULT_ENDPOINT = 'https://api.linode.com/'
|
10
|
-
SPEC_URL = 'https://api.linode.com/?api_action=api.spec'
|
10
|
+
DEFAULT_ENDPOINT = 'https://api.linode.com/'.freeze
|
11
|
+
SPEC_URL = 'https://api.linode.com/?api_action=api.spec'.freeze
|
11
12
|
|
12
13
|
class << self
|
13
14
|
def spec
|
14
|
-
@spec ||= { type: :group, subs:
|
15
|
+
@spec ||= { type: :group, subs: parse_spec }
|
16
|
+
end
|
17
|
+
|
18
|
+
def spec_version
|
19
|
+
@spec_version ||= raw_spec['DATA']['VERSION'].to_s
|
15
20
|
end
|
16
21
|
|
17
22
|
private
|
18
23
|
|
19
|
-
def
|
20
|
-
|
21
|
-
|
24
|
+
def raw_spec
|
25
|
+
@raw_spec ||= JSON.parse(HTTParty.get(SPEC_URL).body)
|
26
|
+
end
|
27
|
+
|
28
|
+
def parse_spec
|
29
|
+
raw_spec['DATA']['METHODS'].each_with_object({}) do |(method, info), spec|
|
22
30
|
name, groups = parse_method(method)
|
23
31
|
params = parse_params(info['PARAMETERS'])
|
24
32
|
add_call(spec, groups, name, params, info)
|
data/lib/linodeapi/raw.rb
CHANGED
@@ -25,14 +25,14 @@ module LinodeAPI
|
|
25
25
|
def to_s
|
26
26
|
'LinodeAPI::Raw object'
|
27
27
|
end
|
28
|
-
|
28
|
+
alias inspect to_s
|
29
29
|
|
30
30
|
private
|
31
31
|
|
32
32
|
def authenticate(params = {})
|
33
33
|
return [] unless @names.empty?
|
34
34
|
unless (params.values_at :username, :password).all?
|
35
|
-
|
35
|
+
raise ArgumentError, 'You must provide either an API key or user/pass'
|
36
36
|
end
|
37
37
|
user.getapikey(params).api_key
|
38
38
|
end
|
@@ -67,47 +67,48 @@ module LinodeAPI
|
|
67
67
|
spec = @spec[:subs][method]
|
68
68
|
method = (@names + [method.to_s]).join '.'
|
69
69
|
options = self.class.validate method, spec[:params], params
|
70
|
-
options
|
70
|
+
options[:api_key] = @apikey
|
71
|
+
options[:api_action] = method
|
71
72
|
error_check self.class.post('', body: options)
|
72
73
|
end
|
73
74
|
|
74
75
|
def error_check(resp)
|
75
76
|
code = resp.code
|
76
|
-
|
77
|
+
raise("API threw HTTP error code #{code}") unless code == 200
|
77
78
|
data = resp.parsed_response
|
78
|
-
|
79
|
+
raise('Invalid API response received') if data.nil?
|
79
80
|
self.class.parse data
|
80
81
|
end
|
81
82
|
|
82
|
-
|
83
|
-
resp
|
84
|
-
|
85
|
-
|
83
|
+
class << self
|
84
|
+
def parse(resp)
|
85
|
+
resp['ERRORARRAY'].reject! { |x| x['ERRORCODE'].zero? }
|
86
|
+
unless resp['ERRORARRAY'].empty?
|
87
|
+
raise "API Error on #{resp['ACTION']}: #{resp['ERRORARRAY']}"
|
88
|
+
end
|
89
|
+
data = resp['DATA']
|
90
|
+
data.is_a?(Hash) ? clean(data) : data.map { |x| clean x }
|
86
91
|
end
|
87
|
-
data = resp['DATA']
|
88
|
-
data.is_a?(Hash) ? clean(data) : data.map { |x| clean x }
|
89
|
-
end
|
90
92
|
|
91
|
-
|
92
|
-
|
93
|
-
|
93
|
+
def clean(object)
|
94
|
+
OpenStruct.new(Hash[object.map { |k, v| [k.downcase.to_sym, v] }])
|
95
|
+
end
|
94
96
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
97
|
+
def validate(method, spec, given)
|
98
|
+
spec.each_with_object({}) do |(param, info), options|
|
99
|
+
if given.include? param
|
100
|
+
options[param] = VALIDATION_METHODS[info[:type]].call given[param]
|
101
|
+
elsif info[:required]
|
102
|
+
raise ArgumentError, "#{method} requires #{param}"
|
103
|
+
end
|
101
104
|
end
|
102
105
|
end
|
103
106
|
end
|
104
107
|
end
|
105
108
|
|
106
|
-
private
|
107
|
-
|
108
109
|
VALIDATION_METHODS = {
|
109
110
|
boolean: proc { |e| !!e }, # rubocop:disable Style/DoubleNegation
|
110
111
|
numeric: proc { |e| Integer(e) },
|
111
112
|
string: proc(&:to_s)
|
112
|
-
}
|
113
|
+
}.freeze
|
113
114
|
end
|
data/linodeapi.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'linodeapi'
|
3
|
-
s.version = '1.0.
|
3
|
+
s.version = '1.0.1'
|
4
4
|
s.date = Time.now.strftime("%Y-%m-%d")
|
5
5
|
|
6
6
|
s.summary = 'Linode API wrapper'
|
@@ -15,11 +15,11 @@ Gem::Specification.new do |s|
|
|
15
15
|
|
16
16
|
s.add_dependency 'httparty', '~> 0.13.1'
|
17
17
|
|
18
|
-
s.add_development_dependency 'rubocop', '~> 0.
|
19
|
-
s.add_development_dependency 'rake', '~>
|
18
|
+
s.add_development_dependency 'rubocop', '~> 0.41.1'
|
19
|
+
s.add_development_dependency 'rake', '~> 11.2.0'
|
20
20
|
s.add_development_dependency 'codecov', '~> 0.1.1'
|
21
|
-
s.add_development_dependency 'rspec', '~> 3.
|
21
|
+
s.add_development_dependency 'rspec', '~> 3.5.0'
|
22
22
|
s.add_development_dependency 'fuubar', '~> 2.0.0'
|
23
|
-
s.add_development_dependency 'webmock', '~> 1.
|
24
|
-
s.add_development_dependency 'vcr', '~>
|
23
|
+
s.add_development_dependency 'webmock', '~> 2.1.0'
|
24
|
+
s.add_development_dependency 'vcr', '~> 3.0.0'
|
25
25
|
end
|
data/spec/linodeapi/raw_spec.rb
CHANGED
@@ -42,8 +42,8 @@ describe LinodeAPI::Raw do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
it 'accurately responds to .respond_to?' do
|
45
|
-
expect(subject.respond_to?
|
46
|
-
expect(subject.respond_to?
|
45
|
+
expect(subject.respond_to?(:linode)).to be_truthy
|
46
|
+
expect(subject.respond_to?(:list)).to be_falsey
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'returns arrays for list calls' do
|
data/spec/linodeapi_spec.rb
CHANGED
@@ -13,4 +13,8 @@ describe LinodeAPI do
|
|
13
13
|
expect(LinodeAPI.spec[:subs]).to be_an_instance_of Hash
|
14
14
|
expect(LinodeAPI.spec[:subs][:linode][:subs][:create][:type]).to eql :call
|
15
15
|
end
|
16
|
+
|
17
|
+
it 'makes the spec version available' do
|
18
|
+
expect(LinodeAPI.spec_version).to match(/[\d.]*/)
|
19
|
+
end
|
16
20
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linodeapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Les Aker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.41.1
|
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: 0.
|
40
|
+
version: 0.41.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 11.2.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 11.2.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: codecov
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.
|
75
|
+
version: 3.5.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.
|
82
|
+
version: 3.5.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: fuubar
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,28 +100,28 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.
|
103
|
+
version: 2.1.0
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.
|
110
|
+
version: 2.1.0
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: vcr
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 3.0.0
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: 3.0.0
|
125
125
|
description: Wraps the Linode API with multiple levels of interaction
|
126
126
|
email: me@lesaker.org
|
127
127
|
executables: []
|
@@ -129,6 +129,7 @@ extensions: []
|
|
129
129
|
extra_rdoc_files: []
|
130
130
|
files:
|
131
131
|
- ".gitignore"
|
132
|
+
- ".prospectus"
|
132
133
|
- ".rspec"
|
133
134
|
- ".rubocop.yml"
|
134
135
|
- CHANGELOG.md
|
@@ -139,6 +140,7 @@ files:
|
|
139
140
|
- circle.yml
|
140
141
|
- dev/cache_spec.rb
|
141
142
|
- dev/spec.yml
|
143
|
+
- dev/version
|
142
144
|
- lib/linodeapi.rb
|
143
145
|
- lib/linodeapi/raw.rb
|
144
146
|
- linodeapi.gemspec
|
@@ -171,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
173
|
version: '0'
|
172
174
|
requirements: []
|
173
175
|
rubyforge_project:
|
174
|
-
rubygems_version: 2.
|
176
|
+
rubygems_version: 2.5.1
|
175
177
|
signing_key:
|
176
178
|
specification_version: 4
|
177
179
|
summary: Linode API wrapper
|