ginjo-rfm 3.0.9 → 3.0.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,64 @@
1
+ require 'rfm'
2
+ require 'rfm/base'
3
+
4
+ module Rfm
5
+ module Scope
6
+
7
+ SCOPE = Proc.new {[]}
8
+
9
+ # Add scoping to Rfm::Base class methods for querying fmp records.
10
+ # Usage:
11
+ # class MyModel < Rfm::Base
12
+ # SCOPE = proc { |optional-scope-args| <single-or-array-of-fmp-request-hashes> }
13
+ # end
14
+ #
15
+ # Optionally pass :scope=>fmp-request-hash-or-array or :scope_args=>anything
16
+ # in the FMP request options hash, to be used at scoping time,
17
+ # instead of above scope constant.
18
+
19
+ def find(*args)
20
+ new_args = apply_scope(*args)
21
+ super(*new_args)
22
+ end
23
+
24
+ def count(*args)
25
+ new_args = apply_scope(*args)
26
+ super(*new_args)
27
+ end
28
+
29
+ # Mix scope requests with user requests (sorta like a cross-join of requests).
30
+ def apply_scope(*args)
31
+ opts = (args.size > 1 && args.last.is_a?(Hash) ? args.pop : {})
32
+ scope = [opts.delete(:scope) || self::SCOPE.call(opts.delete(:scope_args))].flatten
33
+ return [args].flatten(1).push(opts) if !(args[0].is_a?(Array) || args[0].is_a?(Hash)) || scope.size < 1
34
+ scoped_requests = []
35
+ scope.each do |scope_req|
36
+ [args].flatten.each do |req|
37
+ scoped_requests.push(req[:omit] ? req : req.merge(scope_req))
38
+ end
39
+ end
40
+ scoped_query = [scoped_requests, opts]
41
+ scoped_query
42
+ end
43
+
44
+ # def self.extended(base)
45
+ # puts "Extending #{base} with Scope"
46
+ # end
47
+
48
+ end # Scope
49
+
50
+
51
+ class Base
52
+ SCOPE = Scope::SCOPE
53
+
54
+ class << self
55
+ # When Rfm::Base is inherited, the inheritor will extend this Scope module
56
+ alias_method :inherited_orig, :inherited
57
+ def inherited(model)
58
+ super(model)
59
+ model.send :extend, Scope
60
+ end
61
+ end
62
+ end
63
+
64
+ end # Rfm
@@ -1,11 +1,27 @@
1
1
  module Rfm
2
- VERSION_DEFAULT = 'none'
3
- VERSION = File.read(PATH + '/rfm/VERSION').lines.first.chomp rescue VERSION_DEFAULT
2
+ VERSION_DEFAULT = 'none'
3
+ VERSION = File.read(PATH + '/rfm/VERSION').lines.first.chomp rescue VERSION_DEFAULT
4
+
4
5
  VERSION.instance_eval do
5
- def components; VERSION.split('.'); end
6
- def major; components[0]; end
7
- def minor; components[1]; end
8
- def patch; components[2]; end
9
- def build; components[3]; end
6
+ def components
7
+ VERSION.split('.')
8
+ end
9
+
10
+ def major
11
+ components[0]
12
+ end
13
+
14
+ def minor
15
+ components[1]
16
+ end
17
+
18
+ def patch
19
+ components[2]
20
+ end
21
+
22
+ def build
23
+ components[3]
24
+ end
10
25
  end
26
+
11
27
  end
metadata CHANGED
@@ -1,190 +1,190 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ginjo-rfm
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.9
4
+ version: 3.0.10
5
5
  platform: ruby
6
6
  authors:
7
+ - Bill Richardson
7
8
  - Geoff Coffey
8
9
  - Mufaddal Khumri
9
10
  - Atsushi Matsuo
10
11
  - Larry Sprock
11
- - Bill Richardson
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2015-03-21 00:00:00.000000000 Z
15
+ date: 2015-09-10 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activemodel
19
19
  requirement: !ruby/object:Gem::Requirement
20
20
  requirements:
