cmis-ruby 0.5.3 → 0.5.4

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: 83faf5a97be0875c1afefae8b00d311f86f6a5b6
4
- data.tar.gz: 7501d5a56022f92bb477a042eedf7e7a95a465c5
3
+ metadata.gz: f22bda5733d214e848507a528d82316c27c56081
4
+ data.tar.gz: d04542e5800a97e83eab03892d61c51a00e1f0b8
5
5
  SHA512:
6
- metadata.gz: 1fbb205a9cfec288d5b07ed14d3ea8716deb5c68df6dcc9ae8e3bcc7e16aee6fc5716c5cf4e11a1d589c047f4d7077c0c39b5ff4cd1d6f2249707b2d8154a8bf
7
- data.tar.gz: 50235d699f0deeb729797ed638c404274baf4ab733657583a4d6029c6d0dd874f20ed0e3e474a3aafef09873ce238f62099d1819a4544497f4b08bfae3ae6671
6
+ metadata.gz: 665936fb9b4a4f642783e9c9d80420516177c60f5eed2051a2ac6754d3d21d251e90803f317d482262eae1ad11fb4b09b10bc5bd0f8d42718cfc511c3e9d41d5
7
+ data.tar.gz: 13d49731f9411132253f1f2b117bed2e498f7f0662547766c5ae779807153f6a320fc99c2c76c8a95ecbe3d7370f44b8248b739a46be11c85a811310b2aa03eb
@@ -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 = construct_statement(type_id, properties)
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 = construct_statement(type_id, properties)
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
@@ -1,3 +1,3 @@
1
1
  module CMIS
2
- VERSION = '0.5.3'
2
+ VERSION = '0.5.4'
3
3
  end
@@ -16,7 +16,7 @@ module CMIS
16
16
  expect(repository.id).to eq(repository_id)
17
17
  end
18
18
 
19
- it 'has non null fields' do
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
@@ -1,7 +1,7 @@
1
1
  require 'coveralls'
2
2
  Coveralls.wear!
3
3
 
4
- require 'cmis-ruby'
4
+ require 'cmis'
5
5
  require 'erb'
6
6
  require 'yaml'
7
7
 
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.3
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-23 00:00:00.000000000 Z
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