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.
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## Ginjo-Rfm 2.1.7
4
+
5
+ * Added field_mapping awareness to :sort_field query option.
6
+ * Relaxed requirement that query option keys be symbols - can now be strings.
7
+
3
8
  ## Ginjo-Rfm 2.1.6
4
9
 
5
10
  * Fixed typo in Rfm::Record#[]=
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-remapping framework to allow model fields with different names than Filemaker fields.
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 => {
@@ -1 +1 @@
1
- 2.1.6
1
+ 2.1.7
@@ -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]}
@@ -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} (are you using a string instead of a symbol?)")
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.invert[key] || key
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
- version: 2.1.6
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
- date: 2013-04-16 00:00:00.000000000 Z
17
- dependencies:
18
- - !ruby/object:Gem::Dependency
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
- version_requirements: !ruby/object:Gem::Requirement
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
- - !ruby/object:Gem::Dependency
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
- version_requirements: !ruby/object:Gem::Requirement
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
- version: '0'
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
- version_requirements: !ruby/object:Gem::Requirement
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
- version: '0'
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
- version_requirements: !ruby/object:Gem::Requirement
71
+ requirement: &id004 !ruby/object:Gem::Requirement
77
72
  none: false
78
- requirements:
79
- - - ! '>='
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- - !ruby/object:Gem::Dependency
83
- name: rspec
84
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
101
+ requirement: &id006 !ruby/object:Gem::Requirement
109
102
  none: false
110
- requirements:
111
- - - ! '>='
112
- - !ruby/object:Gem::Version
113
- version: '0'
114
- - !ruby/object:Gem::Dependency
115
- name: yard
116
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
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
- version: '0'
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
- version_requirements: !ruby/object:Gem::Requirement
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
- version: '0'
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
- version_requirements: !ruby/object:Gem::Requirement
143
+ requirement: &id009 !ruby/object:Gem::Requirement
157
144
  none: false
158
- requirements:
159
- - - ! '>='
160
- - !ruby/object:Gem::Version
161
- version: '0'
162
- - !ruby/object:Gem::Dependency
163
- name: nokogiri
164
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
157
+ requirement: &id010 !ruby/object:Gem::Requirement
173
158
  none: false
174
- requirements:
175
- - - ! '>='
176
- - !ruby/object:Gem::Version
177
- version: '0'
178
- - !ruby/object:Gem::Dependency
179
- name: hpricot
180
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
171
+ requirement: &id011 !ruby/object:Gem::Requirement
189
172
  none: false
190
- requirements:
191
- - - ! '>='
192
- - !ruby/object:Gem::Version
193
- version: '0'
194
- - !ruby/object:Gem::Dependency
195
- name: ox
196
- requirement: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
185
+ requirement: &id012 !ruby/object:Gem::Requirement
205
186
  none: false
206
- requirements:
207
- - - ! '>='
208
- - !ruby/object:Gem::Version
209
- version: '0'
210
- description: Rfm lets your Ruby scripts and Rails applications talk directly to your
211
- Filemaker server. Ginjo-rfm includes ActiveModel compatibility, multiple XML parsers,
212
- compound Filemaker find requests, and a configuration API.
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
- extra_rdoc_files:
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
- version: '0'
266
- segments:
249
+ requirements:
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ hash: 3
253
+ segments:
267
254
  - 0
268
- hash: 802999713867049737
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: