filemaker 0.0.18 → 0.0.19
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -1
- data/README.md +55 -11
- data/diagram.svg +1 -0
- data/filemaker.gemspec +2 -0
- data/lib/filemaker.rb +2 -1
- data/lib/filemaker/configuration.rb +1 -1
- data/lib/filemaker/layout.rb +1 -1
- data/lib/filemaker/metadata/field.rb +6 -3
- data/lib/filemaker/model/batches.rb +16 -0
- data/lib/filemaker/model/builder.rb +5 -2
- data/lib/filemaker/model/components.rb +2 -0
- data/lib/filemaker/model/criteria.rb +26 -6
- data/lib/filemaker/model/field.rb +11 -2
- data/lib/filemaker/model/fields.rb +15 -9
- data/lib/filemaker/model/optional.rb +1 -1
- data/lib/filemaker/model/pagination.rb +6 -1
- data/lib/filemaker/model/persistable.rb +1 -1
- data/lib/filemaker/model/relations/proxy.rb +4 -1
- data/lib/filemaker/model/selectable.rb +2 -2
- data/lib/filemaker/model/types/attachment.rb +102 -0
- data/lib/filemaker/model/types/email.rb +41 -0
- data/lib/filemaker/record.rb +7 -4
- data/lib/filemaker/server.rb +33 -13
- data/lib/filemaker/version.rb +1 -1
- data/lib/generators/filemaker/model/model_generator.rb +2 -1
- data/spec/filemaker/configuration_spec.rb +1 -1
- data/spec/filemaker/layout_spec.rb +8 -8
- data/spec/filemaker/metadata/field_spec.rb +9 -1
- data/spec/filemaker/model/criteria_spec.rb +17 -17
- data/spec/filemaker/model/relations_spec.rb +5 -0
- data/spec/filemaker/model_spec.rb +66 -1
- data/spec/filemaker/resultset_spec.rb +1 -1
- data/spec/filemaker/store/database_store_spec.rb +1 -1
- data/spec/support/filemaker.yml +2 -2
- data/spec/support/models.rb +3 -1
- metadata +35 -3
@@ -38,6 +38,11 @@ describe Filemaker::Model::Relations do
|
|
38
38
|
expect(@model.member.reference_key).to eq 'member_id'
|
39
39
|
expect(@model.member.final_reference_key).to eq 'id'
|
40
40
|
end
|
41
|
+
|
42
|
+
it 'proxy blank?' do
|
43
|
+
expect(@model.candidate.blank?).to eq false
|
44
|
+
expect(@model.candidate.nil?).to eq false
|
45
|
+
end
|
41
46
|
end
|
42
47
|
|
43
48
|
context 'when using supplied reference_key' do
|
@@ -31,9 +31,54 @@ describe Filemaker::Model do
|
|
31
31
|
expect(model.email).to eq 'UNTITLED'
|
32
32
|
end
|
33
33
|
|
34
|
+
it 'parse multiple emails into one' do
|
35
|
+
model.backup_email = " one@host.com,two@host.com\nthree@host.com"
|
36
|
+
expect(model.backup_email.to_s).to eq 'one@host.com'
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'parse good email' do
|
40
|
+
model.backup_email = 'one@host.com'
|
41
|
+
expect(model.backup_email.to_s).to eq 'one@host.com'
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'parse bad emails' do
|
45
|
+
model.backup_email = 'bounced@example.com - bounce'
|
46
|
+
expect(model.backup_email.to_s).to eq 'bounced@example.com'
|
47
|
+
|
48
|
+
model.backup_email = 'bounced@example.com (bounce)'
|
49
|
+
expect(model.backup_email.to_s).to eq 'bounced@example.com'
|
50
|
+
|
51
|
+
model.backup_email = 'bounced@example.com(bounce)'
|
52
|
+
expect(model.backup_email.to_s).to eq 'bounced@example.com'
|
53
|
+
|
54
|
+
model.backup_email = 'dated@example.com - 18/1/05'
|
55
|
+
expect(model.backup_email.to_s).to eq 'dated@example.com'
|
56
|
+
|
57
|
+
model.backup_email = 'dated@example.com - niu'
|
58
|
+
expect(model.backup_email.to_s).to eq 'dated@example.com'
|
59
|
+
|
60
|
+
model.backup_email = 'don want to give email add'
|
61
|
+
expect(model.backup_email.to_s).to be_nil
|
62
|
+
|
63
|
+
model.backup_email = 'a@host.com'
|
64
|
+
expect(model.backup_email.to_s).to eq 'a@host.com'
|
65
|
+
|
66
|
+
model.backup_email = 'a﹫host.com'
|
67
|
+
expect(model.backup_email.to_s).to eq 'a@host.com'
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'can compare email' do
|
71
|
+
model.backup_email = 'one@host.com'
|
72
|
+
expect(model.backup_email).to eq 'one@host.com'
|
73
|
+
|
74
|
+
other_email = Filemaker::Model::Types::Email.new('one@host.com')
|
75
|
+
expect(model.backup_email).to eq other_email
|
76
|
+
end
|
77
|
+
|
34
78
|
it 'stores the real FileMaker name under fm_name' do
|
35
79
|
expect(model.fm_names).to eq \
|
36
80
|
[
|
81
|
+
'backup_email',
|
37
82
|
'name',
|
38
83
|
'email',
|
39
84
|
'ca id',
|
@@ -42,7 +87,8 @@ describe Filemaker::Model do
|
|
42
87
|
'created_at',
|
43
88
|
'modifieddate',
|
44
89
|
'salary',
|
45
|
-
'passage of time'
|
90
|
+
'passage of time',
|
91
|
+
'document'
|
46
92
|
]
|
47
93
|
end
|
48
94
|
|
@@ -66,6 +112,16 @@ describe Filemaker::Model do
|
|
66
112
|
expect(model.salary).to be_a String
|
67
113
|
end
|
68
114
|
|
115
|
+
it 'accepts == for any type' do
|
116
|
+
model.salary = '=='
|
117
|
+
expect(model.salary).to eq '=='
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'accepts =* for any type' do
|
121
|
+
model.age = '=*'
|
122
|
+
expect(model.age).to eq '=*'
|
123
|
+
end
|
124
|
+
|
69
125
|
it 'check for presence of name and salary' do
|
70
126
|
expect(model.name?).to be true
|
71
127
|
expect(model.salary?).to be false
|
@@ -84,6 +140,15 @@ describe Filemaker::Model do
|
|
84
140
|
expect(model.cache_key).to eq 'my_models/CA123'
|
85
141
|
end
|
86
142
|
|
143
|
+
it 'has attachment' do
|
144
|
+
model.document = URI.parse('http://host/somefile.pdf')
|
145
|
+
expect(model.document.url).to eq 'http://host/somefile.pdf'
|
146
|
+
expect(model.document.filename).to eq 'somefile.pdf'
|
147
|
+
model.document.body
|
148
|
+
expect(model.document.extension).to eq '.pdf'
|
149
|
+
expect(model.document.content_type).to eq 'application/pdf'
|
150
|
+
end
|
151
|
+
|
87
152
|
describe 'process_attributes' do
|
88
153
|
it 'accepts a hash of attributes' do
|
89
154
|
model = MyModel.new(name: 'Bob', email: 'bob@cern.org')
|
@@ -58,7 +58,7 @@ describe Filemaker::Resultset do
|
|
58
58
|
it 'PORTAL_2 has 2 fields: Expired and Renewed' do
|
59
59
|
expect(resultset.portal_fields['PORTAL_2'].size).to eq 2
|
60
60
|
expect(resultset.portal_fields['PORTAL_2'].keys).to eq \
|
61
|
-
%w
|
61
|
+
%w[PORTAL_2::Expired PORTAL_2::Renewed]
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
@@ -22,7 +22,7 @@ describe Filemaker::Store::DatabaseStore do
|
|
22
22
|
|
23
23
|
fake_post_response(server, nil, 'dbnames.xml')
|
24
24
|
|
25
|
-
expected_result = %w
|
25
|
+
expected_result = %w[Billing Candidates Employee Jobs]
|
26
26
|
|
27
27
|
expect(server.databases.all).to eq expected_result
|
28
28
|
expect(server.database.all).to eq expected_result
|
data/spec/support/filemaker.yml
CHANGED
@@ -4,10 +4,10 @@ development:
|
|
4
4
|
account_name: FILEMAKER_ACCOUNT_NAME
|
5
5
|
password: FILEMAKER_PASSWORD
|
6
6
|
ssl: { verify: false }
|
7
|
-
log:
|
7
|
+
log: curl
|
8
8
|
|
9
9
|
read_slave:
|
10
10
|
host: host.com
|
11
11
|
account_name: FILEMAKER_ACCOUNT_NAME
|
12
12
|
password: FILEMAKER_PASSWORD
|
13
|
-
ssl: true
|
13
|
+
ssl: true
|
data/spec/support/models.rb
CHANGED
@@ -14,7 +14,7 @@ class User
|
|
14
14
|
include Filemaker::Model
|
15
15
|
|
16
16
|
string :name
|
17
|
-
|
17
|
+
email :email
|
18
18
|
end
|
19
19
|
|
20
20
|
class Post
|
@@ -64,6 +64,7 @@ class MyModel
|
|
64
64
|
has_many :posts
|
65
65
|
has_many :posters, class_name: User, reference_key: :email
|
66
66
|
|
67
|
+
email :backup_email
|
67
68
|
string :name, :email, default: 'UNTITLED'
|
68
69
|
string :candidate_id, fm_name: 'CA ID', identity: true
|
69
70
|
string :member_id
|
@@ -72,6 +73,7 @@ class MyModel
|
|
72
73
|
datetime :updated_at, fm_name: 'ModifiedDate'
|
73
74
|
money :salary
|
74
75
|
integer :age, fm_name: 'passage of time'
|
76
|
+
object :document
|
75
77
|
end
|
76
78
|
|
77
79
|
class Project
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filemaker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mech
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: mimemagic
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: mime-types
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: bundler
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,6 +194,7 @@ files:
|
|
166
194
|
- README.md
|
167
195
|
- Rakefile
|
168
196
|
- diagram.png
|
197
|
+
- diagram.svg
|
169
198
|
- filemaker.gemspec
|
170
199
|
- lib/filemaker.rb
|
171
200
|
- lib/filemaker/api.rb
|
@@ -186,6 +215,7 @@ files:
|
|
186
215
|
- lib/filemaker/layout.rb
|
187
216
|
- lib/filemaker/metadata/field.rb
|
188
217
|
- lib/filemaker/model.rb
|
218
|
+
- lib/filemaker/model/batches.rb
|
189
219
|
- lib/filemaker/model/builder.rb
|
190
220
|
- lib/filemaker/model/components.rb
|
191
221
|
- lib/filemaker/model/criteria.rb
|
@@ -201,6 +231,8 @@ files:
|
|
201
231
|
- lib/filemaker/model/relations/has_portal.rb
|
202
232
|
- lib/filemaker/model/relations/proxy.rb
|
203
233
|
- lib/filemaker/model/selectable.rb
|
234
|
+
- lib/filemaker/model/types/attachment.rb
|
235
|
+
- lib/filemaker/model/types/email.rb
|
204
236
|
- lib/filemaker/railtie.rb
|
205
237
|
- lib/filemaker/record.rb
|
206
238
|
- lib/filemaker/resultset.rb
|
@@ -257,7 +289,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
257
289
|
version: '0'
|
258
290
|
requirements: []
|
259
291
|
rubyforge_project:
|
260
|
-
rubygems_version: 2.6.
|
292
|
+
rubygems_version: 2.6.13
|
261
293
|
signing_key:
|
262
294
|
specification_version: 4
|
263
295
|
summary: A Ruby wrapper to FileMaker XML API.
|