ardm-do-adapter 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1f38f8747b0bde45cd4b0003875124b33bbfbda7
4
- data.tar.gz: 60395ab8432a9283b71f896acf170d5f3bf58063
3
+ metadata.gz: c82bd91805f6089e2010a5ce2b19fdc7d10d620f
4
+ data.tar.gz: 6a3737cdcd799f08b304d808efd0ede9792fb19a
5
5
  SHA512:
6
- metadata.gz: 47a3826335e162e1dfcdee50eaacf4224b9ea8797835c7574c613566837dc2f41316ac130a45f57d8e193054017319692a87d065f0ccdd9614c3422f32c05500
7
- data.tar.gz: c262903e1f1b63333ab0f04da7d7274e807fc7c877a9f014409c50340fd1c1f1796dbf9f29a07fe66f112e1bdfa2c42abffe39222191b87b34b3eb702dd50f55
6
+ metadata.gz: 90a587c722695538d67e414858d9c27dfa02055fe3df80c234b3a115ce47378fe26b0b4d22ca101f0e80992f61e442831a8bb86b5ba6bd038a3e1bf4c60547e5
7
+ data.tar.gz: da5713ace4d2fe7b8619b203042890dccf71446f45f320b166d0261a1f4d6a8871d1ae3c225d3ff888166cbf2f7f426898568dd37289860ec80d1a9625da555e
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ gemspec
7
7
  SOURCE = ENV.fetch('SOURCE', :git).to_sym
8
8
  REPO_POSTFIX = SOURCE == :path ? '' : '.git'
9
9
  DATAMAPPER = SOURCE == :path ? Pathname(__FILE__).dirname.parent : 'http://github.com/ar-dm'
10
- DM_VERSION = '~> 1.2.0'
10
+ DM_VERSION = '~> 1.2'
11
11
  DO_VERSION = '~> 0.10.6'
12
12
  CURRENT_BRANCH = ENV.fetch('GIT_BRANCH', 'master')
13
13
 
