sbf-dm-types 1.3.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +45 -0
  3. data/.rspec +1 -0
  4. data/.rubocop.yml +468 -0
  5. data/.travis.yml +52 -0
  6. data/Gemfile +67 -0
  7. data/LICENSE +20 -0
  8. data/README.rdoc +3 -0
  9. data/Rakefile +4 -0
  10. data/dm-types.gemspec +26 -0
  11. data/lib/dm-types/api_key.rb +30 -0
  12. data/lib/dm-types/bcrypt_hash.rb +33 -0
  13. data/lib/dm-types/comma_separated_list.rb +28 -0
  14. data/lib/dm-types/csv.rb +34 -0
  15. data/lib/dm-types/enum.rb +55 -0
  16. data/lib/dm-types/epoch_time.rb +35 -0
  17. data/lib/dm-types/file_path.rb +24 -0
  18. data/lib/dm-types/flag.rb +64 -0
  19. data/lib/dm-types/ip_address.rb +34 -0
  20. data/lib/dm-types/json.rb +48 -0
  21. data/lib/dm-types/paranoid/base.rb +56 -0
  22. data/lib/dm-types/paranoid_boolean.rb +23 -0
  23. data/lib/dm-types/paranoid_datetime.rb +22 -0
  24. data/lib/dm-types/regexp.rb +21 -0
  25. data/lib/dm-types/slug.rb +28 -0
  26. data/lib/dm-types/support/dirty_minder.rb +168 -0
  27. data/lib/dm-types/support/flags.rb +41 -0
  28. data/lib/dm-types/uri.rb +27 -0
  29. data/lib/dm-types/uuid.rb +64 -0
  30. data/lib/dm-types/version.rb +5 -0
  31. data/lib/dm-types/yaml.rb +39 -0
  32. data/lib/dm-types.rb +23 -0
  33. data/spec/fixtures/api_user.rb +14 -0
  34. data/spec/fixtures/article.rb +35 -0
  35. data/spec/fixtures/bookmark.rb +23 -0
  36. data/spec/fixtures/invention.rb +7 -0
  37. data/spec/fixtures/network_node.rb +36 -0
  38. data/spec/fixtures/person.rb +25 -0
  39. data/spec/fixtures/software_package.rb +33 -0
  40. data/spec/fixtures/ticket.rb +21 -0
  41. data/spec/fixtures/tshirt.rb +24 -0
  42. data/spec/integration/api_key_spec.rb +27 -0
  43. data/spec/integration/bcrypt_hash_spec.rb +47 -0
  44. data/spec/integration/comma_separated_list_spec.rb +87 -0
  45. data/spec/integration/dirty_minder_spec.rb +197 -0
  46. data/spec/integration/enum_spec.rb +78 -0
  47. data/spec/integration/epoch_time_spec.rb +61 -0
  48. data/spec/integration/file_path_spec.rb +160 -0
  49. data/spec/integration/flag_spec.rb +72 -0
  50. data/spec/integration/ip_address_spec.rb +153 -0
  51. data/spec/integration/json_spec.rb +72 -0
  52. data/spec/integration/slug_spec.rb +67 -0
  53. data/spec/integration/uri_spec.rb +117 -0
  54. data/spec/integration/uuid_spec.rb +102 -0
  55. data/spec/integration/yaml_spec.rb +87 -0
  56. data/spec/shared/flags_shared_spec.rb +37 -0
  57. data/spec/shared/identity_function_group.rb +5 -0
  58. data/spec/spec_helper.rb +30 -0
  59. data/spec/unit/bcrypt_hash_spec.rb +155 -0
  60. data/spec/unit/csv_spec.rb +142 -0
  61. data/spec/unit/dirty_minder_spec.rb +65 -0
  62. data/spec/unit/enum_spec.rb +126 -0
  63. data/spec/unit/epoch_time_spec.rb +74 -0
  64. data/spec/unit/file_path_spec.rb +75 -0
  65. data/spec/unit/flag_spec.rb +114 -0
  66. data/spec/unit/ip_address_spec.rb +109 -0
  67. data/spec/unit/json_spec.rb +126 -0
  68. data/spec/unit/paranoid_boolean_spec.rb +149 -0
  69. data/spec/unit/paranoid_datetime_spec.rb +153 -0
  70. data/spec/unit/regexp_spec.rb +63 -0
  71. data/spec/unit/uri_spec.rb +83 -0
  72. data/spec/unit/yaml_spec.rb +111 -0
  73. data/tasks/spec.rake +21 -0
  74. data/tasks/yard.rake +9 -0
  75. data/tasks/yardstick.rake +19 -0
  76. metadata +229 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 39856ec4e307f76341f39f01310b292c3e8920087c369fd3de5f92e5cb91ae87
