cmis-ruby 0.5.3 → 0.5.4
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/lib/cmis/repository.rb +3 -21
- data/lib/cmis/utils.rb +37 -0
- data/lib/cmis/version.rb +1 -1
- data/spec/cmis-ruby/repository_spec.rb +12 -1
- data/spec/spec_helper.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f22bda5733d214e848507a528d82316c27c56081
|
4
|
+
data.tar.gz: d04542e5800a97e83eab03892d61c51a00e1f0b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 665936fb9b4a4f642783e9c9d80420516177c60f5eed2051a2ac6754d3d21d251e90803f317d482262eae1ad11fb4b09b10bc5bd0f8d42718cfc511c3e9d41d5
|
7
|
+
data.tar.gz: 13d49731f9411132253f1f2b117bed2e498f7f0662547766c5ae779807153f6a320fc99c2c76c8a95ecbe3d7370f44b8248b739a46be11c85a811310b2aa03eb
|
data/lib/cmis/repository.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'cmis/query'
|
2
|
+
require 'cmis/utils'
|
2
3
|
require 'json'
|
3
4
|
|
4
5
|
module CMIS
|
@@ -108,13 +109,13 @@ module CMIS
|
|
108
109
|
|
109
110
|
def find_object(type_id, properties = {}, opts = {})
|
110
111
|
opts.merge!(page_size: 1)
|
111
|
-
statement =
|
112
|
+
statement = Utils.build_query_statement(type_id, properties)
|
112
113
|
query(statement, opts).results.first
|
113
114
|
end
|
114
115
|
|
115
116
|
def count_objects(type_id, properties = {}, opts = {})
|
116
117
|
opts.merge!(page_size: 0)
|
117
|
-
statement =
|
118
|
+
statement = Utils.build_query_statement(type_id, properties)
|
118
119
|
query(statement, opts).total
|
119
120
|
end
|
120
121
|
|
@@ -124,25 +125,6 @@ module CMIS
|
|
124
125
|
|
125
126
|
private
|
126
127
|
|
127
|
-
def construct_statement(type_id, properties)
|
128
|
-
statement = "select * from #{type_id}"
|
129
|
-
clause = properties.map { |k, v| "#{k}=#{normalize(v)}" }.join(' and ')
|
130
|
-
statement << " where #{clause}" unless clause.empty?
|
131
|
-
statement
|
132
|
-
end
|
133
|
-
|
134
|
-
def normalize(value)
|
135
|
-
if value.respond_to?(:strftime)
|
136
|
-
value = value.strftime('%Y-%m-%dT%H:%M:%S.%L')
|
137
|
-
"TIMESTAMP '#{value}'"
|
138
|
-
else
|
139
|
-
value = value.to_s
|
140
|
-
value.gsub!(/\\/, Regexp.escape('\\\\'))
|
141
|
-
value.gsub!(/'/, Regexp.escape('\\\''))
|
142
|
-
"'#{value}'"
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
128
|
def construct_types(a)
|
147
129
|
types = []
|
148
130
|
a.each do |t|
|
data/lib/cmis/utils.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
module CMIS
|
2
|
+
module Utils
|
3
|
+
module_function
|
4
|
+
|
5
|
+
def build_query_statement(type_id, properties)
|
6
|
+
QueryStatementBuilder.new(type_id, properties).build
|
7
|
+
end
|
8
|
+
|
9
|
+
class QueryStatementBuilder
|
10
|
+
def initialize(type_id, properties)
|
11
|
+
@type_id = type_id
|
12
|
+
@properties = properties
|
13
|
+
end
|
14
|
+
|
15
|
+
def build
|
16
|
+
statement = "select * from #{@type_id}"
|
17
|
+
clause = @properties.map { |k, v| "#{k}=#{normalize(v)}" }.join(' and ')
|
18
|
+
statement << " where #{clause}" unless clause.empty?
|
19
|
+
statement
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def normalize(value)
|
25
|
+
if value.respond_to?(:strftime)
|
26
|
+
value = value.strftime('%Y-%m-%dT%H:%M:%S.%L')
|
27
|
+
"TIMESTAMP '#{value}'"
|
28
|
+
else
|
29
|
+
value = value.to_s
|
30
|
+
value.gsub!(/\\/, Regexp.escape('\\\\'))
|
31
|
+
value.gsub!(/'/, Regexp.escape('\\\''))
|
32
|
+
"'#{value}'"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/cmis/version.rb
CHANGED
@@ -16,7 +16,7 @@ module CMIS
|
|
16
16
|
expect(repository.id).to eq(repository_id)
|
17
17
|
end
|
18
18
|
|
19
|
-
it 'has non
|
19
|
+
it 'has non nil fields' do
|
20
20
|
expect(repository.id) .to_not be_nil
|
21
21
|
expect(repository.name) .to_not be_nil
|
22
22
|
expect(repository.product_version) .to_not be_nil
|
@@ -46,6 +46,17 @@ module CMIS
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
+
describe '#find_object' do
|
50
|
+
it 'returns the object when it is present' do
|
51
|
+
object = repository.find_object('cmis:folder', 'cmis:name' => 'root')
|
52
|
+
expect(object).to be_a(CMIS::Folder)
|
53
|
+
end
|
54
|
+
it 'returns nil when it is not present' do
|
55
|
+
object = repository.find_object('cmis:folder', 'cmis:name' => 'rat')
|
56
|
+
expect(object).to be_nil
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
49
60
|
describe '#count_objects' do
|
50
61
|
it 'returns 1 folder (which is the root folder)' do
|
51
62
|
count = repository.count_objects('cmis:folder')
|
data/spec/spec_helper.rb
CHANGED
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.5.
|
4
|
+
version: 0.5.4
|
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-05-
|
12
|
+
date: 2014-05-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- lib/cmis/repository.rb
|
76
76
|
- lib/cmis/server.rb
|
77
77
|
- lib/cmis/type.rb
|
78
|
+
- lib/cmis/utils.rb
|
78
79
|
- lib/cmis/version.rb
|
79
80
|
- lib/ext/all.rb
|
80
81
|
- lib/ext/hash/keys.rb
|