21
- - - ">="
21
+ - - ! '>='
22
22
  - !ruby/object:Gem::Version
23
23
  version: '0'
24
24
  type: :development
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - ">="
28
+ - - ! '>='
29
29
  - !ruby/object:Gem::Version
30
30
  version: '0'
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: rake
33
33
  requirement: !ruby/object:Gem::Requirement
34
34
  requirements:
35
- - - ">="
35
+ - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0'
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  requirements:
42
- - - ">="
42
+ - - ! '>='
43
43
  - !ruby/object:Gem::Version
44
44
  version: '0'
45
45
  - !ruby/object:Gem::Dependency
46
46
  name: rdoc
47
47
  requirement: !ruby/object:Gem::Requirement
48
48
  requirements:
49
- - - ">="
49
+ - - ! '>='
50
50
  - !ruby/object:Gem::Version
51
51
  version: '0'
52
52
  type: :development
53
53
  prerelease: false
54
54
  version_requirements: !ruby/object:Gem::Requirement
55
55
  requirements:
56
- - - ">="
56
+ - - ! '>='
57
57
  - !ruby/object:Gem::Version
58
58
  version: '0'
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rspec
61
61
  requirement: !ruby/object:Gem::Requirement
62
62
  requirements:
63
- - - "~>"
63
+ - - ~>
64
64
  - !ruby/object:Gem::Version
65
65
  version: '2'
66
66
  type: :development
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
- - - "~>"
70
+ - - ~>
71
71
  - !ruby/object:Gem::Version
72
72
  version: '2'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: minitest
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
- - - ">="
77
+ - - ! '>='
78
78
  - !ruby/object:Gem::Version
79
79
  version: '0'
80
80
  type: :development
81
81
  prerelease: false
82
82
  version_requirements: !ruby/object:Gem::Requirement
83
83
  requirements:
84
- - - ">="
84
+ - - ! '>='
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: diff-lcs
89
89
  requirement: !ruby/object:Gem::Requirement
90
90
  requirements:
91
- - - ">="
91
+ - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
94
  type: :development
95
95
  prerelease: false
96
96
  version_requirements: !ruby/object:Gem::Requirement
97
97
  requirements:
98
- - - ">="
98
+ - - ! '>='
99
99
  - !ruby/object:Gem::Version
100
100
  version: '0'
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: yard
103
103
  requirement: !ruby/object:Gem::Requirement
104
104
  requirements:
105
- - - ">="
105
+ - - ! '>='
106
106
  - !ruby/object:Gem::Version
107
107
  version: '0'
108
108
  type: :development
109
109
  prerelease: false
110
110
  version_requirements: !ruby/object:Gem::Requirement
111
111
  requirements:
112
- - - ">="
112
+ - - ! '>='
113
113
  - !ruby/object:Gem::Version
114
114
  version: '0'
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: redcarpet
117
117
  requirement: !ruby/object:Gem::Requirement
118
118
  requirements:
119
- - - ">="
119
+ - - ! '>='
120
120
  - !ruby/object:Gem::Version
121
121
  version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
124
  version_requirements: !ruby/object:Gem::Requirement
125
125
  requirements:
126
- - - ">="
126
+ - - ! '>='
127
127
  - !ruby/object:Gem::Version
128
128
  version: '0'
129
129
  - !ruby/object:Gem::Dependency
130
130
  name: ruby-prof
131
131
  requirement: !ruby/object:Gem::Requirement
132
132
  requirements:
133
- - - ">="
133
+ - - ! '>='
134
134
  - !ruby/object:Gem::Version
135
135
  version: '0'
136
136
  type: :development
137
137
  prerelease: false
138
138
  version_requirements: !ruby/object:Gem::Requirement
139
139
  requirements:
140
- - - ">="
140
+ - - ! '>='
141
141
  - !ruby/object:Gem::Version
142
142
  version: '0'
143
143
  - !ruby/object:Gem::Dependency
144
144
  name: libxml-ruby
145
145
  requirement: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - ">="
147
+ - - ! '>='
148
148
  - !ruby/object:Gem::Version