4
+ data.tar.gz: 175cf7728d4d0b7388a61e1aaf76783cb2969bb15ed0432b9188227caa7ac21c
5
+ SHA512:
6
+ metadata.gz: 6f188bcd900a670494699b1eb52b5384c206290c75f389bfe3ea483861792ac739a5ed6213c8c1220b0104f3b8f50cef6d03d64efe8b44d0702af7923ce0323b
7
+ data.tar.gz: ba4b72d6e4e2abe29f028dde69585e7242c40fac2d9a7fdaa8da6267ad0b4684b715e7e77f574703b458041de7d7f6abf629cd5d81e67aedca46041650a7ffbd
data/.gitignore ADDED
@@ -0,0 +1,45 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+ ._*
4
+
5
+ ## TEXTMATE
6
+ *.tmproj
7
+ tmtags
8
+
9
+ ## EMACS
10
+ *~
11
+ \#*
12
+ .\#*
13
+
14
+ ## VIM
15
+ *.swp
16
+
17
+ ## Rubinius
18
+ *.rbc
19
+ .rbx
20
+
21
+ ## RubyMine
22
+ .idea
23
+
24
+ ## PROJECT::GENERAL
25
+ *.gem
26
+ coverage
27
+ profiling
28
+ turbulence
29
+ rdoc
30
+ pkg
31
+ tmp
32
+ doc
33
+ log
34
+ .yardoc
35
+ measurements
36
+
37
+ ## BUNDLER
38
+ .bundle
39
+ Gemfile.*
40
+
41
+ ## PROJECT::SPECIFIC
42
+ spec/db/
43
+
44
+ ## NETBEANS
45
+ /nbproject
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --order rand
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/.travis.yml ADDED
@@ -0,0 +1,52 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.0
5
+ - 2.1
6
+ - 2.2
7
+ - ruby-head
8
+ - jruby-19mode
9
+ - jruby-head
10
+ - rbx-19mode
11
+
12
+ env:
13
+ global:
14
+ - JRUBY_OPTS="$JRUBY_OPTS -J-Xmx1g --debug"
15
+ matrix:
16
+ - "ADAPTER=in_memory"
17
+ - "ADAPTER=yaml"
18
+ - "ADAPTER=sqlite"
19
+ - "ADAPTER=mysql DM_DB_USER=root DM_DB_PASSWORD=''"
20
+ - "ADAPTER=postgres DM_DB_USER=postgres DM_DB_PASSWORD=''"
21
+
22
+ cache: bundler
23
+
24
+ sudo: true
25
+
26
+ services:
27
+ - mysql
28
+ - postgresql
29
+
30
+ before_install:
31
+ - gem install bundler
32
+ - travis_retry sudo apt-get update -qq
33
+ - sudo apt-get install -qq postgresql-server-dev-all
34
+
35
+ bundler_args: --without yard guard metrics benchmarks --retry 3
36
+
37
+ before_script:
38
+ - mysql -e "create database datamapper_alternate_tests;"
39
+ - mysql -e "create database datamapper_default_tests;"
40
+ - psql -c "create database datamapper_default_tests;" -U postgres
41
+ - psql -c "create database datamapper_alternate_tests;" -U postgres
42
+
43
+ script: "bundle exec rake spec"
44
+
45
+ matrix:
46
+ allow_failures:
47
+ - rvm: ruby-head
48
+ - rvm: jruby-19mode
49
+ - rvm: jruby-head
50
+
51
+ notifications:
52
+ irc: "irc.freenode.org#datamapper"
data/Gemfile ADDED
@@ -0,0 +1,67 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ SOURCE = ENV.fetch('SOURCE', :git).to_sym
6
+ REPO_POSTFIX = (SOURCE == :path) ? '' : '.git'
7
+ DATAMAPPER = (SOURCE == :path) ? Pathname(__FILE__).dirname.parent : 'https://github.com/firespring'
8
+ DM_VERSION = '~> 1.3.0.beta'.freeze
9
+ DO_VERSION = '~> 0.10.17'.freeze
10
+ DM_DO_ADAPTERS = %w(sqlite postgres mysql oracle sqlserver).freeze
11
+ CURRENT_BRANCH = ENV.fetch('GIT_BRANCH', 'master')
12
+
13
+ options = {}
14
+ options[SOURCE] = "#{DATAMAPPER}/dm-core#{REPO_POSTFIX}"
15
+ options[:branch] = CURRENT_BRANCH unless SOURCE == :path
16
+
17
+ gem 'sbf-dm-core', DM_VERSION, options.dup
18
+
19
+ group :development do
20
+ validation_options = {}
21
+ validation_options[SOURCE] = "#{DATAMAPPER}/dm-validations#{REPO_POSTFIX}"
22
+ validation_options[:branch] = CURRENT_BRANCH unless SOURCE == :path
23
+
24
+ gem 'sbf-dm-validations', DM_VERSION, validation_options.dup
25
+ gem 'pry'
26
+ gem 'pry-byebug'
27
+ gem 'rake'
28
+ gem 'rspec'
29
+ gem 'simplecov'
30
+ end
31
+
32
+ group :datamapper do
33
+ adapters = ENV['ADAPTER'] || ENV.fetch('ADAPTERS', nil)
34
+ adapters = adapters.to_s.tr(',', ' ').split.uniq - %w(in_memory)
35
+
36
+ if (do_adapters = DM_DO_ADAPTERS & adapters).any?
37
+ do_options = {}
38
+ if ENV['DO_GIT'] == 'true'
39
+ do_options = options.dup
40
+ do_options[SOURCE] = "#{DATAMAPPER}/datamapper-do#{REPO_POSTFIX}"
41
+ end
42
+
43
+ gem 'sbf-data_objects', DO_VERSION, do_options.dup
44
+
45
+ do_adapters.each do |adapter|
46
+ adapter = 'sqlite3' if adapter == 'sqlite'
47
+
48
+ gem "sbf-do_#{adapter}", DO_VERSION, do_options.dup
49
+ end
50
+
51
+ options[SOURCE] = "#{DATAMAPPER}/dm-do-adapter#{REPO_POSTFIX}"
52
+ gem 'sbf-dm-do-adapter', DM_VERSION, options.dup
53
+ end
54
+
55
+ adapters.each do |adapter|
56
+ options[SOURCE] = "#{DATAMAPPER}/dm-#{adapter}-adapter#{REPO_POSTFIX}"
57
+ gem "sbf-dm-#{adapter}-adapter", DM_VERSION, options.dup
58
+ end
59
+
60
+ plugins = ENV['PLUGINS'] || ENV.fetch('PLUGIN', nil)
61
+ plugins = plugins.to_s.tr(',', ' ').split.push('dm-migrations').uniq
62
+
63
+ plugins.each do |plugin|
64
+ options[SOURCE] = "#{DATAMAPPER}/#{plugin}#{REPO_POSTFIX}"
65
+ gem "sbf-#{plugin}", DM_VERSION, options.dup
66
+ end
67
+ end
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Sam Smoot, 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-types
2
+
3
+ DataMapper plugin providing many extra types for use in data models.
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ FileList['tasks/**/*.rake'].each { |task| import task }
data/dm-types.gemspec ADDED
@@ -0,0 +1,26 @@
1
+ require File.expand_path('../lib/dm-types/version', __FILE__)
2
+
3
+ Gem::Specification.new do |gem|
4
+ gem.authors = ['Dan Kubb']
5
+ gem.email = ['dan.kubb@gmail.com']
6
+ gem.summary = 'DataMapper plugin providing extra data types'
7
+ gem.description = "#{gem.summary} for use in data models"
8
+ gem.license = 'Nonstandard'
9
+ gem.homepage = 'https://datamapper.org'
10
+
11
+ gem.files = `git ls-files`.split("\n")
12
+ gem.extra_rdoc_files = %w(LICENSE README.rdoc)
13
+
14
+ gem.name = 'sbf-dm-types'
15
+ gem.require_paths = %w(lib)
16
+ gem.version = DataMapper::Types::VERSION
17
+ gem.required_ruby_version = '>= 2.7.8'
18
+
19
+ gem.add_runtime_dependency('bcrypt', '~> 3.0')
20
+ gem.add_runtime_dependency('sbf-dm-core', '~> 1.3.0.beta')
21
+ gem.add_runtime_dependency('fastercsv', '~> 1.5.4')
22
+ gem.add_runtime_dependency 'multi_json', '~> 1.7', '>= 1.7.7'
23
+ gem.add_runtime_dependency('safe_yaml', '~> 0.6.1')
24
+ gem.add_runtime_dependency 'stringex', '~> 2.0', '>= 2.0.8'
25
+ gem.add_runtime_dependency('uuidtools', '~> 2.1.2')
26
+ end