axiom-arango-adapter 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. data/.gitignore +4 -0
  2. data/.rspec +5 -0
  3. data/.travis.yml +25 -0
  4. data/Gemfile +9 -0
  5. data/Gemfile.devtools +57 -0
  6. data/Guardfile +18 -0
  7. data/LICENSE +20 -0
  8. data/README.md +92 -0
  9. data/Rakefile +2 -0
  10. data/TODO +1 -0
  11. data/axiom-arango-adapter.gemspec +26 -0
  12. data/config/flay.yml +3 -0
  13. data/config/flog.yml +2 -0
  14. data/config/mutant.yml +3 -0
  15. data/config/roodi.yml +18 -0
  16. data/config/site.reek +102 -0
  17. data/config/yardstick.yml +2 -0
  18. data/lib/axiom-arango-adapter.rb +2 -0
  19. data/lib/axiom/adapter/arango.rb +40 -0
  20. data/lib/axiom/adapter/arango/adapter.rb +68 -0
  21. data/lib/axiom/adapter/arango/gateway.rb +356 -0
  22. data/lib/axiom/adapter/arango/reader.rb +98 -0
  23. data/lib/axiom/adapter/arango/visitor.rb +100 -0
  24. data/lib/axiom/adapter/arango/visitor/aggregate.rb +132 -0
  25. data/lib/axiom/adapter/arango/visitor/attribute.rb +26 -0
  26. data/lib/axiom/adapter/arango/visitor/binary.rb +77 -0
  27. data/lib/axiom/adapter/arango/visitor/for.rb +75 -0
  28. data/lib/axiom/adapter/arango/visitor/for/base.rb +40 -0
  29. data/lib/axiom/adapter/arango/visitor/for/binary.rb +108 -0
  30. data/lib/axiom/adapter/arango/visitor/for/binary/join.rb +131 -0
  31. data/lib/axiom/adapter/arango/visitor/for/binary/product.rb +48 -0
  32. data/lib/axiom/adapter/arango/visitor/for/summarization.rb +113 -0
  33. data/lib/axiom/adapter/arango/visitor/for/unary.rb +29 -0
  34. data/lib/axiom/adapter/arango/visitor/for/unary/extension.rb +72 -0
  35. data/lib/axiom/adapter/arango/visitor/for/unary/limit.rb +31 -0
  36. data/lib/axiom/adapter/arango/visitor/for/unary/offset.rb +34 -0
  37. data/lib/axiom/adapter/arango/visitor/for/unary/order.rb +63 -0
  38. data/lib/axiom/adapter/arango/visitor/for/unary/projection.rb +32 -0
  39. data/lib/axiom/adapter/arango/visitor/for/unary/rename.rb +88 -0
  40. data/lib/axiom/adapter/arango/visitor/for/unary/restriction.rb +42 -0
  41. data/lib/axiom/adapter/arango/visitor/function.rb +33 -0
  42. data/lib/axiom/adapter/arango/visitor/header.rb +55 -0
  43. data/lib/axiom/adapter/arango/visitor/literal.rb +26 -0
  44. data/lib/axiom/adapter/arango/visitor/reverse.rb +27 -0
  45. data/spec/fuzzer.rb +53 -0
  46. data/spec/integration/arango/read_spec.rb +166 -0
  47. data/spec/setup/arangodb.sh +61 -0
  48. data/spec/setup/run.sh +23 -0
  49. data/spec/shared/aql_behavior.rb +7 -0
  50. data/spec/shared/binary_relation_method_behaviour.rb +53 -0
  51. data/spec/shared/unary_relation_method_behaviour.rb +21 -0
  52. data/spec/spec_helper.rb +51 -0
  53. data/spec/support/ice_nine_config.rb +6 -0
  54. data/spec/unit/axiom/adapter/arango/adapter/class_methods/new_spec.rb +24 -0
  55. data/spec/unit/axiom/adapter/arango/adapter/gateway_spec.rb +11 -0
  56. data/spec/unit/axiom/adapter/arango/adapter/reader_spec.rb +12 -0
  57. data/spec/unit/axiom/adapter/arango/gateway/class_methods/new_spec.rb +15 -0
  58. data/spec/unit/axiom/adapter/arango/gateway/difference_spec.rb +16 -0
  59. data/spec/unit/axiom/adapter/arango/gateway/drop_spec.rb +20 -0
  60. data/spec/unit/axiom/adapter/arango/gateway/each_spec.rb +78 -0
  61. data/spec/unit/axiom/adapter/arango/gateway/extend_spec.rb +26 -0
  62. data/spec/unit/axiom/adapter/arango/gateway/intersect_spec.rb +16 -0
  63. data/spec/unit/axiom/adapter/arango/gateway/join_spec.rb +43 -0
  64. data/spec/unit/axiom/adapter/arango/gateway/materialize_spec.rb +26 -0
  65. data/spec/unit/axiom/adapter/arango/gateway/optimize_spec.rb +22 -0
  66. data/spec/unit/axiom/adapter/arango/gateway/product_spec.rb +16 -0
  67. data/spec/unit/axiom/adapter/arango/gateway/project_spec.rb +20 -0
  68. data/spec/unit/axiom/adapter/arango/gateway/remove_spec.rb +20 -0
  69. data/spec/unit/axiom/adapter/arango/gateway/rename_spec.rb +20 -0
  70. data/spec/unit/axiom/adapter/arango/gateway/respond_to_predicate_spec.rb +28 -0
  71. data/spec/unit/axiom/adapter/arango/gateway/restrict_spec.rb +26 -0
  72. data/spec/unit/axiom/adapter/arango/gateway/reverse_spec.rb +20 -0
  73. data/spec/unit/axiom/adapter/arango/gateway/sort_by_spec.rb +26 -0
  74. data/spec/unit/axiom/adapter/arango/gateway/summarize_spec.rb +150 -0
  75. data/spec/unit/axiom/adapter/arango/gateway/take_spec.rb +20 -0
  76. data/spec/unit/axiom/adapter/arango/gateway/unhandled_message_spec.rb +17 -0
  77. data/spec/unit/axiom/adapter/arango/gateway/union_spec.rb +16 -0
  78. data/spec/unit/axiom/adapter/arango/reader/each_spec.rb +43 -0
  79. data/spec/unit/axiom/adapter/arango/visitor/aggregate/count/root_spec.rb +15 -0
  80. data/spec/unit/axiom/adapter/arango/visitor/aggregate/count_spec.rb +15 -0
  81. data/spec/unit/axiom/adapter/arango/visitor/aggregate/maximum/root_spec.rb +15 -0
  82. data/spec/unit/axiom/adapter/arango/visitor/aggregate/maximum_spec.rb +15 -0
  83. data/spec/unit/axiom/adapter/arango/visitor/aggregate/minimum/root_spec.rb +15 -0
  84. data/spec/unit/axiom/adapter/arango/visitor/aggregate/minimum_spec.rb +15 -0
  85. data/spec/unit/axiom/adapter/arango/visitor/aggregate/sum/root_spec.rb +15 -0
  86. data/spec/unit/axiom/adapter/arango/visitor/aggregate/sum_spec.rb +15 -0
  87. data/spec/unit/axiom/adapter/arango/visitor/attribute/root_spec.rb +12 -0
  88. data/spec/unit/axiom/adapter/arango/visitor/binary/root_spec.rb +15 -0
  89. data/spec/unit/axiom/adapter/arango/visitor/class_methods/build_spec.rb +37 -0
  90. data/spec/unit/axiom/adapter/arango/visitor/class_methods/run_spec.rb +26 -0
  91. data/spec/unit/axiom/adapter/arango/visitor/for/base/root_spec.rb +13 -0
  92. data/spec/unit/axiom/adapter/arango/visitor/for/binary/join/local_name_spec.rb +20 -0
  93. data/spec/unit/axiom/adapter/arango/visitor/for/binary/join/right/root_spec.rb +14 -0
  94. data/spec/unit/axiom/adapter/arango/visitor/for/binary/join/root_spec.rb +14 -0
  95. data/spec/unit/axiom/adapter/arango/visitor/for/binary/join_spec.rb +14 -0
  96. data/spec/unit/axiom/adapter/arango/visitor/for/binary/local_name_spec.rb +14 -0
  97. data/spec/unit/axiom/adapter/arango/visitor/for/binary/product/right/root_spec.rb +13 -0
  98. data/spec/unit/axiom/adapter/arango/visitor/for/binary/product/root_spec.rb +13 -0
  99. data/spec/unit/axiom/adapter/arango/visitor/for/binary/product_spec.rb +13 -0
  100. data/spec/unit/axiom/adapter/arango/visitor/for/binary/right/join_spec.rb +14 -0
  101. data/spec/unit/axiom/adapter/arango/visitor/for/binary/right/local_name_spec.rb +13 -0
  102. data/spec/unit/axiom/adapter/arango/visitor/for/binary/right/product_spec.rb +13 -0
  103. data/spec/unit/axiom/adapter/arango/visitor/for/local_name_spec.rb +21 -0
  104. data/spec/unit/axiom/adapter/arango/visitor/for/root_spec.rb +29 -0
  105. data/spec/unit/axiom/adapter/arango/visitor/for/summarization/root_spec.rb +53 -0
  106. data/spec/unit/axiom/adapter/arango/visitor/for/unary/extension/root_spec.rb +13 -0
  107. data/spec/unit/axiom/adapter/arango/visitor/for/unary/extension_spec.rb +13 -0
  108. data/spec/unit/axiom/adapter/arango/visitor/for/unary/limit/root_spec.rb +17 -0
  109. data/spec/unit/axiom/adapter/arango/visitor/for/unary/limit_spec.rb +17 -0
  110. data/spec/unit/axiom/adapter/arango/visitor/for/unary/offset/root_spec.rb +17 -0
  111. data/spec/unit/axiom/adapter/arango/visitor/for/unary/offset_spec.rb +17 -0
  112. data/spec/unit/axiom/adapter/arango/visitor/for/unary/order/root_spec.rb +14 -0
  113. data/spec/unit/axiom/adapter/arango/visitor/for/unary/order_spec.rb +14 -0
  114. data/spec/unit/axiom/adapter/arango/visitor/for/unary/projection/root_spec.rb +13 -0
  115. data/spec/unit/axiom/adapter/arango/visitor/for/unary/projection_spec.rb +13 -0
  116. data/spec/unit/axiom/adapter/arango/visitor/for/unary/rename/root_spec.rb +13 -0
  117. data/spec/unit/axiom/adapter/arango/visitor/for/unary/rename_spec.rb +13 -0
  118. data/spec/unit/axiom/adapter/arango/visitor/for/unary/restriction/root_spec.rb +14 -0
  119. data/spec/unit/axiom/adapter/arango/visitor/for/unary/restriction_spec.rb +14 -0
  120. data/spec/unit/axiom/adapter/arango/visitor/header/root_spec.rb +12 -0
  121. data/spec/unit/axiom/adapter/arango/visitor/literal/root_spec.rb +10 -0
  122. data/spec/unit/axiom/adapter/arango/visitor/static/root_spec.rb +19 -0
  123. data/spec/unit/axiom/adapter/arango/visitor/visit_spec.rb +52 -0
  124. data/spec/unit/axiom/adapter/arango/visitor/visitor_spec.rb +39 -0
  125. metadata +379 -0
