sbf-dm-mysql-adapter 1.3.0.beta

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e3838d7600e133be659a49e5cfc110b44dbd416c687662c3aa62e205f8ddf475
4
+ data.tar.gz: 1c4ba569ee2b598b1888b13de21914e47eb7cef6f3e14e2eda4f538a45ff647b
5
+ SHA512:
6
+ metadata.gz: 480f1d2bcb1e02fdd800e2df17e24d2304cd78d998d8c708dbb49f55ff536f55ce8025dc0235b1d5855bdd8f0adea2a4e6b2e06fad70ca6a8a8652b6c923e464
7
+ data.tar.gz: 26c80304a2b5bec6af296359faf4d1a20fda54b4d57917eaf88dcfc9331bc91bc62664077882bf81cab1b440d3852c6ad1c9525d6897df11f22f5a0d19c21c06
data/.gitignore ADDED
@@ -0,0 +1,38 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## Rubinius
17
+ *.rbc
18
+
19
+ ## RubyMine
20
+ .idea
21
+
22
+ ## PROJECT::GENERAL
23
+ *.gem
24
+ coverage
25
+ rdoc
26
+ pkg
27
+ tmp
28
+ doc
29
+ log
30
+ .yardoc
31
+ measurements
32
+
33
+ ## BUNDLER
34
+ .bundle
35
+ Gemfile.*
36
+
37
+ ## PROJECT::SPECIFIC
38
+ spec/db/
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --colour
2
+ --order rand
3
+ --backtrace
data/.rubocop.yml ADDED
@@ -0,0 +1,468 @@
1
+ #require: rubocop-performance
2
+
3
+ AllCops:
4
+ TargetRubyVersion: 2.7
5
+
6
+ Gemspec/DeprecatedAttributeAssignment:
7
+ Enabled: true
8
+
9
+ Gemspec/DevelopmentDependencies: # new in 1.44
10
+ Enabled: true
11
+
12
+ Gemspec/RequireMFA:
13
+ Enabled: false
14
+
15
+ Layout/LineContinuationLeadingSpace: # new in 1.31
16
+ Enabled: true
17
+
18
+ Layout/LineContinuationSpacing: # new in 1.31
19
+ Enabled: true
20
+
21
+ Layout/LineEndStringConcatenationIndentation:
22
+ Enabled: true
23
+
24
+ Layout/LineLength:
25
+ Max: 150
26
+
27
+ Layout/MultilineOperationIndentation:
28
+ EnforcedStyle: aligned
29
+
30
+ Layout/SpaceAfterSemicolon:
31
+ Enabled: true
32
+
33
+ Layout/SpaceBeforeBrackets: # new in 1.7
34
+ Enabled: true
35
+
36
+ Layout/SpaceInsideHashLiteralBraces:
37
+ EnforcedStyle: no_space
38
+
39
+ Lint/AmbiguousAssignment: # new in 1.7
40
+ Enabled: true
41
+
42
+ Lint/AmbiguousBlockAssociation:
43
+ Enabled: true
44
+ Exclude:
45
+ - 'spec/**/*'
46
+
47
+ Lint/AmbiguousOperatorPrecedence: # new in 1.21
48
+ Enabled: true
49
+
50
+ Lint/AmbiguousRange: # new in 1.19
51
+ Enabled: true
52
+
53
+ Lint/ConstantDefinitionInBlock:
54
+ Enabled: true
55
+
56
+ Lint/ConstantOverwrittenInRescue: # new in 1.31
57
+ Enabled: true
58
+
59
+ Lint/DeprecatedConstants: # new in 1.8
60
+ Enabled: true
61
+
62
+ Lint/DuplicateBranch: # new in 1.3
63
+ Enabled: true
64
+
65
+ Lint/DuplicateMagicComment: # new in 1.37
66
+ Enabled: true
67
+
68
+ Lint/DuplicateMatchPattern: # new in 1.50
69
+ Enabled: true
70
+
71
+ Lint/DuplicateMethods:
72
+ Enabled: false
73
+
74
+ Lint/DuplicateRegexpCharacterClassElement: # new in 1.1
75
+ Enabled: true
76
+
77
+ Lint/EmptyBlock:
78
+ Enabled: true
79
+
80
+ Lint/EmptyClass: # new in 1.3
81
+ Enabled: true
82
+
83
+ Lint/EmptyFile:
84
+ Enabled: true
85
+
86
+ Lint/EmptyInPattern: # new in 1.16
87
+ Enabled: true
88
+
89
+ Lint/FloatComparison:
90
+ Enabled: true
91
+
92
+ Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
93
+ Enabled: true
94
+
95
+ Lint/ItWithoutArgumentsInBlock: # new in 1.59
96
+ Enabled: true
97
+
98
+ Lint/LambdaWithoutLiteralBlock: # new in 1.8
99
+ Enabled: true
100
+
101
+ Lint/LiteralAssignmentInCondition: # new in 1.58
102
+ Enabled: true
103
+
104
+ Lint/MissingSuper:
105
+ Enabled: true
106
+
107
+ Lint/MixedCaseRange: # new in 1.53
108
+ Enabled: true
109
+
110
+ Lint/NoReturnInBeginEndBlocks: # new in 1.2
111
+ Enabled: true
112
+
113
+ Lint/NonAtomicFileOperation: # new in 1.31
114
+ Enabled: true
115
+
116
+ Lint/NumberedParameterAssignment: # new in 1.9
117
+ Enabled: true
118
+
119
+ Lint/OrAssignmentToConstant: # new in 1.9
120
+ Enabled: true
121
+
122
+ Lint/RaiseException:
123
+ Enabled: false
124
+
125
+ Lint/RedundantDirGlobSort: # new in 1.8
126
+ Enabled: true
127
+
128
+ Lint/RedundantRegexpQuantifiers: # new in 1.53
129
+ Enabled: true
130
+
131
+ Lint/RefinementImportMethods: # new in 1.27
132
+ Enabled: true
133
+
134
+ Lint/RequireRangeParentheses: # new in 1.32
135
+ Enabled: true
136
+
137
+ Lint/RequireRelativeSelfPath: # new in 1.22
138
+ Enabled: true
139
+
140
+ Lint/SafeNavigationChain:
141
+ Enabled: true
142
+ AllowedMethods:
143
+ - present?
144
+ - blank?
145
+ - presence
146
+ - try
147
+ - try!
148
+ - empty?
149
+ - nil?
150
+ - blank?
151
+
152
+ Lint/SymbolConversion:
153
+ Enabled: false
154
+
155
+ Lint/ToEnumArguments: # new in 1.1
156
+ Enabled: true
157
+
158
+ Lint/TripleQuotes: # new in 1.9
159
+ Enabled: true
160
+
161
+ Lint/UnexpectedBlockArity: # new in 1.5
162
+ Enabled: true
163
+
164
+ Lint/UnmodifiedReduceAccumulator: # new in 1.1
165
+ Enabled: true
166
+
167
+ Lint/UnreachableLoop:
168
+ Enabled: true
169
+
170
+ Lint/UselessRescue: # new in 1.43
171
+ Enabled: true
172
+
173
+ Lint/UselessRuby2Keywords: # new in 1.23
174
+ Enabled: true
175
+
176
+ Metrics/AbcSize:
177
+ Enabled: false
178
+
179
+ Metrics/BlockLength:
180
+ Enabled: false
181
+
182
+ Metrics/BlockNesting:
183
+ Max: 4
184
+
185
+ Metrics/ClassLength:
186
+ Enabled: false
187
+
188
+ Metrics/CollectionLiteralLength: # new in 1.47
189
+ Enabled: true
190
+
191
+ Metrics/CyclomaticComplexity:
192
+ Max: 15
193
+
194
+ Metrics/MethodLength:
195
+ Max: 30
196
+
197
+ Metrics/ModuleLength:
198
+ Enabled: false
199
+
200
+ Metrics/ParameterLists:
201
+ Max: 5
202
+ CountKeywordArgs: false
203
+
204
+ Metrics/PerceivedComplexity:
205
+ Max: 20
206
+
207
+ Naming/BlockForwarding: # new in 1.24
208
+ Enabled: true
209
+
210
+ Naming/HeredocDelimiterNaming:
211
+ Enabled: false
212
+
213
+ Naming/MethodParameterName:
214
+ AllowedNames: [a, _, id]
215
+
216
+ Naming/VariableNumber:
217
+ Enabled: true
218
+ # EnforcedStyle: snake_case
219
+
220
+ #Performance/CollectionLiteralInLoop:
221
+ # Enabled: true
222
+ #
223
+ #Performance/RangeInclude:
224
+ # Enabled: false
225
+ #
226
+ #Performance/RedundantEqualityComparisonBlock:
227
+ # Enabled: true
228
+
229
+ Security/CompoundHash: # new in 1.28
230
+ Enabled: true
231
+
232
+ Security/IoMethods: # new in 1.22
233
+ Enabled: true
234
+
235
+ Style/AccessModifierDeclarations:
236
+ EnforcedStyle: inline
237
+
238
+ Style/Alias:
239
+ Enabled: false
240
+ EnforcedStyle: prefer_alias_method
241
+
242
+ Style/ArgumentsForwarding: # new in 1.1
243
+ Enabled: true
244
+
245
+ Style/ArrayIntersect: # new in 1.40
246
+ Enabled: true
247
+
248
+ Style/CaseLikeIf:
249
+ Enabled: true
250
+
251
+ Style/CollectionCompact: # new in 1.2
252
+ Enabled: true
253
+
254
+ Style/CombinableLoops:
255
+ Enabled: true
256
+
257
+ Style/ComparableClamp: # new in 1.44
258
+ Enabled: true
259
+
260
+ Style/ConcatArrayLiterals: # new in 1.41
261
+ Enabled: true
262
+
263
+ Style/DataInheritance: # new in 1.49
264
+ Enabled: true
265
+
266
+ Style/DirEmpty: # new in 1.48
267
+ Enabled: true
268
+
269
+ Style/Documentation:
270
+ Enabled: false
271
+
272
+ Style/DocumentDynamicEvalDefinition: # new in 1.1
273
+ Enabled: true
274
+
275
+ Style/EmptyHeredoc: # new in 1.32
276
+ Enabled: true
277
+
278
+ Style/EndlessMethod: # new in 1.8
279
+ Enabled: true
280
+
281
+ Style/EnvHome: # new in 1.29
282
+ Enabled: true
283
+
284
+ Style/ExactRegexpMatch: # new in 1.51
285
+ Enabled: true
286
+
287
+ Style/FetchEnvVar:
288
+ Enabled: true
289
+
290
+ Style/FileEmpty: # new in 1.48
291
+ Enabled: true
292
+
293
+ Style/FileRead: # new in 1.24
294
+ Enabled: true
295
+
296
+ Style/FileWrite: # new in 1.24
297
+ Enabled: true
298
+
299
+ Style/FormatStringToken:
300
+ Enabled: false
301
+
302
+ Style/FrozenStringLiteralComment:
303
+ Enabled: false
304
+
305
+ Style/HashConversion: # new in 1.10
306
+ Enabled: true
307
+
308
+ Style/HashExcept: # new in 1.7
309
+ Enabled: true
310
+
311
+ Style/HashLikeCase:
312
+ Enabled: true
313
+
314
+ Style/HashSyntax:
315
+ Enabled: true
316
+ EnforcedShorthandSyntax: consistent
317
+
318
+ Style/IfWithBooleanLiteralBranches: # new in 1.9
319
+ Enabled: true
320
+
321
+ Style/InPatternThen: # new in 1.16
322
+ Enabled: true
323
+
324
+ Style/MagicCommentFormat: # new in 1.35
325
+ Enabled: true
326
+
327
+ Style/MapCompactWithConditionalBlock: # new in 1.30
328
+ Enabled: true
329
+
330
+ Style/MapToHash: # new in 1.24
331
+ Enabled: true
332
+
333
+ Style/MapToSet: # new in 1.42
334
+ Enabled: true
335
+
336
+ Style/MinMaxComparison: # new in 1.42
337
+ Enabled: true
338
+
339
+ Style/MixinGrouping:
340
+ Enabled: true
341
+ EnforcedStyle: grouped
342
+
343
+ Style/MultilineInPatternThen: # new in 1.16
344
+ Enabled: true
345
+
346
+ Style/NegatedIfElseCondition: # new in 1.2
347
+ Enabled: true
348
+
349
+ Style/NestedFileDirname: # new in 1.26
350
+ Enabled: true
351
+
352
+ Style/NilLambda: # new in 1.3
353
+ Enabled: true
354
+
355
+ Style/NumberedParameters: # new in 1.22
356
+ Enabled: true
357
+
358
+ Style/NumberedParametersLimit: # new in 1.22
359
+ Enabled: true
360
+
361
+ Style/NumericPredicate:
362
+ Enabled: false
363
+
364
+ Style/ObjectThen: # new in 1.28
365
+ Enabled: true
366
+
367
+ Style/OpenStructUse:
368
+ Enabled: false
369
+
370
+ Style/OperatorMethodCall: # new in 1.37
371
+ Enabled: true
372
+
373
+ Style/OptionalBooleanParameter:
374
+ Enabled: true
375
+
376
+ Style/PercentLiteralDelimiters:
377
+ PreferredDelimiters:
378
+ default: ()
379
+ '%i': '()'
380
+ '%I': '()'
381
+ '%r': '{}'
382
+ '%w': '()'
383
+ '%W': '()'
384
+
385
+ Style/QuotedSymbols: # new in 1.16
386
+ Enabled: true
387
+
388
+ Style/RedundantArgument: # new in 1.4
389
+ Enabled: true
390
+
391
+ Style/RedundantArrayConstructor: # new in 1.52
392
+ Enabled: true
393
+
394
+ Style/RedundantConstantBase: # new in 1.40
395
+ Enabled: true
396
+
397
+ Style/RedundantCurrentDirectoryInPath: # new in 1.53
398
+ Enabled: true
399
+
400
+ Style/RedundantDoubleSplatHashBraces: # new in 1.41
401
+ Enabled: true
402
+
403
+ Style/RedundantEach: # new in 1.38
404
+ Enabled: true
405
+
406
+ Style/RedundantFilterChain: # new in 1.52
407
+ Enabled: true
408
+
409
+ Style/RedundantHeredocDelimiterQuotes: # new in 1.45
410
+ Enabled: true
411
+
412
+ Style/RedundantInitialize: # new in 1.27
413
+ Enabled: true
414
+
415
+ Style/RedundantLineContinuation: # new in 1.49
416
+ Enabled: true
417
+
418
+ Style/RedundantParentheses:
419
+ Enabled: true
420
+
421
+ Style/RedundantRegexpArgument: # new in 1.53
422
+ Enabled: true
423
+
424
+ Style/RedundantRegexpConstructor: # new in 1.52
425
+ Enabled: true
426
+
427
+ Style/RedundantSelfAssignmentBranch: # new in 1.19
428
+ Enabled: true
429
+
430
+ Style/RedundantStringEscape: # new in 1.37
431
+ Enabled: true
432
+
433
+ Style/RegexpLiteral:
434
+ Enabled: true
435
+ EnforcedStyle: mixed
436
+
437
+ Style/RescueStandardError:
438
+ EnforcedStyle: implicit
439
+
440
+ Style/ReturnNilInPredicateMethodDefinition: # new in 1.53
441
+ Enabled: true
442
+
443
+ Style/SelectByRegexp: # new in 1.22
444
+ Enabled: true
445
+
446
+ Style/SingleArgumentDig:
447
+ Enabled: true
448
+
449
+ Style/SignalException:
450
+ EnforcedStyle: only_raise
451
+
452
+ Style/SingleLineDoEndBlock: # new in 1.57
453
+ Enabled: true
454
+
455
+ Style/StringChars: # new in 1.12
456
+ Enabled: true
457
+
458
+ Style/SuperWithArgsParentheses: # new in 1.58
459
+ Enabled: true
460
+
461
+ Style/SwapValues: # new in 1.1
462
+ Enabled: true
463
+
464
+ Style/TernaryParentheses:
465
+ EnforcedStyle: require_parentheses_when_complex
466
+
467
+ Style/YAMLFileRead: # new in 1.53
468
+ Enabled: true
data/Gemfile ADDED
@@ -0,0 +1,58 @@
1
+ require 'pathname'
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec
6
+
7
+ SOURCE = ENV.fetch('SOURCE', :git).to_sym
8
+ REPO_POSTFIX = (SOURCE == :path) ? '' : '.git'
9
+ DATAMAPPER = (SOURCE == :path) ? Pathname(__FILE__).dirname.parent : 'https://github.com/firespring'
10
+ DM_VERSION = '~> 1.3.0.beta'.freeze
11
+ DO_VERSION = '~> 0.10.17'.freeze
12
+ CURRENT_BRANCH = ENV.fetch('GIT_BRANCH', 'master')
13
+
14
+ options = {}
15
+ options[SOURCE] = "#{DATAMAPPER}/dm-do-adapter#{REPO_POSTFIX}"
16
+ options[:branch] = CURRENT_BRANCH unless SOURCE == :path
17
+ gem 'sbf-dm-do-adapter', DM_VERSION, options.dup
18
+
19
+ group :development do
20
+ options[SOURCE] = "#{DATAMAPPER}/dm-migrations#{REPO_POSTFIX}"
21
+ gem 'sbf-dm-migrations', DM_VERSION, options.dup
22
+ gem 'pry'
23
+ gem 'pry-byebug'
24
+ gem 'rake', '~> 13.1'
25
+ gem 'rake-compiler', '~> 1.2'
26
+ gem 'simplecov'
27
+ end
28
+
29
+ platforms :mri_18 do
30
+ group :quality do
31
+ gem 'yard'
32
+ gem 'yardstick'
33
+ end
34
+ end
35
+
36
+ group :datamapper do
37
+ options[SOURCE] = "#{DATAMAPPER}/dm-core#{REPO_POSTFIX}"
38
+
39
+ gem 'sbf-dm-core', DM_VERSION, options.dup
40
+
41
+ do_options = {}
42
+ # DO_GIT is for the DataObjects repo which is not managed with thor in the same way as the rest of the gems. It is possible to have SOURCE configured
43
+ # as path while datamapper-do should use git. Configure these options separately.
44
+ if ENV['DO_GIT'] == 'true'
45
+ do_options = options.dup
46
+ do_options[SOURCE] = "#{DATAMAPPER}/datamapper-do#{REPO_POSTFIX}"
47
+ end
48
+
49
+ gem 'sbf-data_objects', DO_VERSION, do_options.dup
50
+
51
+ plugins = ENV['PLUGINS'] || ENV.fetch('PLUGIN', nil)
52
+ plugins = plugins.to_s.tr(',', ' ').split.push('dm-migrations').uniq
53
+
54
+ plugins.each do |plugin|
55
+ options[SOURCE] = "#{DATAMAPPER}/#{plugin}#{REPO_POSTFIX}"
56
+ gem "sbf-#{plugin}", DM_VERSION, options.dup
57
+ end
58
+ end
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Dan Kubb
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,3 @@
1
+ = dm-mysql-adapter
2
+
3
+ A MySQL Adapter for DataMapper
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ FileList['tasks/**/*.rake'].each { |task| import task }
@@ -0,0 +1,21 @@
1
+ require File.expand_path('lib/dm-mysql-adapter/version', __dir__)
2
+
3
+ Gem::Specification.new do |gem|
4
+ gem.name = 'sbf-dm-mysql-adapter'
5
+ gem.summary = 'MySQL Adapter for DataMapper'
6
+ gem.description = 'A MySQL Adapter for DataMapper'
7
+ gem.email = 'dan.kubb@gmail.com'
8
+ gem.homepage = 'https://datamapper.org'
9
+ gem.authors = ['Dan Kubb']
10
+ gem.license = 'Nonstandard'
11
+
12
+ gem.files = `git ls-files`.split("\n")
13
+ gem.extra_rdoc_files = %w(LICENSE)
14
+
15
+ gem.require_paths = %w(lib)
16
+ gem.version = DataMapper::MysqlAdapter::VERSION
17
+ gem.required_ruby_version = '>= 2.7.8'
18
+
19
+ gem.add_runtime_dependency('sbf-dm-do-adapter', ['~> 1.3.0.beta'])
20
+ gem.add_runtime_dependency('sbf-do_mysql', ['~> 0.10.17'])
21
+ end
@@ -0,0 +1,42 @@
1
+ require 'do_mysql'
2
+ require 'dm-do-adapter'
3
+
4
+ module DataMapper
5
+ module Adapters
6
+ class MysqlAdapter < DataObjectsAdapter
7
+ module SQL # :nodoc:
8
+
9
+ IDENTIFIER_MAX_LENGTH = 64
10
+
11
+ private
12
+
13
+ # @api private
14
+ def supports_default_values? # :nodoc:
15
+ false
16
+ end
17
+
18
+ # @api private
19
+ def supports_subquery?(_query, _source_key, _target_key, _qualify)
20
+ # TODO: re-enable once query does not include target_model for deletes and updates
21
+ # query.limit.nil?
22
+
23
+ false
24
+ end
25
+
26
+ # @api private
27
+ def regexp_operator(_operand)
28
+ 'REGEXP'
29
+ end
30
+
31
+ # @api private
32
+ def quote_name(name)
33
+ "`#{name[0, self.class::IDENTIFIER_MAX_LENGTH].gsub('`', '``')}`"
34
+ end
35
+ end
36
+
37
+ include SQL
38
+ end
39
+
40
+ const_added(:MysqlAdapter)
41
+ end
42
+ end
@@ -0,0 +1,13 @@
1
+ require 'dm-mysql-adapter'
2
+ require 'dm-core/spec/setup'
3
+
4
+ module DataMapper
5
+ module Spec
6
+ module Adapters
7
+ class MysqlAdapter < Adapter
8
+ end
9
+
10
+ use MysqlAdapter
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ module DataMapper
2
+ module MysqlAdapter
3
+ VERSION = '1.3.0.beta'
4
+ end
5
+ end
@@ -0,0 +1 @@
1
+ require 'dm-mysql-adapter/adapter'
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ require 'dm-core/spec/shared/adapter_spec'
4
+ require 'dm-do-adapter/spec/shared_spec'
5
+
6
+ require 'dm-migrations'
7
+ require 'dm-mysql-adapter/spec/setup'
8
+
9
+ ENV['ADAPTER'] = 'mysql'
10
+ ENV['ADAPTER_SUPPORTS'] = 'all'
11
+
12
+ describe 'DataMapper::Adapters::MysqlAdapter' do
13
+
14
+ let(:adapter) { DataMapper::Spec.adapter }
15
+ let(:repository) { DataMapper.repository(adapter.name) }
16
+
17
+ it_behaves_like 'An Adapter'
18
+ it_behaves_like 'A DataObjects Adapter'
19
+ end
data/spec/rcov.opts ADDED
@@ -0,0 +1,5 @@
1
+ --exclude "spec,^/"
2
+ --sort coverage
3
+ --callsites
4
+ --xrefs
5
+ --text-summary
@@ -0,0 +1,6 @@
1
+ require 'rspec'
2
+ require 'dm-core/spec/lib/pending_helpers'
3
+
4
+ RSpec.configure do |config|
5
+ config.include(DataMapper::Spec::PendingHelpers)
6
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,21 @@
1
+ begin
2
+ require 'rspec/core/rake_task'
3
+
4
+ task(:default).clear
5
+ task(:spec).clear
6
+
7
+ RSpec::Core::RakeTask.new(:spec) do |spec|
8
+ spec.pattern = 'spec/**/*_spec.rb'
9
+
10
+ require 'simplecov'
11
+ SimpleCov.start do
12
+ minimum_coverage 100
13
+ end
14
+ end
15
+ rescue LoadError
16
+ task :spec do
17
+ abort 'rspec is not available. In order to run spec, you must: gem install rspec'
18
+ end
19
+ end
20
+
21
+ task default: :spec
data/tasks/yard.rake ADDED
@@ -0,0 +1,9 @@
1
+ begin
2
+ require 'yard'
3
+
4
+ YARD::Rake::YardocTask.new
5
+ rescue LoadError
6
+ task :yard do
7
+ abort 'YARD is not available. In order to run yard, you must: gem install yard'
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ begin
2
+ require 'pathname'
3
+ require 'yardstick/rake/measurement'
4
+ require 'yardstick/rake/verify'
5
+
6
+ # yardstick_measure task
7
+ Yardstick::Rake::Measurement.new
8
+
9
+ # verify_measurements task
10
+ Yardstick::Rake::Verify.new do |verify|
11
+ verify.threshold = 100
12
+ end
13
+ rescue LoadError
14
+ %w[ yardstick_measure verify_measurements ].each do |name|
15
+ task name.to_s do
16
+ abort "Yardstick is not available. In order to run #{name}, you must: gem install yardstick"
17
+ end
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sbf-dm-mysql-adapter
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.0.beta
5
+ platform: ruby
6
+ authors:
7
+ - Dan Kubb
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-10-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sbf-dm-do-adapter
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.3.0.beta
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.3.0.beta
27
+ - !ruby/object:Gem::Dependency
28
+ name: sbf-do_mysql
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.10.17
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.10.17
41
+ description: A MySQL Adapter for DataMapper
42
+ email: dan.kubb@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files:
46
+ - LICENSE
47
+ files:
48
+ - ".gitignore"
49
+ - ".rspec"
50
+ - ".rubocop.yml"
51
+ - Gemfile
52
+ - LICENSE
53
+ - README.rdoc
54
+ - Rakefile
55
+ - dm-mysql-adapter.gemspec
56
+ - lib/dm-mysql-adapter.rb
57
+ - lib/dm-mysql-adapter/adapter.rb
58
+ - lib/dm-mysql-adapter/spec/setup.rb
59
+ - lib/dm-mysql-adapter/version.rb
60
+ - spec/adapter_spec.rb
61
+ - spec/rcov.opts
62
+ - spec/spec_helper.rb
63
+ - tasks/spec.rake
64
+ - tasks/yard.rake
65
+ - tasks/yardstick.rake
66
+ homepage: https://datamapper.org
67
+ licenses:
68
+ - Nonstandard
69
+ metadata: {}
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 2.7.8
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">"
82
+ - !ruby/object:Gem::Version
83
+ version: 1.3.1
84
+ requirements: []
85
+ rubygems_version: 3.4.10
86
+ signing_key:
87
+ specification_version: 4
88
+ summary: MySQL Adapter for DataMapper
89
+ test_files: []