ginjo-rfm 2.1.6 → 2.1.7
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.
- data/CHANGELOG.md +5 -0
- data/README.md +1 -1
- data/lib/rfm/VERSION +1 -1
- data/lib/rfm/layout.rb +2 -1
- data/lib/rfm/server.rb +6 -4
- data/lib/rfm/utilities/compound_query.rb +2 -2
- metadata +171 -177
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -22,7 +22,7 @@ to support and take advantage of the progress of technologies surrounding Ruby.
|
|
22
22
|
* Portals are now included by default.
|
23
23
|
Removed `:include_portals` query option in favor of `:ignore_portals`.
|
24
24
|
Added `:max_portal_rows` query option.
|
25
|
-
* Added field-
|
25
|
+
* Added field-mapping framework to allow model fields with different names than Filemaker fields.
|
26
26
|
|
27
27
|
class User < Rfm::Base
|
28
28
|
config :field_mapping => {
|
data/lib/rfm/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.
|
1
|
+
2.1.7
|
data/lib/rfm/layout.rb
CHANGED
@@ -210,7 +210,7 @@ module Rfm
|
|
210
210
|
#
|
211
211
|
def find(find_criteria, options = {})
|
212
212
|
#puts "layout.find-#{self.object_id}"
|
213
|
-
options.merge!({:field_mapping => field_mapping}) if field_mapping
|
213
|
+
options.merge!({:field_mapping => field_mapping.invert}) if field_mapping
|
214
214
|
get_records(*Rfm::CompoundQuery.new(find_criteria, options))
|
215
215
|
end
|
216
216
|
|
@@ -276,6 +276,7 @@ module Rfm
|
|
276
276
|
# Apply mapping from :field_mapping, to send correct params in URL.
|
277
277
|
prms = params.merge(extra_params)
|
278
278
|
map = field_mapping.invert
|
279
|
+
options.merge!({:field_mapping => map}) if map
|
279
280
|
# TODO: Make this part handle string AND symbol keys.
|
280
281
|
#map.each{|k,v| prms[k]=prms.delete(v) if prms[v]}
|
281
282
|
prms.dup.each_key{|k| prms[map[k.to_s]]=prms.delete(k) if map[k.to_s]}
|
data/lib/rfm/server.rb
CHANGED
@@ -366,8 +366,10 @@ module Rfm
|
|
366
366
|
|
367
367
|
def expand_options(options)
|
368
368
|
result = {}
|
369
|
+
field_mapping = options.delete(:field_mapping) || {}
|
370
|
+
#puts field_mapping.to_yaml
|
369
371
|
options.each do |key,value|
|
370
|
-
case key
|
372
|
+
case key.to_sym
|
371
373
|
when :max_portal_rows
|
372
374
|
result['-relatedsets.max'] = value
|
373
375
|
result['-relatedsets.filter'] = 'layout'
|
@@ -378,9 +380,9 @@ module Rfm
|
|
378
380
|
when :sort_field
|
379
381
|
if value.kind_of? Array
|
380
382
|
raise Rfm::ParameterError.new(":sort_field can have at most 9 fields, but you passed an array with #{value.size} elements.") if value.size > 9
|
381
|
-
value.each_index { |i| result["-sortfield.#{i+1}"] = value[i] }
|
383
|
+
value.each_index { |i| result["-sortfield.#{i+1}"] = field_mapping[value[i]] || value[i] }
|
382
384
|
else
|
383
|
-
result["-sortfield.1"] = value
|
385
|
+
result["-sortfield.1"] = field_mapping[value] || value
|
384
386
|
end
|
385
387
|
when :sort_order
|
386
388
|
if value.kind_of? Array
|
@@ -417,7 +419,7 @@ module Rfm
|
|
417
419
|
when :modification_id
|
418
420
|
result['-modid'] = value
|
419
421
|
else
|
420
|
-
raise Rfm::ParameterError.new("Invalid option: #{key}
|
422
|
+
raise Rfm::ParameterError.new("Invalid option: #{key}")
|
421
423
|
end
|
422
424
|
end
|
423
425
|
return result
|
@@ -22,7 +22,7 @@ module Rfm
|
|
22
22
|
# Returns self as ['-fmpaction', {:hash=>'of', :key=>'values'}, {:options=>'hash'}]
|
23
23
|
def initialize(query, options={})
|
24
24
|
@options = options
|
25
|
-
@field_mapping = options.delete(:field_mapping)
|
25
|
+
@field_mapping = options.delete(:field_mapping) || {}
|
26
26
|
@original_input = query
|
27
27
|
@key_values = {}
|
28
28
|
@key_arrays = []
|
@@ -77,7 +77,7 @@ module Rfm
|
|
77
77
|
query_tag = []
|
78
78
|
val = val.rfm_force_array
|
79
79
|
val.each do |v|
|
80
|
-
@key_values["-q#{key_counter}"] = field_mapping
|
80
|
+
@key_values["-q#{key_counter}"] = field_mapping[key] || key
|
81
81
|
@key_values["-q#{key_counter}.value"] = v
|
82
82
|
query_tag << "q#{key_counter}"
|
83
83
|
@key_counter += 1
|
metadata
CHANGED
@@ -1,10 +1,15 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ginjo-rfm
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 5
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 2
|
8
|
+
- 1
|
9
|
+
- 7
|
10
|
+
version: 2.1.7
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Geoff Coffey
|
9
14
|
- Mufaddal Khumri
|
10
15
|
- Atsushi Matsuo
|
@@ -13,212 +18,193 @@ authors:
|
|
13
18
|
autorequire:
|
14
19
|
bindir: bin
|
15
20
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
21
|
+
|
22
|
+
date: 2013-05-05 00:00:00 Z
|
23
|
+
dependencies:
|
24
|
+
- !ruby/object:Gem::Dependency
|
19
25
|
name: activesupport
|
20
|
-
requirement: !ruby/object:Gem::Requirement
|
21
|
-
none: false
|
22
|
-
requirements:
|
23
|
-
- - ! '>='
|
24
|
-
- !ruby/object:Gem::Version
|
25
|
-
version: 2.3.5
|
26
|
-
type: :runtime
|
27
26
|
prerelease: false
|
28
|
-
|
27
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
|
-
requirements:
|
31
|
-
- -
|
32
|
-
- !ruby/object:Gem::Version
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
hash: 9
|
33
|
+
segments:
|
34
|
+
- 2
|
35
|
+
- 3
|
36
|
+
- 5
|
33
37
|
version: 2.3.5
|
34
|
-
|
38
|
+
type: :runtime
|
39
|
+
version_requirements: *id001
|
40
|
+
- !ruby/object:Gem::Dependency
|
35
41
|
name: activemodel
|
36
|
-
requirement: !ruby/object:Gem::Requirement
|
37
|
-
none: false
|
38
|
-
requirements:
|
39
|
-
- - ! '>='
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '0'
|
42
|
-
type: :development
|
43
42
|
prerelease: false
|
44
|
-
|
45
|
-
none: false
|
46
|
-
requirements:
|
47
|
-
- - ! '>='
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '0'
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: rake
|
52
|
-
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
53
44
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
hash: 3
|
49
|
+
segments:
|
50
|
+
- 0
|
51
|
+
version: "0"
|
58
52
|
type: :development
|
53
|
+
version_requirements: *id002
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: rake
|
59
56
|
prerelease: false
|
60
|
-
|
61
|
-
none: false
|
62
|
-
requirements:
|
63
|
-
- - ! '>='
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: '0'
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: rdoc
|
68
|
-
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
69
58
|
none: false
|
70
|
-
requirements:
|
71
|
-
- -
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 3
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
version: "0"
|
74
66
|
type: :development
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: rdoc
|
75
70
|
prerelease: false
|
76
|
-
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
77
72
|
none: false
|
78
|
-
requirements:
|
79
|
-
- -
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
none: false
|
86
|
-
requirements:
|
87
|
-
- - ~>
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 1.3.0
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
90
80
|
type: :development
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: rspec
|
91
84
|
prerelease: false
|
92
|
-
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
93
86
|
none: false
|
94
|
-
requirements:
|
87
|
+
requirements:
|
95
88
|
- - ~>
|
96
|
-
- !ruby/object:Gem::Version
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 27
|
91
|
+
segments:
|
92
|
+
- 1
|
93
|
+
- 3
|
94
|
+
- 0
|
97
95
|
version: 1.3.0
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
name: diff-lcs
|
100
|
-
requirement: !ruby/object:Gem::Requirement
|
101
|
-
none: false
|
102
|
-
requirements:
|
103
|
-
- - ! '>='
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
version: '0'
|
106
96
|
type: :development
|
97
|
+
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: diff-lcs
|
107
100
|
prerelease: false
|
108
|
-
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
109
102
|
none: false
|
110
|
-
requirements:
|
111
|
-
- -
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
none: false
|
118
|
-
requirements:
|
119
|
-
- - ! '>='
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: '0'
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
hash: 3
|
107
|
+
segments:
|
108
|
+
- 0
|
109
|
+
version: "0"
|
122
110
|
type: :development
|
111
|
+
version_requirements: *id006
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: yard
|
123
114
|
prerelease: false
|
124
|
-
|
125
|
-
none: false
|
126
|
-
requirements:
|
127
|
-
- - ! '>='
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
version: '0'
|
130
|
-
- !ruby/object:Gem::Dependency
|
131
|
-
name: redcarpet
|
132
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
133
116
|
none: false
|
134
|
-
requirements:
|
135
|
-
- -
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
hash: 3
|
121
|
+
segments:
|
122
|
+
- 0
|
123
|
+
version: "0"
|
138
124
|
type: :development
|
125
|
+
version_requirements: *id007
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: redcarpet
|
139
128
|
prerelease: false
|
140
|
-
|
141
|
-
none: false
|
142
|
-
requirements:
|
143
|
-
- - ! '>='
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
- !ruby/object:Gem::Dependency
|
147
|
-
name: libxml-ruby
|
148
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
149
130
|
none: false
|
150
|
-
requirements:
|
151
|
-
- -
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
hash: 3
|
135
|
+
segments:
|
136
|
+
- 0
|
137
|
+
version: "0"
|
154
138
|
type: :development
|
139
|
+
version_requirements: *id008
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: libxml-ruby
|
155
142
|
prerelease: false
|
156
|
-
|
143
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
157
144
|
none: false
|
158
|
-
requirements:
|
159
|
-
- -
|
160
|
-
- !ruby/object:Gem::Version
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
none: false
|
166
|
-
requirements:
|
167
|
-
- - ! '>='
|
168
|
-
- !ruby/object:Gem::Version
|
169
|
-
version: '0'
|
145
|
+
requirements:
|
146
|
+
- - ">="
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
hash: 3
|
149
|
+
segments:
|
150
|
+
- 0
|
151
|
+
version: "0"
|
170
152
|
type: :development
|
153
|
+
version_requirements: *id009
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: nokogiri
|
171
156
|
prerelease: false
|
172
|
-
|
157
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
173
158
|
none: false
|
174
|
-
requirements:
|
175
|
-
- -
|
176
|
-
- !ruby/object:Gem::Version
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
none: false
|
182
|
-
requirements:
|
183
|
-
- - ! '>='
|
184
|
-
- !ruby/object:Gem::Version
|
185
|
-
version: '0'
|
159
|
+
requirements:
|
160
|
+
- - ">="
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
hash: 3
|
163
|
+
segments:
|
164
|
+
- 0
|
165
|
+
version: "0"
|
186
166
|
type: :development
|
167
|
+
version_requirements: *id010
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: hpricot
|
187
170
|
prerelease: false
|
188
|
-
|
171
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
189
172
|
none: false
|
190
|
-
requirements:
|
191
|
-
- -
|
192
|
-
- !ruby/object:Gem::Version
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
none: false
|
198
|
-
requirements:
|
199
|
-
- - ! '>='
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0'
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
hash: 3
|
177
|
+
segments:
|
178
|
+
- 0
|
179
|
+
version: "0"
|
202
180
|
type: :development
|
181
|
+
version_requirements: *id011
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: ox
|
203
184
|
prerelease: false
|
204
|
-
|
185
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
205
186
|
none: false
|
206
|
-
requirements:
|
207
|
-
- -
|
208
|
-
- !ruby/object:Gem::Version
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
187
|
+
requirements:
|
188
|
+
- - ">="
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
hash: 3
|
191
|
+
segments:
|
192
|
+
- 0
|
193
|
+
version: "0"
|
194
|
+
type: :development
|
195
|
+
version_requirements: *id012
|
196
|
+
description: Rfm lets your Ruby scripts and Rails applications talk directly to your Filemaker server. Ginjo-rfm includes ActiveModel compatibility, multiple XML parsers, compound Filemaker find requests, and a configuration API.
|
213
197
|
email: http://groups.google.com/group/rfmcommunity
|
214
198
|
executables: []
|
199
|
+
|
215
200
|
extensions: []
|
216
|
-
|
201
|
+
|
202
|
+
extra_rdoc_files:
|
217
203
|
- LICENSE
|
218
204
|
- README.md
|
219
205
|
- CHANGELOG.md
|
220
206
|
- lib/rfm/VERSION
|
221
|
-
files:
|
207
|
+
files:
|
222
208
|
- lib/rfm/base.rb
|
223
209
|
- lib/rfm/database.rb
|
224
210
|
- lib/rfm/error.rb
|
@@ -250,33 +236,41 @@ files:
|
|
250
236
|
- CHANGELOG.md
|
251
237
|
homepage: https://rubygems.org/gems/ginjo-rfm
|
252
238
|
licenses: []
|
239
|
+
|
253
240
|
post_install_message:
|
254
|
-
rdoc_options:
|
241
|
+
rdoc_options:
|
255
242
|
- --line-numbers
|
256
243
|
- --main
|
257
244
|
- README.md
|
258
|
-
require_paths:
|
245
|
+
require_paths:
|
259
246
|
- lib
|
260
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
247
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
261
248
|
none: false
|
262
|
-
requirements:
|
263
|
-
- -
|
264
|
-
- !ruby/object:Gem::Version
|
265
|
-
|
266
|
-
segments:
|
249
|
+
requirements:
|
250
|
+
- - ">="
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
hash: 3
|
253
|
+
segments:
|
267
254
|
- 0
|
268
|
-
|
269
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
|
+
version: "0"
|
256
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
270
257
|
none: false
|
271
|
-
requirements:
|
272
|
-
- -
|
273
|
-
- !ruby/object:Gem::Version
|
258
|
+
requirements:
|
259
|
+
- - ">"
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
hash: 25
|
262
|
+
segments:
|
263
|
+
- 1
|
264
|
+
- 3
|
265
|
+
- 1
|
274
266
|
version: 1.3.1
|
275
267
|
requirements: []
|
268
|
+
|
276
269
|
rubyforge_project:
|
277
270
|
rubygems_version: 1.8.25
|
278
271
|
signing_key:
|
279
272
|
specification_version: 3
|
280
273
|
summary: Ruby to Filemaker adapter
|
281
274
|
test_files: []
|
275
|
+
|
282
276
|
has_rdoc:
|