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 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