safrano 0.4.3 → 0.5.1
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/core_ext/Dir/iter.rb +18 -0
- data/lib/core_ext/Hash/transform.rb +21 -0
- data/lib/core_ext/Integer/edm.rb +13 -0
- data/lib/core_ext/REXML/Document/output.rb +16 -0
- data/lib/core_ext/String/convert.rb +25 -0
- data/lib/core_ext/String/edm.rb +13 -0
- data/lib/core_ext/dir.rb +3 -0
- data/lib/core_ext/hash.rb +3 -0
- data/lib/core_ext/integer.rb +3 -0
- data/lib/core_ext/rexml.rb +3 -0
- data/lib/core_ext/string.rb +5 -0
- data/lib/odata/attribute.rb +8 -4
- data/lib/odata/batch.rb +9 -7
- data/lib/odata/collection.rb +139 -642
- data/lib/odata/collection_filter.rb +18 -42
- data/lib/odata/collection_media.rb +111 -54
- data/lib/odata/collection_order.rb +5 -2
- data/lib/odata/common_logger.rb +2 -0
- data/lib/odata/complex_type.rb +196 -0
- data/lib/odata/edm/primitive_types.rb +184 -0
- data/lib/odata/entity.rb +78 -123
- data/lib/odata/error.rb +170 -37
- data/lib/odata/expand.rb +20 -17
- data/lib/odata/filter/base.rb +9 -1
- data/lib/odata/filter/error.rb +43 -27
- data/lib/odata/filter/parse.rb +39 -25
- data/lib/odata/filter/sequel.rb +112 -56
- data/lib/odata/filter/sequel_function_adapter.rb +50 -49
- data/lib/odata/filter/token.rb +21 -18
- data/lib/odata/filter/tree.rb +78 -44
- data/lib/odata/function_import.rb +168 -0
- data/lib/odata/model_ext.rb +641 -0
- data/lib/odata/navigation_attribute.rb +9 -24
- data/lib/odata/relations.rb +5 -5
- data/lib/odata/select.rb +17 -5
- data/lib/odata/transition.rb +71 -0
- data/lib/odata/url_parameters.rb +100 -24
- data/lib/odata/walker.rb +18 -10
- data/lib/safrano.rb +18 -38
- data/lib/safrano/contract.rb +141 -0
- data/lib/safrano/core.rb +24 -106
- data/lib/safrano/core_ext.rb +13 -0
- data/lib/safrano/deprecation.rb +73 -0
- data/lib/safrano/multipart.rb +29 -24
- data/lib/safrano/rack_app.rb +62 -63
- data/lib/safrano/{odata_rack_builder.rb → rack_builder.rb} +18 -1
- data/lib/safrano/request.rb +96 -38
- data/lib/safrano/response.rb +4 -2
- data/lib/safrano/sequel_join_by_paths.rb +2 -2
- data/lib/safrano/service.rb +156 -110
- data/lib/safrano/version.rb +3 -1
- data/lib/sequel/plugins/join_by_paths.rb +6 -19
- metadata +30 -11
data/lib/safrano/version.rb
CHANGED
@@ -1,30 +1,14 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'set'
|
4
4
|
require 'sequel'
|
5
5
|
|
6
|
-
|
7
|
-
class String
|
8
|
-
# thanks https://stackoverflow.com/questions/1448670/ruby-stringto-class
|
9
|
-
def constantize
|
10
|
-
names = split('::')
|
11
|
-
names.shift if names.empty? || names.first.empty?
|
12
|
-
|
13
|
-
const = Object
|
14
|
-
names.each do |name|
|
15
|
-
const = if const.const_defined?(name)
|
16
|
-
const.const_get(name)
|
17
|
-
else
|
18
|
-
const.const_missing(name)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
const
|
22
|
-
end
|
23
|
-
end
|
6
|
+
require 'safrano/core_ext'
|
24
7
|
|
25
8
|
class PathNode < String
|
26
9
|
attr_accessor :model_class
|
27
10
|
attr_accessor :path_str
|
11
|
+
|
28
12
|
def initialize(str, start_model)
|
29
13
|
super(str)
|
30
14
|
@start_model = start_model
|
@@ -94,6 +78,7 @@ end
|
|
94
78
|
class JoinByPathsHelper < Set
|
95
79
|
attr_reader :result
|
96
80
|
attr_reader :start_model
|
81
|
+
|
97
82
|
EMPTY_ARRAY = [].freeze
|
98
83
|
|
99
84
|
def initialize(smodel)
|
@@ -206,6 +191,7 @@ module Sequel
|
|
206
191
|
module ClassMethods
|
207
192
|
attr_reader :aliases_sym
|
208
193
|
attr_reader :alias_cnt
|
194
|
+
|
209
195
|
Plugins.inherited_instance_variables(self,
|
210
196
|
:@aliases_sym => :dup,
|
211
197
|
:@alias_cnt => :dup)
|
@@ -232,6 +218,7 @@ module Sequel
|
|
232
218
|
|
233
219
|
module DatasetMethods
|
234
220
|
attr_reader :join_helper
|
221
|
+
|
235
222
|
def join_by_paths(*pathlist)
|
236
223
|
model.join_by_paths_helper(*pathlist).dataset
|
237
224
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: safrano
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- oz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: rfc2047
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '0.3'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '0.3'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,12 +108,23 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0.51'
|
111
|
-
description: Safrano is an OData server library based on Ruby
|
111
|
+
description: Safrano is an OData server library based on Ruby Sequel and Rack.
|
112
112
|
email: dev@aithscel.eu
|
113
113
|
executables: []
|
114
114
|
extensions: []
|
115
115
|
extra_rdoc_files: []
|
116
116
|
files:
|
117
|
+
- lib/core_ext/Dir/iter.rb
|
118
|
+
- lib/core_ext/Hash/transform.rb
|
119
|
+
- lib/core_ext/Integer/edm.rb
|
120
|
+
- lib/core_ext/REXML/Document/output.rb
|
121
|
+
- lib/core_ext/String/convert.rb
|
122
|
+
- lib/core_ext/String/edm.rb
|
123
|
+
- lib/core_ext/dir.rb
|
124
|
+
- lib/core_ext/hash.rb
|
125
|
+
- lib/core_ext/integer.rb
|
126
|
+
- lib/core_ext/rexml.rb
|
127
|
+
- lib/core_ext/string.rb
|
117
128
|
- lib/odata/attribute.rb
|
118
129
|
- lib/odata/batch.rb
|
119
130
|
- lib/odata/collection.rb
|
@@ -121,6 +132,8 @@ files:
|
|
121
132
|
- lib/odata/collection_media.rb
|
122
133
|
- lib/odata/collection_order.rb
|
123
134
|
- lib/odata/common_logger.rb
|
135
|
+
- lib/odata/complex_type.rb
|
136
|
+
- lib/odata/edm/primitive_types.rb
|
124
137
|
- lib/odata/entity.rb
|
125
138
|
- lib/odata/error.rb
|
126
139
|
- lib/odata/expand.rb
|
@@ -131,16 +144,22 @@ files:
|
|
131
144
|
- lib/odata/filter/sequel_function_adapter.rb
|
132
145
|
- lib/odata/filter/token.rb
|
133
146
|
- lib/odata/filter/tree.rb
|
147
|
+
- lib/odata/function_import.rb
|
148
|
+
- lib/odata/model_ext.rb
|
134
149
|
- lib/odata/navigation_attribute.rb
|
135
150
|
- lib/odata/relations.rb
|
136
151
|
- lib/odata/select.rb
|
152
|
+
- lib/odata/transition.rb
|
137
153
|
- lib/odata/url_parameters.rb
|
138
154
|
- lib/odata/walker.rb
|
139
155
|
- lib/safrano.rb
|
156
|
+
- lib/safrano/contract.rb
|
140
157
|
- lib/safrano/core.rb
|
158
|
+
- lib/safrano/core_ext.rb
|
159
|
+
- lib/safrano/deprecation.rb
|
141
160
|
- lib/safrano/multipart.rb
|
142
|
-
- lib/safrano/odata_rack_builder.rb
|
143
161
|
- lib/safrano/rack_app.rb
|
162
|
+
- lib/safrano/rack_builder.rb
|
144
163
|
- lib/safrano/request.rb
|
145
164
|
- lib/safrano/response.rb
|
146
165
|
- lib/safrano/sequel_join_by_paths.rb
|
@@ -170,8 +189,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
189
|
- !ruby/object:Gem::Version
|
171
190
|
version: '0'
|
172
191
|
requirements: []
|
173
|
-
rubygems_version: 3.
|
192
|
+
rubygems_version: 3.2.5
|
174
193
|
signing_key:
|
175
194
|
specification_version: 4
|
176
|
-
summary: Safrano is
|
195
|
+
summary: Safrano is an OData server library based on Ruby Sequel and Rack
|
177
196
|
test_files: []
|