@@ -0,0 +1,4 @@
1
+ /Gemfile.lock
2
+ /tmp
3
+ /.bundle
4
+ /vendor
data/.rspec ADDED
@@ -0,0 +1,5 @@
1
+ --color
2
+ --format progress
3
+ --profile
4
+ --order random
5
+ --fail-fast
@@ -0,0 +1,25 @@
1
+ language: ruby
2
+ before_script: spec/setup/arangodb.sh
3
+ script: 'bundle exec rake ci'
4
+ rvm:
5
+ - ree
6
+ - 1.8.7
7
+ - 1.9.2
8
+ - 1.9.3
9
+ - 2.0.0
10
+ - ruby-head
11
+ - jruby-18mode
12
+ - jruby-19mode
13
+ - jruby-head
14
+ - rbx-18mode
15
+ matrix:
16
+ allow_failures:
17
+ - rvm: 1.8.7
18
+ - rvm: ree
19
+ - rvm: rbx-18mode
20
+ - rvm: jruby-18mode
21
+ - rvm: rbx-19mode
22
+ notifications:
23
+ irc: "irc.freenode.org#datamapper"
24
+ email:
25
+ - mbj@seonic.net
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'axiom-fuzzer', :git => 'https://github.com/mbj/axiom-fuzzer.git'
6
+ gem 'axiom-sexp', :git => 'https://github.com/mbj/axiom-sexp.git'
7
+
8
+ gem 'devtools', :git => 'https://github.com/datamapper/devtools.git'
9
+ eval File.read('Gemfile.devtools')
@@ -0,0 +1,57 @@
1
+ # encoding: utf-8
2
+
3
+ group :development do
4
+ gem 'rake', '~> 10.0.4'
5
+ gem 'rspec', '~> 2.13.0'
6
+ gem 'yard', '~> 0.8.5.2'
7
+ end
8
+
9
+ group :yard do
10
+ gem 'kramdown', '~> 1.0.1'
11
+ end
12
+
13
+ group :guard do
14
+ gem 'guard', '~> 1.7.0'
15
+ gem 'guard-bundler', '~> 1.0.0'
16
+ gem 'guard-rspec', '~> 2.5.2'
17
+
18
+ # file system change event handling
19
+ gem 'listen', '~> 0.7.3'
20
+ gem 'rb-fchange', '~> 0.0.6', :require => false
21
+ gem 'rb-fsevent', '~> 0.9.3', :require => false
22
+ gem 'rb-inotify', '~> 0.9.0', :require => false
23
+
24
+ # notification handling
25
+ gem 'libnotify', '~> 0.8.0', :require => false
26
+ gem 'rb-notifu', '~> 0.0.4', :require => false
27
+ gem 'terminal-notifier-guard', '~> 1.5.3', :require => false
28
+ end
29
+
30
+ group :metrics do
31
+ gem 'backports', '~> 3.3', '>= 3.3.0'
32
+ gem 'coveralls', '~> 0.6.4'
33
+ gem 'flay', '~> 2.1.0'
34
+ gem 'flog', '~> 3.2.3'
35
+ gem 'reek', '~> 1.3.1', :git => 'https://github.com/troessner/reek.git'
36
+ gem 'simplecov', '~> 0.7.1'
37
+ gem 'yardstick', '~> 0.9.5'
38
+ gem 'yard-spellcheck', '~> 0.1.5'
39
+
40
+ platforms :mri_19, :rbx do
41
+ gem 'mutant', '~> 0.2.20'
42
+ end
43
+
44
+ platforms :rbx do
45
+ gem 'pelusa', '~> 0.2.2'
46
+ end
47
+ end
48
+
49
+ group :benchmarks do
50
+ gem 'rbench', '~> 0.2.3'
51
+ end
52
+
53
+ platform :jruby do
54
+ group :jruby do
55
+ gem 'jruby-openssl', '~> 0.8.5'
56
+ end
57
+ end
@@ -0,0 +1,18 @@
1
+ # encoding: utf-8
2
+
3
+ guard :bundler do
4
+ watch('Gemfile')
5
+ end
6
+
7
+ guard :rspec, :all_on_start => false, :all_after_pass => false do
8
+ # run all specs if the spec_helper or supporting files files are modified
9
+ watch('spec/spec_helper.rb') { 'spec/unit' }
10
+ watch(%r{\Aspec/(?:lib|support|shared)/.+\.rb\z}) { 'spec/unit' }
11
+
12
+ # run unit specs if associated lib code is modified
13
+ watch(%r{\Alib/(.+)\.rb\z}) { |m| Dir["spec/unit/#{m[1]}"] }
14
+ watch("lib/#{File.basename(File.expand_path('../', __FILE__))}.rb") { 'spec/unit' }
15
+
16
+ # run a spec if it is modified
17
+ watch(%r{\Aspec/(?:unit|integration)/.+_spec\.rb\z})
18
+ end
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2013 Markus Schirp
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.
@@ -0,0 +1,92 @@
1
+ axiom-arango-adapter
2
+ ======================
3
+
4
+ [![Build Status](https://secure.travis-ci.org/mbj/axiom-arango-adapter.png?branch=master)](http://travis-ci.org/mbj/axiom-arango-adapter)
5
+ [![Dependency Status](https://gemnasium.com/mbj/axiom-arango-adapter.png)](https://gemnasium.com/mbj/axiom-arango-adapter)
6
+ [![Code Climate](https://codeclimate.com/github/mbj/axiom-arango-adapter.png)](https://codeclimate.com/github/mbj/axiom-arango-adapter)
7
+
8
+ [ArangoDB](https://www.arangodb.org) adapter for [axiom](https://github.com/dkubb/axiom).
9
+
10
+ Installation
11
+ ------------
12
+
13
+ There is currently no gem release for `axiom-arango-adapter` as well as for some of the dependencies, so please use git sources:
14
+
15
+ ```ruby
16
+ gem 'aql', :git => 'https://github.com/mbj/aql.git'
17
+ gem 'axiom-arango-adapter', :git => 'https://github.com/mbj/axiom-arango-adapter.git'
18
+ ```
19
+
20
+ Examples
21
+ --------
22
+
23
+ Setup a gateway and connect it to ArangDB:
24
+
25
+ ```ruby
26
+ require 'axiom-arango-adapter'
27
+ require 'logger'
28
+
29
+ # Connect to ArangoDB
30
+ database = Ashikawa::Core::Database.new('http://localhost:8529')
31
+
32
+ # Save some people in the database
33
+ collection = database['people']
34
+
35
+ [
36
+ { :id => 1, :firstname => "Jon", :lastname => "Doe" },
37
+ { :id => 2, :firstname => "Sue", :lastname => "Doe" }
38
+ ].each do |document|
39
+ collection.create(document)
40
+ end
41
+
42
+ # Some logger to see AQL
43
+ logger = Logger.new($stderr, :debug)
44
+
45
+ # Instantiating adapter
46
+ adapter = Axiom::Adapter::Arango::Adapter.new(database, logger)
47
+
48
+ # Setting up a base relation
49
+ header = Axiom::Relation::Header.coerce([[:id, Integer], [:firstname, String], [:lastname, String]])
50
+ base = Axiom::Relation::Base.new(:people, header)
51
+
52
+ # Creating a gateway
53
+ gateway = adapter.gateway(base)
54
+
55
+ # Use the gateway with the examples from the axiom README, for example:
56
+ gateway.restrict { |r| r.firstname.eq("Sue") } # restricts to tuples where firstname is "Sue"
57
+ ```
58
+
59
+ You can find more examples in the [axiom README](https://github.com/dkubb/axiom/blob/master/README.md).
60
+
61
+ Fuzzer
62
+ ------
63
+
64
+ Axiom has a fuzzer to assist checking the correctness of the adapter and datastore. To run the fuzzer execute the following:
65
+
66
+ ```
67
+ bundle exec spec/fuzzer.rb
68
+ ```
69
+
70
+ Make sure you run an ArangoDB instance on localhost at the default port!
71
+
72
+ Credits
73
+ -------
74
+
75
+ * [Markus Schirp (mbj)](https://github.com/mbj) Author
76
+ * [triAGENS](https://github.com/triAGENS) for sponsoring this work!
77
+
78
+ Contributing
79
+ -------------
80
+
81
+ * Fork the project.
82
+ * Make your feature addition or bug fix.
83
+ * Add tests for it. This is important so I don't break it in a
84
+ future version unintentionally.
85
+ * Commit, do not mess with Rakefile or version
86
+ (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
87
+ * Send me a pull request. Bonus points for topic branches.
88
+
89
+ License
90
+ -------
91
+
92
+ This gem is published under the MIT license. See `LICENSE` file.
@@ -0,0 +1,2 @@
1
+ require 'devtools'
2
+ Devtools.init_rake_tasks
data/TODO ADDED
@@ -0,0 +1 @@
1
+ * Add gateway
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'axiom-arango-adapter'
5
+ s.version = '0.0.1'
6
+
7
+ s.authors = ['Markus Schirp']
8
+ s.email = 'mbj@seonic.net'
9
+ s.summary = 'The ArangoDB axiom adapter'
10
+ s.homepage = 'http://github.com/mbj/axiom-arango-adapter'
11
+ s.license = 'MIT'
12
+
13
+ s.files = `git ls-files`.split("\n")
14
+ s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
15
+ s.require_paths = %w(lib)
16
+ s.extra_rdoc_files = %w(README.md)
17
+
18
+ s.add_dependency('aql', '~> 0.0.1')
19
+ s.add_dependency('axiom', '~> 0.1.0')
20
+ s.add_dependency('ashikawa-core', '~> 0.7.1')
21
+ s.add_dependency('adamantium', '~> 0.0.7')
22
+ s.add_dependency('equalizer', '~> 0.0.5')
23
+ s.add_dependency('abstract_type', '~> 0.0.5')
24
+ s.add_dependency('concord', '~> 0.0.1')
25
+ s.add_dependency('null_logger', '~> 0.0.1')
26
+ end
@@ -0,0 +1,3 @@
1
+ ---
2
+ threshold: 19
3
+ total_score: 255
@@ -0,0 +1,2 @@
1
+ ---
2
+ threshold: 12.1
@@ -0,0 +1,3 @@
1
+ ---
2
+ name: axiom-arango-adapter
3
+ namespace: Axiom::Adapter::Arango
@@ -0,0 +1,18 @@
1
+ ---
2
+ AbcMetricMethodCheck: { score: 11.0 }
3
+ AssignmentInConditionalCheck: { }
4
+ CaseMissingElseCheck: { }
5
+ ClassLineCountCheck: { line_count: 345 }
6
+ ClassNameCheck: { pattern: !ruby/regexp '/\A(?:[A-Z]+|[A-Z][a-z](?:[A-Z]?[a-z])+)\z/' }
7
+ ClassVariableCheck: { }
8
+ CyclomaticComplexityBlockCheck: { complexity: 2 }
9
+ CyclomaticComplexityMethodCheck: { complexity: 4 }
10
+ EmptyRescueBodyCheck: { }
11
+ ForLoopCheck: { }
12
+ # TODO: decrease line_count to 5 to 10
13
+ MethodLineCountCheck: { line_count: 14 }
14
+ MethodNameCheck: { pattern: !ruby/regexp '/\A(?:[a-z\d](?:_?[a-z\d])+[?!=]?|\[\]=?|==|<=>|[+*&|-])\z/' }
15
+ ModuleLineCountCheck: { line_count: 352 }
16
+ ModuleNameCheck: { pattern: !ruby/regexp '/\A(?:[A-Z]+|[A-Z][a-z](?:[A-Z]?[a-z])+)\z/' }
17
+ # TODO: decrease parameter_count to 2 or less
18
+ ParameterNumberCheck: { parameter_count: 3 }
@@ -0,0 +1,102 @@
1
+ ---
2
+ UnusedParameters:
3
+ exclude:
4
+ - Axiom::Adapter::Arango::Adapter#self.new # false postive
5
+ UncommunicativeParameterName:
6
+ accept: []
7
+ exclude: []
8
+ enabled: true
9
+ reject:
10
+ - !ruby/regexp /^.$/
11
+ - !ruby/regexp /[0-9]$/
12
+ - !ruby/regexp /[A-Z]/
13
+ LargeClass:
14
+ max_methods: 10
15
+ exclude:
16
+ - Axiom::Adapter::Arango::Gateway # 18 method and will be replaced with the shared gateway once ready
17
+ enabled: true
18
+ max_instance_variables: 2
19
+ UncommunicativeMethodName:
20
+ accept: []
21
+ exclude: []
22
+ enabled: true
23
+ reject:
24
+ - !ruby/regexp /^[a-z]$/
25
+ - !ruby/regexp /[0-9]$/
26
+ - !ruby/regexp /[A-Z]/
27
+ LongParameterList:
28
+ max_params: 2
29
+ exclude:
30
+ - Axiom::Adapter::Arango::Gateway#binary_operation # 3 paramters will be replaced with the shared gateway once ready
31
+ enabled: true
32
+ overrides: {}
33
+ FeatureEnvy:
34
+ exclude:
35
+ - Axiom::Adapter::Arango::Visitor::For::Unary::Order#direction # False positive
36
+ # All are from importing Gateway from axiom-do-adapter, the shared gateway will not have these issues
37
+ - Axiom::Adapter::Arango::Gateway#same_adapter?
38
+ - Axiom::Adapter::Arango::Gateway#gateway?
39
+ - Axiom::Adapter::Arango::Gateway#summarize_merge?
40
+ - Axiom::Adapter::Arango::Gateway#summarize_merge
41
+ enabled: true
42
+ ClassVariable:
43
+ exclude: []
44
+ enabled: true
45
+ BooleanParameter:
46
+ exclude: []
47
+ enabled: true
48
+ IrresponsibleModule:
49
+ exclude: []
50
+ enabled: true
51
+ UncommunicativeModuleName:
52
+ accept: []
53
+ exclude: []
54
+ enabled: true
55
+ reject:
56
+ - !ruby/regexp /^.$/
57
+ - !ruby/regexp /[0-9]$/
58
+ NestedIterators:
59
+ ignore_iterators: []
60
+ exclude: []
61
+ enabled: true
62
+ max_allowed_nesting: 1
63
+ LongMethod:
64
+ max_statements: 5
65
+ exclude: []
66
+ enabled: true
67
+ Duplication:
68
+ allow_calls: []
69
+ exclude: []
70
+ enabled: true
71
+ max_calls: 1
72
+ UtilityFunction:
73
+ max_helper_calls: 1
74
+ exclude: []
75
+ enabled: true
76
+ Attribute:
77
+ exclude: []
78
+ enabled: false
79
+ UncommunicativeVariableName:
80
+ accept: []
81
+ exclude: []
82
+ enabled: true
83
+ reject:
84
+ - !ruby/regexp /^.$/
85
+ - !ruby/regexp /[0-9]$/
86
+ - !ruby/regexp /[A-Z]/
87
+ SimulatedPolymorphism:
88
+ exclude: []
89
+ enabled: true
90
+ max_ifs: 1
91
+ DataClump:
92
+ exclude: []
93
+ enabled: true
94
+ max_copies: 1
95
+ min_clump_size: 3
96
+ ControlCouple:
97
+ exclude: []
98
+ enabled: true
99
+ LongYieldList:
100
+ max_params: 1
101
+ exclude: []
102
+ enabled: true
@@ -0,0 +1,2 @@
1
+ ---
2
+ threshold: 100
@@ -0,0 +1,2 @@
1
+ require 'axiom'
2
+ require 'axiom/adapter/arango'
@@ -0,0 +1,40 @@
1
+ require 'axiom'
2
+ require 'aql'
3
+ require 'concord'
4
+ require 'ashikawa-core'
5
+ require 'null_logger'
6
+
7
+ module Axiom
8
+ # Namespace for axiom adapters
9
+ module Adapter
10
+ # Namespace for ArangoDB adapter
11
+ module Arango
12
+ end
13
+ end
14
+ end
15
+
16
+ require 'axiom/adapter/arango/adapter'
17
+ require 'axiom/adapter/arango/gateway'
18
+ require 'axiom/adapter/arango/reader'
19
+ require 'axiom/adapter/arango/visitor'
20
+ require 'axiom/adapter/arango/visitor/function'
21
+ require 'axiom/adapter/arango/visitor/literal'
22
+ require 'axiom/adapter/arango/visitor/binary'
23
+ require 'axiom/adapter/arango/visitor/header'
24
+ require 'axiom/adapter/arango/visitor/attribute'
25
+ require 'axiom/adapter/arango/visitor/reverse'
26
+ require 'axiom/adapter/arango/visitor/aggregate'
27
+ require 'axiom/adapter/arango/visitor/for'
28
+ require 'axiom/adapter/arango/visitor/for/base'
29
+ require 'axiom/adapter/arango/visitor/for/summarization'
30
+ require 'axiom/adapter/arango/visitor/for/unary'
31
+ require 'axiom/adapter/arango/visitor/for/unary/extension'
32
+ require 'axiom/adapter/arango/visitor/for/unary/projection'
33
+ require 'axiom/adapter/arango/visitor/for/unary/rename'
34
+ require 'axiom/adapter/arango/visitor/for/unary/restriction'
35
+ require 'axiom/adapter/arango/visitor/for/unary/order'
36
+ require 'axiom/adapter/arango/visitor/for/unary/limit'
37
+ require 'axiom/adapter/arango/visitor/for/unary/offset'
38
+ require 'axiom/adapter/arango/visitor/for/binary'
39
+ require 'axiom/adapter/arango/visitor/for/binary/join'
40
+ require 'axiom/adapter/arango/visitor/for/binary/product'