veritas-do-adapter 0.0.5

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.
Files changed (65) hide show
  1. data/.document +5 -0
  2. data/.gemtest +0 -0
  3. data/.rvmrc +1 -0
  4. data/.travis.yml +11 -0
  5. data/Gemfile +46 -0
  6. data/Guardfile +18 -0
  7. data/LICENSE +20 -0
  8. data/README.md +21 -0
  9. data/Rakefile +27 -0
  10. data/TODO +0 -0
  11. data/config/flay.yml +3 -0
  12. data/config/flog.yml +2 -0
  13. data/config/roodi.yml +16 -0
  14. data/config/site.reek +96 -0
  15. data/config/yardstick.yml +2 -0
  16. data/lib/veritas/adapter/data_objects/statement.rb +107 -0
  17. data/lib/veritas/adapter/data_objects/version.rb +9 -0
  18. data/lib/veritas/adapter/data_objects.rb +55 -0
  19. data/lib/veritas/relation/gateway.rb +363 -0
  20. data/lib/veritas-do-adapter.rb +4 -0
  21. data/spec/rcov.opts +6 -0
  22. data/spec/shared/binary_relation_method_behaviour.rb +51 -0
  23. data/spec/shared/command_method_behavior.rb +7 -0
  24. data/spec/shared/each_method_behaviour.rb +15 -0
  25. data/spec/shared/idempotent_method_behaviour.rb +7 -0
  26. data/spec/shared/unary_relation_method_behaviour.rb +21 -0
  27. data/spec/spec.opts +3 -0
  28. data/spec/spec_helper.rb +28 -0
  29. data/spec/unit/veritas/adapter/data_objects/class_methods/new_spec.rb +15 -0
  30. data/spec/unit/veritas/adapter/data_objects/read_spec.rb +70 -0
  31. data/spec/unit/veritas/adapter/data_objects/statement/class_methods/new_spec.rb +28 -0
  32. data/spec/unit/veritas/adapter/data_objects/statement/each_spec.rb +63 -0
  33. data/spec/unit/veritas/adapter/data_objects/statement/to_s_spec.rb +53 -0
  34. data/spec/unit/veritas/relation/gateway/class_methods/new_spec.rb +16 -0
  35. data/spec/unit/veritas/relation/gateway/difference_spec.rb +17 -0
  36. data/spec/unit/veritas/relation/gateway/drop_spec.rb +21 -0
  37. data/spec/unit/veritas/relation/gateway/each_spec.rb +84 -0
  38. data/spec/unit/veritas/relation/gateway/extend_spec.rb +27 -0
  39. data/spec/unit/veritas/relation/gateway/intersect_spec.rb +17 -0
  40. data/spec/unit/veritas/relation/gateway/join_spec.rb +44 -0
  41. data/spec/unit/veritas/relation/gateway/materialize_spec.rb +27 -0
  42. data/spec/unit/veritas/relation/gateway/optimize_spec.rb +23 -0
  43. data/spec/unit/veritas/relation/gateway/product_spec.rb +17 -0
  44. data/spec/unit/veritas/relation/gateway/project_spec.rb +21 -0
  45. data/spec/unit/veritas/relation/gateway/remove_spec.rb +21 -0
  46. data/spec/unit/veritas/relation/gateway/rename_spec.rb +21 -0
  47. data/spec/unit/veritas/relation/gateway/respond_to_spec.rb +29 -0
  48. data/spec/unit/veritas/relation/gateway/restrict_spec.rb +27 -0
  49. data/spec/unit/veritas/relation/gateway/reverse_spec.rb +21 -0
  50. data/spec/unit/veritas/relation/gateway/sort_by_spec.rb +27 -0
  51. data/spec/unit/veritas/relation/gateway/summarize_spec.rb +148 -0
  52. data/spec/unit/veritas/relation/gateway/take_spec.rb +21 -0
  53. data/spec/unit/veritas/relation/gateway/union_spec.rb +17 -0
  54. data/tasks/metrics/ci.rake +7 -0
  55. data/tasks/metrics/flay.rake +41 -0
  56. data/tasks/metrics/flog.rake +43 -0
  57. data/tasks/metrics/heckle.rake +209 -0
  58. data/tasks/metrics/metric_fu.rake +29 -0
  59. data/tasks/metrics/reek.rake +9 -0
  60. data/tasks/metrics/roodi.rake +15 -0
  61. data/tasks/metrics/yardstick.rake +23 -0
  62. data/tasks/spec.rake +39 -0
  63. data/tasks/yard.rake +9 -0
  64. data/veritas-do-adapter.gemspec +124 -0
  65. metadata +257 -0
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+ require 'veritas/relation/gateway'
5
+
6
+ describe Relation::Gateway, '#take' do
7
+ subject { object.take(args) }
8
+
9
+ let(:adapter) { mock('Adapter') }
10
+ let(:relation) { mock('Relation', :take => response) }
11
+ let(:response) { mock('New Relation', :kind_of? => true) }
12
+ let!(:object) { described_class.new(adapter, relation) }
13
+ let(:args) { stub }
14
+
15
+ it_should_behave_like 'a unary relation method'
16
+
17
+ it 'forwards the arguments to relation#take' do
18
+ relation.should_receive(:take).with(args)
19
+ subject
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+ require 'veritas/relation/gateway'
5
+
6
+ describe Relation::Gateway, '#union' do
7
+ subject { object.union(other) }
8
+
9
+ let(:adapter) { mock('Adapter') }
10
+ let(:relation) { mock('Relation') }
11
+ let(:object) { described_class.new(adapter, relation) }
12
+ let(:operation) { :union }
13
+ let(:factory) { Algebra::Union }
14
+ let(:binary_relation) { mock(factory) }
15
+
16
+ it_should_behave_like 'a binary relation method'
17
+ end
@@ -0,0 +1,7 @@
1
+ desc 'Run metrics with Heckle'
2
+ task :ci => [ 'ci:metrics', :heckle ]
3
+
4
+ namespace :ci do
5
+ desc 'Run metrics'
6
+ task :metrics => [ :verify_measurements, :flog, :flay, :reek, :roodi, 'metrics:all' ]
7
+ end
@@ -0,0 +1,41 @@
1
+ begin
2
+ require 'flay'
3
+ require 'yaml'
4
+
5
+ config = YAML.load_file(File.expand_path('../../../config/flay.yml', __FILE__)).freeze
6
+ threshold = config.fetch('threshold').to_i
7
+ total_score = config.fetch('total_score').to_f
8
+ files = Flay.expand_dirs_to_files(config.fetch('path', 'lib'))
9
+
10
+ # original code by Marty Andrews:
11
+ # http://blog.martyandrews.net/2009/05/enforcing-ruby-code-quality.html
12
+ desc 'Analyze for code duplication'
13
+ task :flay do
14
+ # run flay once without a threshold to ensure the max mass matches the threshold
15
+ flay = Flay.new(:fuzzy => false, :verbose => false, :mass => 0)
16
+ flay.process(*files)
17
+
18
+ max = flay.masses.map { |hash, mass| mass.to_f / flay.hashes[hash].size }.max
19
+ unless max >= threshold
20
+ raise "Adjust flay threshold down to #{max}"
21
+ end
22
+
23
+ total = flay.masses.reduce(0.0) { |total, (hash, mass)| total + (mass.to_f / flay.hashes[hash].size) }
24
+ unless total == total_score
25
+ raise "Flay total is now #{total}, but expected #{total_score}"
26
+ end
27
+
28
+ # run flay a second time with the threshold set
29
+ flay = Flay.new(:fuzzy => false, :verbose => false, :mass => threshold.succ)
30
+ flay.process(*files)
31
+
32
+ if flay.masses.any?
33
+ flay.report
34
+ raise "#{flay.masses.size} chunks of code have a duplicate mass > #{threshold}"
35
+ end
36
+ end
37
+ rescue LoadError
38
+ task :flay do
39
+ abort 'Flay is not available. In order to run flay, you must: gem install flay'
40
+ end
41
+ end
@@ -0,0 +1,43 @@
1
+ begin
2
+ require 'flog'
3
+ require 'yaml'
4
+
5
+ class Float
6
+ def round_to(n)
7
+ (self * 10**n).round.to_f * 10**-n
8
+ end
9
+ end
10
+
11
+ config = YAML.load_file(File.expand_path('../../../config/flog.yml', __FILE__)).freeze
12
+ threshold = config.fetch('threshold').to_f.round_to(1)
13
+
14
+ # original code by Marty Andrews:
15
+ # http://blog.martyandrews.net/2009/05/enforcing-ruby-code-quality.html
16
+ desc 'Analyze for code complexity'
17
+ task :flog do
18
+ flog = Flog.new
19
+ flog.flog Array(config.fetch('path', 'lib'))
20
+
21
+ totals = flog.totals.select { |name, score| name[-5, 5] != '#none' }.
22
+ map { |name, score| [ name, score.round_to(1) ] }.
23
+ sort_by { |name, score| score }
24
+
25
+ max = totals.last ? totals.last[1] : 0
26
+ unless max >= threshold
27
+ raise "Adjust flog score down to #{max}"
28
+ end
29
+
30
+ bad_methods = totals.select { |name, score| score > threshold }
31
+ if bad_methods.any?
32
+ bad_methods.reverse_each do |name, score|
33
+ puts '%8.1f: %s' % [ score, name ]
34
+ end
35
+
36
+ raise "#{bad_methods.size} methods have a flog complexity > #{threshold}"
37
+ end
38
+ end
39
+ rescue LoadError
40
+ task :flog do
41
+ abort 'Flog is not available. In order to run flog, you must: gem install flog'
42
+ end
43
+ end
@@ -0,0 +1,209 @@
1
+ $LOAD_PATH.unshift(File.expand_path('../../../lib', __FILE__))
2
+
3
+ # original code by Ashley Moran:
4
+ # http://aviewfromafar.net/2007/11/1/rake-task-for-heckling-your-specs
5
+
6
+ begin
7
+ require 'pathname'
8
+ require 'backports'
9
+ require 'backports/basic_object'
10
+ require 'active_support/inflector'
11
+ require 'heckle'
12
+ require 'mspec'
13
+ require 'mspec/utils/name_map'
14
+
15
+ SKIP_METHODS = %w[ blank_slate_method_added ].freeze
16
+
17
+ class NameMap
18
+ def file_name(method, constant)
19
+ map = MAP[method]
20
+ name = if map
21
+ map[constant] || map[:default]
22
+ else
23
+ method.gsub(/[?!=]\z/, '')
24
+ end
25
+ "#{name}_spec.rb"
26
+ end
27
+ end
28
+
29
+ desc 'Heckle each module and class'
30
+ task :heckle => :verify_rcov do
31
+ unless Ruby2Ruby::VERSION == '1.2.2'
32
+ raise "ruby2ruby version #{Ruby2Ruby::VERSION} may not work properly, 1.2.2 *only* is recommended for use with heckle"
33
+ end
34
+
35
+ require 'veritas-do-adapter'
36
+
37
+ root_module_regexp = Regexp.union(
38
+ 'Veritas::Adapter::DataObjects',
39
+ 'Veritas::Relation::Gateway'
40
+ )
41
+
42
+ spec_dir = Pathname('spec/unit')
43
+
44
+ NameMap::MAP.each do |op, method|
45
+ next if method.kind_of?(Hash)
46
+ NameMap::MAP[op] = { :default => method }
47
+ end
48
+
49
+ aliases = Hash.new { |h,mod| h[mod] = Hash.new { |h,method| h[method] = method } }
50
+
51
+ map = NameMap.new
52
+
53
+ heckle_caught_modules = Hash.new { |hash, key| hash[key] = [] }
54
+ unhandled_mutations = 0
55
+
56
+ ObjectSpace.each_object(Module) do |mod|
57
+ next unless mod.name =~ /\A#{root_module_regexp}(?::|\z)/
58
+
59
+ spec_prefix = spec_dir.join(mod.name.underscore)
60
+
61
+ specs = []
62
+
63
+ # get the public class methods
64
+ metaclass = class << mod; self end
65
+ ancestors = metaclass.ancestors
66
+
67
+ spec_class_methods = mod.singleton_methods(false)
68
+
69
+ spec_class_methods.reject! do |method|
70
+ %w[ yaml_new yaml_tag_subclasses? included nesting constants ].include?(method.to_s)
71
+ end
72
+
73
+ if mod.ancestors.include?(Singleton)
74
+ spec_class_methods.reject! { |method| method.to_s == 'instance' }
75
+ end
76
+
77
+ # get the protected and private class methods
78
+ other_class_methods = metaclass.protected_instance_methods(false) |
79
+ metaclass.private_instance_methods(false)
80
+
81
+ ancestors.each do |ancestor|
82
+ other_class_methods -= ancestor.protected_instance_methods(false) |
83
+ ancestor.private_instance_methods(false)
84
+ end
85
+
86
+ other_class_methods.reject! do |method|
87
+ method.to_s == 'allocate' || SKIP_METHODS.include?(method.to_s)
88
+ end
89
+
90
+ other_class_methods.reject! do |method|
91
+ next unless spec_class_methods.any? { |specced| specced.to_s == $1 }
92
+
93
+ spec_class_methods << method
94
+ end
95
+
96
+ # get the instances methods
97
+ spec_methods = mod.public_instance_methods(false)
98
+
99
+ other_methods = mod.protected_instance_methods(false) |
100
+ mod.private_instance_methods(false)
101
+
102
+ other_methods.reject! do |method|
103
+ next unless spec_methods.any? { |specced| specced.to_s == $1 }
104
+
105
+ spec_methods << method
106
+ end
107
+
108
+ # map the class methods to spec files
109
+ spec_class_methods.each do |method|
110
+ method = aliases[mod.name][method]
111
+ next if SKIP_METHODS.include?(method.to_s)
112
+
113
+ spec_file = spec_prefix.join('class_methods').join(map.file_name(method, mod.name))
114
+
115
+ unless spec_file.file?
116
+ raise "No spec file #{spec_file} for #{mod}.#{method}"
117
+ end
118
+
119
+ specs << [ ".#{method}", [ spec_file ] ]
120
+ end
121
+
122
+ # map the instance methods to spec files
123
+ spec_methods.each do |method|
124
+ method = aliases[mod.name][method]
125
+ next if SKIP_METHODS.include?(method.to_s)
126
+
127
+ spec_file = spec_prefix.join(map.file_name(method, mod.name))
128
+
129
+ unless spec_file.file?
130
+ raise "No spec file #{spec_file} for #{mod}##{method}"
131
+ end
132
+
133
+ specs << [ "##{method}", [ spec_file ] ]
134
+ end
135
+
136
+ # non-public methods are considered covered if they can be mutated
137
+ # and any spec fails for the current or descendant modules
138
+ other_methods.each do |method|
139
+ descedant_specs = []
140
+
141
+ ObjectSpace.each_object(Module) do |descedant|
142
+ next unless descedant.name =~ /\A#{root_module_regexp}(?::|\z)/ && mod >= descedant
143
+ descedant_spec_prefix = spec_dir.join(descedant.name.underscore)
144
+ descedant_specs.concat(Pathname.glob(descedant_spec_prefix.join('*_spec.rb')))
145
+
146
+ if method.to_s == 'initialize'
147
+ descedant_specs.concat(Pathname.glob(descedant_spec_prefix.join('class_methods/new_spec.rb')))
148
+ end
149
+ end
150
+
151
+ specs << [ "##{method}", descedant_specs ]
152
+ end
153
+
154
+ other_class_methods.each do |method|
155
+ descedant_specs = []
156
+
157
+ ObjectSpace.each_object(Module) do |descedant|
158
+ next unless descedant.name =~ /\A#{root_module_regexp}(?::|\z)/ && mod >= descedant
159
+ descedant_spec_prefix = spec_dir.join(descedant.name.underscore)
160
+ descedant_specs.concat(Pathname.glob(descedant_spec_prefix.join('class_methods/*_spec.rb')))
161
+ end
162
+
163
+ specs << [ ".#{method}", descedant_specs ]
164
+ end
165
+
166
+ specs.sort.each do |(method, spec_files)|
167
+ puts "Heckling #{mod}#{method}"
168
+ IO.popen("spec #{spec_files.join(' ')} --heckle '#{mod}#{method}'") do |pipe|
169
+ while line = pipe.gets
170
+ case line = line.chomp
171
+ when "The following mutations didn't cause test failures:"
172
+ heckle_caught_modules[mod.name] << method
173
+ when '+++ mutation'
174
+ unhandled_mutations += 1
175
+ end
176
+ end
177
+ end
178
+ end
179
+ end
180
+
181
+ if unhandled_mutations > 0
182
+ error_message_lines = [ "*************\n" ]
183
+
184
+ error_message_lines << "Heckle found #{unhandled_mutations} " \
185
+ "mutation#{"s" unless unhandled_mutations == 1} " \
186
+ "that didn't cause spec violations\n"
187
+
188
+ heckle_caught_modules.each do |mod, methods|
189
+ error_message_lines << "#{mod} contains the following " \
190
+ 'poorly-specified methods:'
191
+ methods.each do |method|
192
+ error_message_lines << " - #{method}"
193
+ end
194
+ error_message_lines << ''
195
+ end
196
+
197
+ error_message_lines << 'Get your act together and come back ' \
198
+ 'when your specs are doing their job!'
199
+
200
+ raise error_message_lines.join("\n")
201
+ else
202
+ puts 'Well done! Your code withstood a heckling.'
203
+ end
204
+ end
205
+ rescue LoadError
206
+ task :heckle do
207
+ abort 'Heckle or mspec is not available. In order to run heckle, you must: gem install heckle mspec'
208
+ end
209
+ end
@@ -0,0 +1,29 @@
1
+ begin
2
+ require 'metric_fu'
3
+ require 'json'
4
+
5
+ # XXX: temporary hack until metric_fu is fixed
6
+ MetricFu::Saikuro.class_eval { include FileUtils }
7
+
8
+ MetricFu::Configuration.run do |config|
9
+ config.rcov = {
10
+ :environment => 'test',
11
+ :test_files => %w[ spec/**/*_spec.rb ],
12
+ :rcov_opts => %w[
13
+ --sort coverage
14
+ --no-html
15
+ --text-coverage
16
+ --no-color
17
+ --profile
18
+ --exclude spec/,^/
19
+ --include lib:spec
20
+ ],
21
+ }
22
+ end
23
+ rescue LoadError
24
+ namespace :metrics do
25
+ task :all do
26
+ abort 'metric_fu is not available. In order to run metrics:all, you must: gem install metric_fu'
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,9 @@
1
+ begin
2
+ require 'reek/rake/task'
3
+
4
+ Reek::Rake::Task.new
5
+ rescue LoadError
6
+ task :reek do
7
+ abort "Reek is not available. In order to run reek, you must: gem install reek"
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ begin
2
+ require 'roodi'
3
+ require 'rake/tasklib'
4
+ require 'roodi_task'
5
+
6
+ RoodiTask.new do |t|
7
+ t.verbose = false
8
+ t.config = File.expand_path('../../../config/roodi.yml', __FILE__)
9
+ t.patterns = %w[ lib/**/*.rb ]
10
+ end
11
+ rescue LoadError
12
+ task :roodi do
13
+ abort 'Roodi is not available. In order to run roodi, you must: gem install roodi'
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ begin
2
+ require 'pathname'
3
+ require 'yardstick'
4
+ require 'yardstick/rake/measurement'
5
+ require 'yardstick/rake/verify'
6
+ require 'yaml'
7
+
8
+ config = YAML.load_file(File.expand_path('../../../config/yardstick.yml', __FILE__))
9
+
10
+ # yardstick_measure task
11
+ Yardstick::Rake::Measurement.new
12
+
13
+ # verify_measurements task
14
+ Yardstick::Rake::Verify.new do |verify|
15
+ verify.threshold = config.fetch('threshold')
16
+ end
17
+ rescue LoadError
18
+ %w[ yardstick_measure verify_measurements ].each do |name|
19
+ task name.to_s do
20
+ abort "Yardstick is not available. In order to run #{name}, you must: gem install yardstick"
21
+ end
22
+ end
23
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,39 @@
1
+ spec_defaults = lambda do |spec|
2
+ spec.pattern = 'spec/**/*_spec.rb'
3
+ spec.libs << 'lib' << 'spec'
4
+ spec.spec_opts << '--options' << 'spec/spec.opts'
5
+ end
6
+
7
+ begin
8
+ require 'spec/rake/spectask'
9
+
10
+ Spec::Rake::SpecTask.new(:spec, &spec_defaults)
11
+ rescue LoadError
12
+ task :spec do
13
+ abort 'rspec is not available. In order to run spec, you must: gem install rspec'
14
+ end
15
+ end
16
+
17
+ begin
18
+ require 'rcov'
19
+ require 'spec/rake/verify_rcov'
20
+
21
+ Spec::Rake::SpecTask.new(:rcov) do |rcov|
22
+ spec_defaults.call(rcov)
23
+ rcov.rcov = true
24
+ rcov.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
25
+ end
26
+
27
+ RCov::VerifyTask.new(:verify_rcov => :rcov) do |rcov|
28
+ rcov.threshold = 100
29
+ end
30
+ rescue LoadError
31
+ %w[ rcov verify_rcov ].each do |name|
32
+ task name do
33
+ abort "rcov is not available. In order to run #{name}, you must: gem install rcov"
34
+ end
35
+ end
36
+ end
37
+
38
+ task :test => :spec
39
+ 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,124 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "veritas-do-adapter"
8
+ s.version = "0.0.5"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Dan Kubb"]
12
+ s.date = "2011-10-04"
13
+ s.description = "Use Veritas relations with an RDBMS"
14
+ s.email = "dan.kubb@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.md",
18
+ "TODO"
19
+ ]
20
+ s.files = [
21
+ ".document",
22
+ ".gemtest",
23
+ ".rvmrc",
24
+ ".travis.yml",
25
+ "Gemfile",
26
+ "Guardfile",
27
+ "LICENSE",
28
+ "README.md",
29
+ "Rakefile",
30
+ "TODO",
31
+ "config/flay.yml",
32
+ "config/flog.yml",
33
+ "config/roodi.yml",
34
+ "config/site.reek",
35
+ "config/yardstick.yml",
36
+ "lib/veritas-do-adapter.rb",
37
+ "lib/veritas/adapter/data_objects.rb",
38
+ "lib/veritas/adapter/data_objects/statement.rb",
39
+ "lib/veritas/adapter/data_objects/version.rb",
40
+ "lib/veritas/relation/gateway.rb",
41
+ "spec/rcov.opts",
42
+ "spec/shared/binary_relation_method_behaviour.rb",
43
+ "spec/shared/command_method_behavior.rb",
44
+ "spec/shared/each_method_behaviour.rb",
45
+ "spec/shared/idempotent_method_behaviour.rb",
46
+ "spec/shared/unary_relation_method_behaviour.rb",
47
+ "spec/spec.opts",
48
+ "spec/spec_helper.rb",
49
+ "spec/unit/veritas/adapter/data_objects/class_methods/new_spec.rb",
50
+ "spec/unit/veritas/adapter/data_objects/read_spec.rb",
51
+ "spec/unit/veritas/adapter/data_objects/statement/class_methods/new_spec.rb",
52
+ "spec/unit/veritas/adapter/data_objects/statement/each_spec.rb",
53
+ "spec/unit/veritas/adapter/data_objects/statement/to_s_spec.rb",
54
+ "spec/unit/veritas/relation/gateway/class_methods/new_spec.rb",
55
+ "spec/unit/veritas/relation/gateway/difference_spec.rb",
56
+ "spec/unit/veritas/relation/gateway/drop_spec.rb",
57
+ "spec/unit/veritas/relation/gateway/each_spec.rb",
58
+ "spec/unit/veritas/relation/gateway/extend_spec.rb",
59
+ "spec/unit/veritas/relation/gateway/intersect_spec.rb",
60
+ "spec/unit/veritas/relation/gateway/join_spec.rb",
61
+ "spec/unit/veritas/relation/gateway/materialize_spec.rb",
62
+ "spec/unit/veritas/relation/gateway/optimize_spec.rb",
63
+ "spec/unit/veritas/relation/gateway/product_spec.rb",
64
+ "spec/unit/veritas/relation/gateway/project_spec.rb",
65
+ "spec/unit/veritas/relation/gateway/remove_spec.rb",
66
+ "spec/unit/veritas/relation/gateway/rename_spec.rb",
67
+ "spec/unit/veritas/relation/gateway/respond_to_spec.rb",
68
+ "spec/unit/veritas/relation/gateway/restrict_spec.rb",
69
+ "spec/unit/veritas/relation/gateway/reverse_spec.rb",
70
+ "spec/unit/veritas/relation/gateway/sort_by_spec.rb",
71
+ "spec/unit/veritas/relation/gateway/summarize_spec.rb",
72
+ "spec/unit/veritas/relation/gateway/take_spec.rb",
73
+ "spec/unit/veritas/relation/gateway/union_spec.rb",
74
+ "tasks/metrics/ci.rake",
75
+ "tasks/metrics/flay.rake",
76
+ "tasks/metrics/flog.rake",
77
+ "tasks/metrics/heckle.rake",
78
+ "tasks/metrics/metric_fu.rake",
79
+ "tasks/metrics/reek.rake",
80
+ "tasks/metrics/roodi.rake",
81
+ "tasks/metrics/yardstick.rake",
82
+ "tasks/spec.rake",
83
+ "tasks/yard.rake",
84
+ "veritas-do-adapter.gemspec"
85
+ ]
86
+ s.homepage = "https://github.com/dkubb/veritas-do-adapter"
87
+ s.require_paths = ["lib"]
88
+ s.rubygems_version = "1.8.10"
89
+ s.summary = "Vertias DataObjects adapter"
90
+
91
+ if s.respond_to? :specification_version then
92
+ s.specification_version = 3
93
+
94
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
95
+ s.add_runtime_dependency(%q<data_objects>, ["~> 0.10.6"])
96
+ s.add_runtime_dependency(%q<veritas>, ["~> 0.0.6"])
97
+ s.add_runtime_dependency(%q<veritas-sql-generator>, ["~> 0.0.6"])
98
+ s.add_development_dependency(%q<backports>, ["~> 2.3.0"])
99
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
100
+ s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
101
+ s.add_development_dependency(%q<rspec>, ["~> 1.3.2"])
102
+ s.add_development_dependency(%q<yard>, ["~> 0.7.2"])
103
+ else
104
+ s.add_dependency(%q<data_objects>, ["~> 0.10.6"])
105
+ s.add_dependency(%q<veritas>, ["~> 0.0.6"])
106
+ s.add_dependency(%q<veritas-sql-generator>, ["~> 0.0.6"])
107
+ s.add_dependency(%q<backports>, ["~> 2.3.0"])
108
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
109
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
110
+ s.add_dependency(%q<rspec>, ["~> 1.3.2"])
111
+ s.add_dependency(%q<yard>, ["~> 0.7.2"])
112
+ end
113
+ else
114
+ s.add_dependency(%q<data_objects>, ["~> 0.10.6"])
115
+ s.add_dependency(%q<veritas>, ["~> 0.0.6"])
116
+ s.add_dependency(%q<veritas-sql-generator>, ["~> 0.0.6"])
117
+ s.add_dependency(%q<backports>, ["~> 2.3.0"])
118
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
119
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
120
+ s.add_dependency(%q<rspec>, ["~> 1.3.2"])
121
+ s.add_dependency(%q<yard>, ["~> 0.7.2"])
122
+ end
123
+ end
124
+