149
149
  version: '0'
150
150
  type: :development
151
151
  prerelease: false
152
152
  version_requirements: !ruby/object:Gem::Requirement
153
153
  requirements:
154
- - - ">="
154
+ - - ! '>='
155
155
  - !ruby/object:Gem::Version
156
156
  version: '0'
157
157
  - !ruby/object:Gem::Dependency
158
- name: nokogiri
158
+ name: ox
159
159
  requirement: !ruby/object:Gem::Requirement
160
160
  requirements:
161
- - - ">="
161
+ - - ! '>='
162
162
  - !ruby/object:Gem::Version
163
163
  version: '0'
164
164
  type: :development
165
165
  prerelease: false
166
166
  version_requirements: !ruby/object:Gem::Requirement
167
167
  requirements:
168
- - - ">="
168
+ - - ! '>='
169
169
  - !ruby/object:Gem::Version
170
170
  version: '0'
171
171
  - !ruby/object:Gem::Dependency
172
- name: ox
172
+ name: nokogiri
173
173
  requirement: !ruby/object:Gem::Requirement
174
174
  requirements:
175
- - - ">="
175
+ - - ! '>='
176
176
  - !ruby/object:Gem::Version
177
177
  version: '0'
178
178
  type: :development
179
179
  prerelease: false
180
180
  version_requirements: !ruby/object:Gem::Requirement
181
181
  requirements:
182
- - - ">="
182
+ - - ! '>='
183
183
  - !ruby/object:Gem::Version
184
184
  version: '0'
185
- description: Rfm lets your Ruby scripts and Rails applications talk directly to your
186
- Filemaker server. Ginjo-rfm includes ActiveModel compatibility, multiple XML parsers,
187
- compound Filemaker find requests, and a configuration API.
185
+ description: Rfm is a standalone database adapter for Filemaker server. Ginjo-rfm
186
+ features multiple xml parser support, ActiveModel integration, field mapping, compound
187
+ queries, logging, scoping, and a configuration framework.
188
188
  email: http://groups.google.com/group/rfmcommunity
189
189
  executables: []
190
190
  extensions: []
@@ -194,7 +194,7 @@ extra_rdoc_files:
194
194
  - CHANGELOG.md
195
195
  - lib/rfm/VERSION
196
196
  files:
197
- - ".yardopts"
197
+ - .yardopts
198
198
  - CHANGELOG.md
199
199
  - LICENSE
200
200
  - README.md
@@ -225,25 +225,26 @@ files:
225
225
  - lib/rfm/utilities/sax/fmresultset.xml
226
226
  - lib/rfm/utilities/sax/fmresultset.yml
227
227
  - lib/rfm/utilities/sax_parser.rb
228
+ - lib/rfm/utilities/scope.rb
228
229
  - lib/rfm/version.rb
229
- homepage: https://rubygems.org/gems/ginjo-rfm
230
+ homepage: https://github.com/ginjo/rfm
230
231
  licenses: []
231
232
  metadata: {}
232
233
  post_install_message:
233
234
  rdoc_options:
234
- - "--line-numbers"
235
- - "--main"
235
+ - --line-numbers
236
+ - --main
236
237
  - README.md
237
238
  require_paths:
238
239
  - lib
239
240
  required_ruby_version: !ruby/object:Gem::Requirement
240
241
  requirements:
241
- - - ">="
242
+ - - ! '>='
242
243
  - !ruby/object:Gem::Version
243
244
  version: '0'
244
245
  required_rubygems_version: !ruby/object:Gem::Requirement
245
246
  requirements:
246
- - - ">"
247
+ - - ! '>'
247
248
  - !ruby/object:Gem::Version
248
249
  version: 1.3.1
249
250
  requirements: []
@@ -251,6 +252,6 @@ rubyforge_project:
251
252
  rubygems_version: 2.4.5
252
253
  signing_key:
253
254
  specification_version: 4
254
- summary: Ruby to Filemaker adapter
255
+ summary: Ruby Filemaker adapter
255
256
  test_files: []
256
257
  has_rdoc: