ginjo-rfm 3.0.1 → 3.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +19 -6
- data/lib/rfm/VERSION +1 -1
- data/lib/rfm/layout.rb +30 -8
- data/lib/rfm/utilities/sax/fmpxmllayout.yml +4 -3
- data/lib/rfm/utilities/sax_parser.rb +4 -3
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NmQyNjY1ZmFlZWQyMjdiYTRiMDE5NWNiY2VhMjNjOGMwNzJhZTMwMA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjYzOWNlMzAyNDRiNmZmNmM1ODczYTgyNmFjZDdlZDAyZGRhZWNkZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZjgxYThhYjcxM2E2OTE5ZTJmNjk2NGYyZmQ4ZWNlYWQ2OTAxN2RmN2ZmNjBl
|
10
|
+
OTg1NWEzZWVkYzhiODNlMTg2NzEwYWQ4MjNhZjg5MjYwZWZiMzEwNGY5OWQ3
|
11
|
+
ZjUyZTExNDVhNGVkZmE5YWM1OTFlNGVmOGFmMzJhZGFhZmU0OGE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODNmN2M4ODgzZWVmNWM2NGZhYjhlMWIxMDk5NzAyNTlhMTU3N2QyOTZkM2Q2
|
14
|
+
Zjg3MjBiMDZkYzc1MTUyY2RjYjVkMmEwMjc0M2E3YTNiNmEwZTI1YzE3OTRi
|
15
|
+
ZjRlNDQxYjVhMWMzZjg3OGVhMzM0MTAxNzY5YTNjMDhjOTUyMTQ=
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,19 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## Ginjo-Rfm 3.0.4
|
4
|
+
|
5
|
+
* Corrected reference to @meta in fmpxmllayout.yml. Specs now passing for Layout#load\_layout.
|
6
|
+
* Added error checking to Layout#load\_layout.
|
7
|
+
* Fixed setting/saving of repeating fields. Added spec to verify.
|
8
|
+
* Fixed rspec rake task, fixed rake spec\_multi.
|
9
|
+
* Changed Ox default parse option to not encode special characters. This is now in tune with other parsers' defaults.
|
10
|
+
This fixes (among other things) URLs returned from container fields.
|
11
|
+
* Fixed error in gemspec preventing sax templates from being included in gem build.
|
12
|
+
|
3
13
|
## Ginjo-Rfm 3.0.0
|
4
14
|
|
5
15
|
* Disabled default port in Connection (was 80), as it was tripping up connections where the port wasn't specified for a :use\_ssl connection on older Rubies.
|
6
|
-
*
|
16
|
+
* Fixes to :ignore\_portals option.
|
7
17
|
* Removed runtime dependency on activesupport from gemspec.
|
8
18
|
* Added check in Field#coerce to make sure a '?' is in a string before splitting on '?'. This was breaking repeating container fields.
|
9
19
|
* Fixed case mismatch in hash key in Factory classes. Added logging of parsing template to logging of parsing backend.
|
@@ -17,8 +27,6 @@
|
|
17
27
|
* Refined multiple :use handling in Config.
|
18
28
|
* Using rspec 2
|
19
29
|
* Removed SubLayout.
|
20
|
-
* Added field-mapping awareness to :sort\_field query option.
|
21
|
-
* Relaxed requirement that query option keys be symbols - can now be strings.
|
22
30
|
* Record.new now automatically creats models based on layout name. Should there be an option to disable this?
|
23
31
|
* Removed ActiveSupport requirement (of course, ActiveSupport will load if ActiveModle is used, but that is the users' choice).
|
24
32
|
* Removed XmlMini, XmlParser, and related code & specs.
|
@@ -34,6 +42,11 @@
|
|
34
42
|
* Added connection.rb and moved some methods from Server to Connection.
|
35
43
|
* Sax parsing rewrite.
|
36
44
|
|
45
|
+
## Ginjo-Rfm 2.1.7
|
46
|
+
|
47
|
+
* Added field\_mapping awareness to :sort\_field query option.
|
48
|
+
* Relaxed requirement that query option keys be symbols - can now be strings.
|
49
|
+
|
37
50
|
## Ginjo-Rfm 2.1.6
|
38
51
|
|
39
52
|
* Fixed typo in Rfm::Record#[]=
|
@@ -65,9 +78,9 @@
|
|
65
78
|
|
66
79
|
## Ginjo-Rfm 2.1.0
|
67
80
|
|
68
|
-
* Removed `:
|
81
|
+
* Removed `:include_portals` query option in favor of `:ignore_portals`.
|
69
82
|
|
70
|
-
* Added `:
|
83
|
+
* Added `:max_portal_rows` query option.
|
71
84
|
|
72
85
|
* Added field-remapping framework to allow model fields with different names than Filemaker fields.
|
73
86
|
|
@@ -192,7 +205,7 @@
|
|
192
205
|
|
193
206
|
Example:
|
194
207
|
|
195
|
-
result =
|
208
|
+
result = fm_server('layout').find({:username => "==#{username}"}, {:include_portals => true})
|
196
209
|
# => This will fetch all records with portal records attached.
|
197
210
|
|
198
211
|
result.first.portals
|
data/lib/rfm/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.0.
|
1
|
+
3.0.4
|
data/lib/rfm/layout.rb
CHANGED
@@ -303,10 +303,22 @@ module Rfm
|
|
303
303
|
prms = params.merge(extra_params)
|
304
304
|
map = field_mapping.invert
|
305
305
|
options.merge!({:field_mapping => map}) if map && !map.empty?
|
306
|
-
# TODO: Make this part handle string AND symbol keys.
|
306
|
+
# TODO: Make this part handle string AND symbol keys. (isn't this already done?)
|
307
307
|
#map.each{|k,v| prms[k]=prms.delete(v) if prms[v]}
|
308
|
-
|
309
|
-
|
308
|
+
|
309
|
+
#prms.dup.each_key{|k| prms[map[k.to_s]]=prms.delete(k) if map[k.to_s]}
|
310
|
+
prms.dup.each_key do |k|
|
311
|
+
new_key = map[k.to_s] || k
|
312
|
+
if prms[new_key].is_a? Array
|
313
|
+
prms[new_key].each_with_index do |v, i|
|
314
|
+
prms["#{new_key}(#{i+1})"]=v
|
315
|
+
end
|
316
|
+
prms.delete new_key
|
317
|
+
else
|
318
|
+
prms[new_key]=prms.delete(k) if new_key != k
|
319
|
+
end
|
320
|
+
end
|
321
|
+
|
310
322
|
#c = Connection.new(action, prms, options, state.merge(:parent=>self))
|
311
323
|
c = Connection.new(action, prms, options, self)
|
312
324
|
rslt = c.parse(template || :fmresultset, Rfm::Resultset.new(self, self))
|
@@ -374,14 +386,24 @@ module Rfm
|
|
374
386
|
### Utility ###
|
375
387
|
|
376
388
|
def load_layout
|
377
|
-
|
389
|
+
#@loaded = true # This is first so parsing call to 'meta' wont cause infinite loop,
|
390
|
+
# but I changed parsing template to refer directly to inst var instead of accessor method.
|
378
391
|
connection = Connection.new('-view', {'-db' => state[:database], '-lay' => name}, {:grammar=>'FMPXMLLAYOUT'}, self)
|
379
|
-
|
380
|
-
|
381
|
-
|
392
|
+
begin
|
393
|
+
connection.parse(:fmpxmllayout, self)
|
394
|
+
@loaded = true
|
395
|
+
rescue
|
396
|
+
@meta.clear
|
397
|
+
raise $!
|
398
|
+
end
|
382
399
|
@meta
|
383
400
|
end
|
384
401
|
|
402
|
+
def check_for_errors(code=@meta['error'].to_i, raise_401=state[:raise_401])
|
403
|
+
#puts ["\nRESULTSET#check_for_errors", code, raise_401]
|
404
|
+
raise Rfm::Error.getError(code) if code != 0 && (code != 401 || raise_401)
|
405
|
+
end
|
406
|
+
|
385
407
|
def field_mapping
|
386
408
|
@field_mapping ||= load_field_mapping(state[:field_mapping])
|
387
409
|
end
|
@@ -417,7 +439,7 @@ module Rfm
|
|
417
439
|
end
|
418
440
|
|
419
441
|
|
420
|
-
private :load_layout, :get_records, :params
|
442
|
+
private :load_layout, :get_records, :params, :check_for_errors
|
421
443
|
|
422
444
|
|
423
445
|
end # Layout
|
@@ -14,8 +14,7 @@ elements:
|
|
14
14
|
attach: none
|
15
15
|
- name: errorcode
|
16
16
|
attach: none
|
17
|
-
|
18
|
-
#before_close: 'check_for_errors'
|
17
|
+
before_close: 'check_for_errors'
|
19
18
|
attributes:
|
20
19
|
- name: text
|
21
20
|
as_name: error
|
@@ -29,7 +28,9 @@ elements:
|
|
29
28
|
- name: NAME
|
30
29
|
as_name: name
|
31
30
|
- name: field
|
32
|
-
|
31
|
+
# Used to be 'object.meta', but that required sloppy 'loaded' indicator handling (or infinite loop),
|
32
|
+
# so now just referring to raw inst var @meta, instead of method .meta.
|
33
|
+
handler: [object.instance_variable_get('@meta'), handle_new_field_control, _attributes]
|
33
34
|
attach_attributes: private
|
34
35
|
elements:
|
35
36
|
- name: style
|
@@ -711,10 +711,11 @@ module Rfm
|
|
711
711
|
include Handler
|
712
712
|
|
713
713
|
def run_parser(io)
|
714
|
+
options={:convert_special=>true}
|
714
715
|
case
|
715
|
-
when (io.is_a?(File) or io.is_a?(StringIO)); Ox.sax_parse self, io
|
716
|
-
when io.to_s[/^</]; StringIO.open(io){|f| Ox.sax_parse self, f}
|
717
|
-
else File.open(io){|f| Ox.sax_parse self, f}
|
716
|
+
when (io.is_a?(File) or io.is_a?(StringIO)); Ox.sax_parse self, io, options
|
717
|
+
when io.to_s[/^</]; StringIO.open(io){|f| Ox.sax_parse self, f, options}
|
718
|
+
else File.open(io){|f| Ox.sax_parse self, f, options}
|
718
719
|
end
|
719
720
|
end
|
720
721
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ginjo-rfm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geoff Coffey
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2014-07-
|
15
|
+
date: 2014-07-11 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: activemodel
|
@@ -112,6 +112,20 @@ dependencies:
|
|
112
112
|
- - ! '>='
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: ruby-prof
|
117
|
+
requirement: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - ! '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
type: :development
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ! '>='
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
115
129
|
- !ruby/object:Gem::Dependency
|
116
130
|
name: libxml-ruby
|
117
131
|
requirement: !ruby/object:Gem::Requirement
|