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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5df8fafea917e1335994de7b5ad0dce1258f6a74
4
- data.tar.gz: 440b1b976a5fd643d3a6b4274f482b6cf29829d7
3
+ metadata.gz: 2a31acec8bd60953c1833b73bfd7fb2bb7653586
4
+ data.tar.gz: 62e2bffff1703eea4f1d4a772a26d3bf508ba3a5
5
5
  SHA512:
6
- metadata.gz: fcd2321eab8bd586e06b43e589e0d4555d390cccb1258952566af806641a5f34f75cc95591a0a54d002d03111e439c13dc3889706d22a585192d32fb0d9c99bf
7
- data.tar.gz: 16200aca0f63b9353b19640200bf3b94c8417b0744110f17d3a974ec92c548cbf7e9296f275cd73078e926767ab2e0a6038a0d55321d0066d6fa86abb4db893b
6
+ metadata.gz: 89293e052eca008f96160c4ded94f933bdbd1a066386b076dadb7a01475a82c3cf80fd5d63f6dc4a7aa4fb07883a49d74175decf4b815cc7d56b5d91c3c55476
7
+ data.tar.gz: 1a9c49e4c579677b4143217dd66838ad29970f25a335058e2c27fac0678d8a9711d109ce7edbedc3ff51428ab3922d997cfa999ccfa2e9861fe84a04f8e9dc61
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ * Sat Apr 22 2017 - version 0.9.0
2
+ - Wrapper for hash and hash_list formats, so that they behave the same as
3
+ object and object_list
4
+
1
5
  * Fri Feb 10 2017 - version 0.8.0
2
6
  - Require haveapi-client v0.8
3
7
 
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-02-10'
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.8.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
- if @data.is_a?(HaveAPI::Client::ResourceInstanceList)
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.is_a?(HaveAPI::Client::ResourceInstance) ? @data : @data.response,
66
+ @data,
72
67
  ]
73
68
 
74
69
  else
@@ -5,7 +5,7 @@ module HaveAPI::Fs::Components
5
5
 
6
6
  def initialize(r)
7
7
  @resource = r
8
- @instance = r.is_a?(HaveAPI::Client::ResourceInstance)
8
+ @instance = r.is_a?(HaveAPI::Client::ResourceInstance) || r.is_a?(HaveAPI::Fs::HashWrapper)
9
9
 
10
10
  super()
11
11
  end
@@ -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
- [ResourceInstanceDir, obj]
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
@@ -1,5 +1,5 @@
1
1
  module HaveAPI
2
2
  module Fs
3
- VERSION = '0.8.0'
3
+ VERSION = '0.9.0'
4
4
  end
5
5
  end
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.8.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-02-10 00:00:00.000000000 Z
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.8.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.8.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