@@ -0,0 +1,18 @@
1
+ [![Gem Version](https://badge.fury.io/rb/ardm-do-adapter.png)][gem]
2
+ [![Build Status](https://travis-ci.org/ar-dm/ardm-do-adapter.png?branch=master)][travis]
3
+ [![Dependency Status](https://gemnasium.com/ar-dm/ardm-do-adapter.png?travis)][gemnasium]
4
+
5
+ [gem]: https://rubygems.org/gems/ardm-do-adapter
6
+ [travis]: https://travis-ci.org/ar-dm/ardm-do-adapter
7
+ [gemnasium]: https://gemnasium.com/ar-dm/ardm-do-adapter
8
+
9
+ # ardm-do-adapter
10
+
11
+ A fork of [`dm-do-adapter`](https://github.com/datamapper/dm-do-adapter).
12
+
13
+ ## Install
14
+
15
+ See [ardm-core](https://github.com/ar-dm/ardm-core) for more information.
16
+
17
+ Unless they are specific to this gem, please ask general `ardm-` questions
18
+ and open issues on `ardm-core`.
@@ -14,7 +14,7 @@ Gem::Specification.new do |gem|
14
14
 
15
15
  gem.files = `git ls-files`.split("\n")
16
16
  gem.test_files = `git ls-files -- {spec}/*`.split("\n")
17
- gem.extra_rdoc_files = %w[LICENSE README.rdoc]
17
+ gem.extra_rdoc_files = %w[LICENSE README.md]
18
18
  gem.require_paths = [ "lib" ]
19
19
 
20
20
  gem.add_runtime_dependency 'data_objects', '~> 0.10.6'
@@ -310,19 +310,39 @@ module DataMapper
310
310
  # Adapter below.
311
311
  module SQL #:nodoc:
312
312
  IDENTIFIER_MAX_LENGTH = 128
313
+ QUESTION_MARK = '?'.freeze
314
+ GT_OPERATOR = '>'.freeze
315
+ LT_OPERATOR = '<'.freeze
316
+ GTE_OPERATOR = '>='.freeze
317
+ LTE_OPERATOR = '<='.freeze
318
+ IS_OPERATOR = 'IS'.freeze
319
+ EQ_OPERATOR = '='.freeze
320
+ IN_OPERATOR = 'IN'.freeze
321
+ BETWEEN_OPERATOR = 'BETWEEN'.freeze
322
+ REGEXP_OPERATOR = '~'.freeze
323
+ LIKE_OPERATOR = 'LIKE'.freeze
324
+ NULL_KEYWORD = 'NULL'.freeze
325
+ AND_KEYWORD = ' AND '.freeze
326
+ ON_KEYWORD = 'ON'.freeze
327
+ COLUMN_SEPARATOR = ', '.freeze
328
+ SPACE = ' '.freeze
329
+ ONE_EQ_ZERO = '1 = 0'.freeze
330
+ SINGLE_QUOTE = /"/.freeze
331
+ DOUBLE_QUOTE = '""'.freeze
313
332
 
314
333
  # @api semipublic
315
334
  def property_to_column_name(property, qualify)
316
- column_name = ''
335
+ column_name = quote_name(property.field)
317
336
 
318
337
  case qualify
319
- when true
320
- column_name << "#{quote_name(property.model.storage_name(name))}."
321
- when String
322
- column_name << "#{quote_name(qualify)}."
338
+ when true
339
+ "#{quote_name(property.model.storage_name(name))}.#{column_name}"
340
+ when String
341
+ "#{quote_name(qualify)}.#{column_name}"
342
+ else
343
+ column_name
323
344
  end
324
345
 
325
- column_name << quote_name(property.field)
326
346
  end
327
347
 
328
348
  private
@@ -396,9 +416,9 @@ module DataMapper
396
416
  statement << default_values_clause
397
417
  else
398
418
  statement << DataMapper::Ext::String.compress_lines(<<-SQL)
399
- (#{properties.map { |property| quote_name(property.field) }.join(', ')})
419
+ (#{properties.map { |property| quote_name(property.field) }.join(COLUMN_SEPARATOR)})
400
420
  VALUES
401
- (#{(['?'] * properties.size).join(', ')})
421
+ (#{([QUESTION_MARK] * properties.size).join(COLUMN_SEPARATOR)})
402
422
  SQL
403
423
  end
404
424
 
@@ -438,7 +458,7 @@ module DataMapper
438
458
  end
439
459
 
440
460
  statement = "UPDATE #{quote_name(model.storage_name(name))}"
441
- statement << " SET #{properties.map { |property| "#{quote_name(property.field)} = ?" }.join(', ')}"
461
+ statement << " SET #{properties.map { |property| "#{quote_name(property.field)} = ?" }.join(COLUMN_SEPARATOR)}"
442
462
  statement << " WHERE #{conditions_statement}" unless DataMapper::Ext.blank?(conditions_statement)
443
463
 
444
464
  return statement, bind_values
@@ -473,7 +493,7 @@ module DataMapper
473
493
  #
474
494
  # @api private
475
495
  def columns_statement(properties, qualify)
476
- properties.map { |property| property_to_column_name(property, qualify) }.join(', ')
496
+ properties.map { |property| property_to_column_name(property, qualify) }.join(COLUMN_SEPARATOR)
477
497
  end
478
498
 
479
499
  # Constructs joins clause
@@ -504,7 +524,7 @@ module DataMapper
504
524
  seen[source_alias] = 0
505
525
  end
506
526
 
507
- statements << 'ON'
527
+ statements << ON_KEYWORD
508
528
 
509
529
  add_join_conditions(relationship, target_alias, source_alias, statements)
510
530
  add_extra_join_conditions(relationship, target_alias, statements, join_bind_values)
@@ -513,13 +533,13 @@ module DataMapper
513
533
  # prepend the join bind values to the statement bind values
514
534
  bind_values.unshift(*join_bind_values)
515
535
 
516
- statements.join(' ')
536
+ statements.join(SPACE)
517
537
  end
518
538
 
519
539
  def add_join_conditions(relationship, target_alias, source_alias, statements)
520
540
  statements << relationship.target_key.zip(relationship.source_key).map do |target_property, source_property|
521
541
  "#{property_to_column_name(target_property, target_alias)} = #{property_to_column_name(source_property, source_alias)}"
522
- end.join(' AND ')
542
+ end.join(AND_KEYWORD)
523
543
  end
524
544
 
525
545
  def add_extra_join_conditions(relationship, target_alias, statements, bind_values)
@@ -575,10 +595,10 @@ module DataMapper
575
595
  statement = if target_key.size == 1
576
596
  property_to_column_name(target_key.first, qualify)
577
597
  else
578
- "(#{target_key.map { |property| property_to_column_name(property, qualify) }.join(', ')})"
598
+ "(#{target_key.map { |property| property_to_column_name(property, qualify) }.join(COLUMN_SEPARATOR)})"
579
599
  end
580
600
 
581
- statement << " IN (#{select_statement})"
601
+ statement = "#{statement} IN (#{select_statement})"
582
602
 
583
603
  return statement, bind_values
584
604
  end
@@ -592,7 +612,7 @@ module DataMapper
592
612
  if conditions.valid?
593
613
  conditions_statement(conditions, qualify)
594
614
  else
595
- [ '1 = 0', [] ]
615
+ [ ONE_EQ_ZERO, [] ]
596
616
  end
597
617
  end
598
618
 
@@ -626,11 +646,11 @@ module DataMapper
626
646
  def order_statement(order, qualify)
627
647
  statements = order.map do |direction|
628
648
  statement = property_to_column_name(direction.target, qualify)
629
- statement << ' DESC' if direction.operator == :desc
649
+ statement = "#{statement} DESC" if direction.operator == :desc
630
650
  statement
631
651
  end
632
652
 
633
- statements.join(', ')
653
+ statements.join(COLUMN_SEPARATOR)
634
654
  end
635
655
 
636
656
  # @api private
@@ -699,10 +719,10 @@ module DataMapper
699
719
 
700
720
  # if operator return value contains ? then it means that it is function call
701
721
  # and it contains placeholder (%s) for property name as well (used in Oracle adapter for regexp operator)
702
- if operator.include?('?')
722
+ if operator.include?(QUESTION_MARK)
703
723
  return operator % column_name, [ value ]
704
724
  else
705
- return "#{column_name} #{operator} #{value.nil? ? 'NULL' : '?'}", [ value ].compact
725
+ return "#{column_name} #{operator} #{value.nil? ? NULL_KEYWORD : QUESTION_MARK}", [ value ].compact
706
726
  end
707
727
  end
708
728
 
@@ -715,39 +735,39 @@ module DataMapper
715
735
  when :in then include_operator(subject, value)
716
736
  when :regexp then regexp_operator(value)
717
737
  when :like then like_operator(value)
718
- when :gt then '>'
719
- when :lt then '<'
720
- when :gte then '>='
721
- when :lte then '<='
738
+ when :gt then GT_OPERATOR
739
+ when :lt then LT_OPERATOR
740
+ when :gte then GTE_OPERATOR
741
+ when :lte then LTE_OPERATOR
722
742
  end
723
743
  end
724
744
 
725
745
  # @api private
726
746
  def equality_operator(property, operand)
727
- operand.nil? ? 'IS' : '='
747
+ operand.nil? ? IS_OPERATOR : EQ_OPERATOR
728
748
  end
729
749
 
730
750
  # @api private
731
751
  def include_operator(property, operand)
732
752
  case operand
733
- when Array then 'IN'
734
- when Range then 'BETWEEN'
753
+ when Array then IN_OPERATOR
754
+ when Range then BETWEEN_OPERATOR
735
755
  end
736
756
  end
737
757
 
738
758
  # @api private
739
759
  def regexp_operator(operand)
740
- '~'
760
+ REGEXP_OPERATOR
741
761
  end
742
762
 
743
763
  # @api private
744
764
  def like_operator(operand)
745
- 'LIKE'
765
+ LIKE_OPERATOR
746
766
  end
747
767
 
748
768
  # @api private
749
769
  def quote_name(name)
750
- "\"#{name[0, self.class::IDENTIFIER_MAX_LENGTH].gsub('"', '""')}\""
770
+ "\"#{name[0, self.class::IDENTIFIER_MAX_LENGTH].gsub(SINGLE_QUOTE,DOUBLE_QUOTE)}\""
751
771
  end
752
772
 
753
773
  end
@@ -1,5 +1,5 @@
1
1
  module DataMapper
2
2
  module DoAdapter
3
- VERSION = '1.2.0'
3
+ VERSION = '1.2.1'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ardm-do-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Emde
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-01-30 00:00:00.000000000 Z
12
+ date: 2015-02-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: data_objects
@@ -75,12 +75,12 @@ executables: []
75
75
  extensions: []
76
76
  extra_rdoc_files:
77
77
  - LICENSE
78
- - README.rdoc
78
+ - README.md
79
79
  files:
80
80
  - ".gitignore"
81
81
  - Gemfile
82
82
  - LICENSE
83
- - README.rdoc
83
+ - README.md
84
84
  - Rakefile
85
85
  - ardm-do-adapter.gemspec
86
86
  - lib/ardm-do-adapter.rb
@@ -1,3 +0,0 @@
1
- = dm-do-adapter
2
-
3
- A DataObjects Adapter for DataMapper