ginjo-rfm 2.1.6 → 2.1.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: