haveapi-fs 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +4 -0
- data/haveapi-fs.gemspec +2 -2
- data/lib/haveapi/fs/components/action_dir.rb +19 -1
- data/lib/haveapi/fs/components/action_output.rb +2 -7
- data/lib/haveapi/fs/components/resource_action_dir.rb +1 -1
- data/lib/haveapi/fs/components/resource_dir.rb +17 -1
- data/lib/haveapi/fs/hash_list_wrapper.rb +21 -0
- data/lib/haveapi/fs/hash_wrapper.rb +25 -0
- data/lib/haveapi/fs/version.rb +1 -1
- data/lib/haveapi/fs.rb +2 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a31acec8bd60953c1833b73bfd7fb2bb7653586
|
4
|
+
data.tar.gz: 62e2bffff1703eea4f1d4a772a26d3bf508ba3a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89293e052eca008f96160c4ded94f933bdbd1a066386b076dadb7a01475a82c3cf80fd5d63f6dc4a7aa4fb07883a49d74175decf4b815cc7d56b5d91c3c55476
|
7
|
+
data.tar.gz: 1a9c49e4c579677b4143217dd66838ad29970f25a335058e2c27fac0678d8a9711d109ce7edbedc3ff51428ab3922d997cfa999ccfa2e9861fe84a04f8e9dc61
|
data/CHANGELOG
CHANGED
data/haveapi-fs.gemspec
CHANGED
@@ -6,7 +6,7 @@ require 'haveapi/fs/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'haveapi-fs'
|
8
8
|
spec.version = HaveAPI::Fs::VERSION
|
9
|
-
spec.date = '2017-
|
9
|
+
spec.date = '2017-04-22'
|
10
10
|
spec.authors = ['Jakub Skokan']
|
11
11
|
spec.email = ['jakub.skokan@vpsfree.cz']
|
12
12
|
spec.summary =
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency 'pry', '~> 0.10.3'
|
25
25
|
|
26
26
|
spec.add_runtime_dependency 'rfusefs', '~> 1.0.3'
|
27
|
-
spec.add_runtime_dependency 'haveapi-client', '~> 0.
|
27
|
+
spec.add_runtime_dependency 'haveapi-client', '~> 0.9.0'
|
28
28
|
spec.add_runtime_dependency 'md2man', '~> 5.1.1'
|
29
29
|
spec.add_runtime_dependency 'highline', '~> 1.7.8'
|
30
30
|
end
|
@@ -64,8 +64,26 @@ module HaveAPI::Fs::Components
|
|
64
64
|
ret,
|
65
65
|
)
|
66
66
|
|
67
|
+
when :hash
|
68
|
+
res = HaveAPI::Fs::HashWrapper.new(
|
69
|
+
@resource.instance_variable_get('@client'),
|
70
|
+
@resource.instance_variable_get('@api'),
|
71
|
+
@resource,
|
72
|
+
@action,
|
73
|
+
ret.response,
|
74
|
+
)
|
75
|
+
|
76
|
+
when :hash_list
|
77
|
+
res = HaveAPI::Fs::HashListWrapper.new(
|
78
|
+
@resource.instance_variable_get('@client'),
|
79
|
+
@resource.instance_variable_get('@api'),
|
80
|
+
@resource,
|
81
|
+
@action,
|
82
|
+
ret.response,
|
83
|
+
)
|
84
|
+
|
67
85
|
else
|
68
|
-
res = ret
|
86
|
+
res = ret.response
|
69
87
|
end
|
70
88
|
|
71
89
|
children[:output].data = res
|
@@ -20,12 +20,7 @@ module HaveAPI::Fs::Components
|
|
20
20
|
return ret unless @data
|
21
21
|
|
22
22
|
if @list
|
23
|
-
|
24
|
-
ret.concat(@data.map { |v| v.id.to_s })
|
25
|
-
|
26
|
-
else
|
27
|
-
ret.concat(@data.response.map { |v| v[:id].to_s })
|
28
|
-
end
|
23
|
+
ret.concat(@data.map { |v| v.id.to_s })
|
29
24
|
|
30
25
|
else
|
31
26
|
ret.concat(parameters.keys.map(&:to_s))
|
@@ -68,7 +63,7 @@ module HaveAPI::Fs::Components
|
|
68
63
|
@action_dir.action,
|
69
64
|
name,
|
70
65
|
:output,
|
71
|
-
@data
|
66
|
+
@data,
|
72
67
|
]
|
73
68
|
|
74
69
|
else
|
@@ -65,7 +65,23 @@ module HaveAPI::Fs::Components
|
|
65
65
|
# need to load it all, a single query should be sufficient.
|
66
66
|
begin
|
67
67
|
obj = @resource.show(id, meta: meta_params)
|
68
|
-
|
68
|
+
|
69
|
+
case @resource.actions[:show].output_layout
|
70
|
+
when :object
|
71
|
+
[ResourceInstanceDir, obj]
|
72
|
+
|
73
|
+
when :hash
|
74
|
+
[ResourceInstanceDir, HaveAPI::Fs::HashWrapper.new(
|
75
|
+
@resource.instance_variable_get('@client'),
|
76
|
+
@resource.instance_variable_get('@api'),
|
77
|
+
@resource,
|
78
|
+
@resource.actions[:show],
|
79
|
+
obj.response
|
80
|
+
)]
|
81
|
+
|
82
|
+
else
|
83
|
+
fail "Unexpected layout '#{@resource.actions[:show].output_layout}'"
|
84
|
+
end
|
69
85
|
|
70
86
|
rescue HaveAPI::Client::ActionFailed
|
71
87
|
# Not found
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module HaveAPI::Fs
|
2
|
+
class HashListWrapper < Array
|
3
|
+
def initialize(client, api, resource, action, data)
|
4
|
+
data.each do |v|
|
5
|
+
self << HashWrapper.new(client, api, resource, action, v)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
def id
|
10
|
+
@data[:id]
|
11
|
+
end
|
12
|
+
|
13
|
+
def [](k)
|
14
|
+
@data[k]
|
15
|
+
end
|
16
|
+
|
17
|
+
def []=(k, v)
|
18
|
+
@data[k] = v
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module HaveAPI::Fs
|
2
|
+
class HashWrapper < HaveAPI::Client::Resource
|
3
|
+
def initialize(client, api, resource, action, data)
|
4
|
+
super(client, api, resource._name)
|
5
|
+
setup(resource.instance_variable_get('@description'))
|
6
|
+
|
7
|
+
@data = data
|
8
|
+
@data.each do |k, v|
|
9
|
+
define_singleton_method(k) { v }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def attributes
|
14
|
+
@data
|
15
|
+
end
|
16
|
+
|
17
|
+
def [](k)
|
18
|
+
@data[k]
|
19
|
+
end
|
20
|
+
|
21
|
+
def []=(k, v)
|
22
|
+
@data[k] = v
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/haveapi/fs/version.rb
CHANGED
data/lib/haveapi/fs.rb
CHANGED
@@ -19,6 +19,8 @@ require_relative 'fs/component'
|
|
19
19
|
require_relative 'fs/factory'
|
20
20
|
require_relative 'fs/help'
|
21
21
|
require_relative 'fs/remote_control'
|
22
|
+
require_relative 'fs/hash_wrapper'
|
23
|
+
require_relative 'fs/hash_list_wrapper'
|
22
24
|
require_relative 'fs/version'
|
23
25
|
require_relative 'fs/auth/base'
|
24
26
|
require_relative 'fs/auth/basic'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haveapi-fs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jakub Skokan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.9.0
|
76
76
|
type: :runtime
|
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: 0.
|
82
|
+
version: 0.9.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: md2man
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -181,6 +181,8 @@ files:
|
|
181
181
|
- lib/haveapi/fs/exceptions.rb
|
182
182
|
- lib/haveapi/fs/factory.rb
|
183
183
|
- lib/haveapi/fs/fs.rb
|
184
|
+
- lib/haveapi/fs/hash_list_wrapper.rb
|
185
|
+
- lib/haveapi/fs/hash_wrapper.rb
|
184
186
|
- lib/haveapi/fs/help.rb
|
185
187
|
- lib/haveapi/fs/main.rb
|
186
188
|
- lib/haveapi/fs/remote_control.rb
|