cmis-ruby 0.4.7 → 0.4.8

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: 7dd0672854ad32c484263b5d7a50c0333d276446
4
- data.tar.gz: 15a1718aa57ace3f420f8ed6e51beb189cf63a71
3
+ metadata.gz: 1d7de0653ac57178aae304281dcd8ec41c7b5688
4
+ data.tar.gz: 6b408d6290cd17fdbe81e4327d37fd6aa7eea251
5
5
  SHA512:
6
- metadata.gz: 5daf70de48829f6f6f9f8868742033d563870f2d161004918b5eb029ff6e906205008859de2017342d6c78219d64e34d721ca2ac578265018aa23f04fb65075c
7
- data.tar.gz: 1a41003e677dd7b69177323a09549a5204f2f649b85fa2d5ebd3742e18a4063f0a0c5d9c5c4eec381c2169bfee257ad6f5de95ad59098f2cb6090d9d461c1d2d
6
+ metadata.gz: 823583dc1ffb9b66fa1909a47a4224d322b1c2b0d2638279ac9b8bf7208b1104bc00261c64e5ff76a9c1d6b1d4a8ea74c9276df8801896161335d6652d5a14af
7
+ data.tar.gz: 4146bfe8c67f079767d962573a3eb4176aaaf30ee1fc48209b620f51ca5cd2ac71359035e17421a34b39dd89ba41f2c38d4499b95539e7d533f0bbf1367a9993
@@ -1,18 +1,13 @@
1
1
  require 'cmis/connection/request_modifier'
2
2
  require 'cmis/connection/response_parser'
3
- require 'cmis/connection/url_resolver'
4
3
  require 'cmis/version'
5
4
  require 'faraday'
6
5
 
7
6
  module CMIS
8
7
  class Connection
9
8
  def initialize(options)
10
- options.symbolize_keys!
11
-
12
9
  message = "option `service_url` must be set"
13
- service_url = options[:service_url] or raise message
14
-
15
- options[:adapter] ||= :net_http
10
+ @service_url = options[:service_url] or raise message
16
11
 
17
12
  @http = Faraday.new(connection_options(options)) do |builder|
18
13
  builder.use RequestModifier
@@ -23,35 +18,30 @@ module CMIS
23
18
  builder.basic_auth(options[:username], options[:password])
24
19
  end
25
20
 
26
- builder.adapter options[:adapter].to_sym
21
+ builder.adapter (options[:adapter] || :net_http).to_sym
27
22
  builder.response :logger if options[:log_requests]
28
23
  builder.use ResponseParser
29
24
  end
30
25
 
31
- @url_resolver = URLResolver.new(@http, service_url)
26
+ @repository_infos = {}
32
27
  end
33
28
 
34
- def execute!(params = {}, options = {})
35
- params.symbolize_keys!
36
- options.symbolize_keys!
37
-
38
- query = options.fetch(:query, {})
39
- headers = options.fetch(:headers, {})
40
- url = @url_resolver.url(params.delete(:repositoryId), params[:objectId])
29
+ def do_request(params, query, headers)
30
+ repository_id = params.delete(:repositoryId)
31
+ url = infer_url(repository_id, params[:objectId])
41
32
 
42
- response = if params[:cmisaction]
33
+ if params[:cmisaction]
43
34
  @http.post(url, params, headers)
44
35
  else
45
36
  @http.get(url, params.merge(query), headers)
46
37
  end
47
-
48
- response.body
49
38
  end
50
39
 
51
40
  private
52
41
 
53
42
  def connection_options(options)
54
- headers = { user_agent: "cmis-ruby/#{VERSION} [#{options[:adapter]}]" }
43
+ adapter = (options[:adapter] || :net_http).to_sym
44
+ headers = { user_agent: "cmis-ruby/#{VERSION} [#{adapter}]" }
55
45
  headers.merge!(options[:headers]) if options[:headers]
56
46
 
57
47
  conn_opts = { headers: headers }
@@ -59,5 +49,20 @@ module CMIS
59
49
 
60
50
  conn_opts
61
51
  end
52
+
53
+ def infer_url(repository_id, object_id)
54
+ return @service_url unless repository_id
55
+
56
+ unless @repository_infos.key?(repository_id)
57
+ @repository_infos = @http.get(@service_url).body
58
+ end
59
+
60
+ if @repository_infos.key?(repository_id)
61
+ key = object_id ? 'rootFolderUrl' : 'repositoryUrl'
62
+ @repository_infos[repository_id][key]
63
+ else
64
+ raise Exceptions::ObjectNotFound, "repositoryId: #{repository_id}"
65
+ end
66
+ end
62
67
  end
63
68
  end
data/lib/cmis/server.rb CHANGED
@@ -1,7 +1,18 @@
1
1
  module CMIS
2
2
  class Server < Connection
3
3
  def initialize(options = {})
4
- super
4
+ @options = options.symbolize_keys
5
+ end
6
+
7
+ def execute!(params = {}, options = {})
8
+ params.symbolize_keys!
9
+
10
+ options.symbolize_keys!
11
+ query = options.fetch(:query, {})
12
+ headers = options.fetch(:headers, {})
13
+
14
+ response = connection.do_request(params, query, headers)
15
+ response.body
5
16
  end
6
17
 
7
18
  def repositories(opts = {})
@@ -25,5 +36,19 @@ module CMIS
25
36
  rescue Exceptions::ObjectNotFound
26
37
  false
27
38
  end
39
+
40
+ private
41
+
42
+ def connection
43
+ @connection ||= Connection.new(@options)
44
+ end
45
+
46
+ def marshal_dump
47
+ @options
48
+ end
49
+
50
+ def marshal_load(options)
51
+ @options = options
52
+ end
28
53
  end
29
54
  end
data/lib/cmis/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CMIS
2
- VERSION = '0.4.7'
2
+ VERSION = '0.4.8'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cmis-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7
4
+ version: 0.4.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenneth Geerts
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-07 00:00:00.000000000 Z
12
+ date: 2014-04-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -50,7 +50,6 @@ files:
50
50
  - lib/cmis/connection.rb
51
51
  - lib/cmis/connection/request_modifier.rb
52
52
  - lib/cmis/connection/response_parser.rb
53
- - lib/cmis/connection/url_resolver.rb
54
53
  - lib/cmis/document.rb
55
54
  - lib/cmis/exceptions.rb
56
55
  - lib/cmis/folder.rb
@@ -1,26 +0,0 @@
1
- module CMIS
2
- class Connection
3
- class URLResolver
4
- def initialize(http, service_url)
5
- @http = http
6
- @service_url = service_url
7
- @repository_infos = {}
8
- end
9
-
10
- def url(repository_id, object_id)
11
- return @service_url unless repository_id
12
-
13
- unless @repository_infos.key?(repository_id)
14
- @repository_infos = @http.get(@service_url).body
15
- end
16
-
17
- if @repository_infos.key?(repository_id)
18
- key = object_id ? 'rootFolderUrl' : 'repositoryUrl'
19
- @repository_infos[repository_id][key]
20
- else
21
- raise Exceptions::ObjectNotFound, "repositoryId: #{repository_id}"
22
- end
23
- end
24
- end
25
- end
26
- end