aql 0.0.1

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 (96) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/.rspec +1 -0
  4. data/.travis.yml +18 -0
  5. data/Gemfile +6 -0
  6. data/Gemfile.devtools +64 -0
  7. data/Guardfile +18 -0
  8. data/LICENSE +20 -0
  9. data/README.md +86 -0
  10. data/Rakefile +2 -0
  11. data/TODO +1 -0
  12. data/aql.gemspec +23 -0
  13. data/config/flay.yml +3 -0
  14. data/config/flog.yml +2 -0
  15. data/config/mutant.yml +3 -0
  16. data/config/roodi.yml +18 -0
  17. data/config/site.reek +100 -0
  18. data/config/yardstick.yml +2 -0
  19. data/examples/aql.rb +31 -0
  20. data/lib/aql.rb +62 -0
  21. data/lib/aql/buffer.rb +129 -0
  22. data/lib/aql/constants.rb +19 -0
  23. data/lib/aql/node.rb +45 -0
  24. data/lib/aql/node/attribute.rb +25 -0
  25. data/lib/aql/node/block.rb +28 -0
  26. data/lib/aql/node/call.rb +83 -0
  27. data/lib/aql/node/literal.rb +48 -0
  28. data/lib/aql/node/literal/composed.rb +10 -0
  29. data/lib/aql/node/literal/composed/document.rb +59 -0
  30. data/lib/aql/node/literal/composed/list.rb +42 -0
  31. data/lib/aql/node/literal/primitive.rb +10 -0
  32. data/lib/aql/node/literal/primitive/number.rb +28 -0
  33. data/lib/aql/node/literal/primitive/string.rb +27 -0
  34. data/lib/aql/node/literal/singleton.rb +51 -0
  35. data/lib/aql/node/name.rb +31 -0
  36. data/lib/aql/node/null.rb +21 -0
  37. data/lib/aql/node/operation.rb +20 -0
  38. data/lib/aql/node/operation/binary.rb +33 -0
  39. data/lib/aql/node/operation/for.rb +77 -0
  40. data/lib/aql/node/operation/limit.rb +42 -0
  41. data/lib/aql/node/operation/nary.rb +57 -0
  42. data/lib/aql/node/operation/unary.rb +75 -0
  43. data/lib/aql/node/operator.rb +20 -0
  44. data/lib/aql/node/operator/assignment.rb +28 -0
  45. data/lib/aql/node/operator/binary.rb +92 -0
  46. data/lib/aql/node/operator/nary.rb +48 -0
  47. data/lib/aql/node/operator/ternary.rb +30 -0
  48. data/lib/aql/node/operator/unary.rb +39 -0
  49. data/spec/shared/aql_behavior.rb +7 -0
  50. data/spec/spec_helper.rb +11 -0
  51. data/spec/support/aql_helper.rb +12 -0
  52. data/spec/unit/aql/buffer/append_spec.rb +59 -0
  53. data/spec/unit/aql/buffer/binary_spec.rb +22 -0
  54. data/spec/unit/aql/buffer/class_methods/utf8_encode_spec.rb +21 -0
  55. data/spec/unit/aql/buffer/content_spec.rb +24 -0
  56. data/spec/unit/aql/buffer/delimited_spec.rb +31 -0
  57. data/spec/unit/aql/buffer/parentheses_spec.rb +33 -0
  58. data/spec/unit/aql/buffer/wrap_delimited_spec.rb +42 -0
  59. data/spec/unit/aql/class_methods/literal_node_spec.rb +15 -0
  60. data/spec/unit/aql/class_methods/name_node_spec.rb +19 -0
  61. data/spec/unit/aql/node/attribute/aql_spec.rb +22 -0
  62. data/spec/unit/aql/node/block/aql_spec.rb +28 -0
  63. data/spec/unit/aql/node/call/aql_spec.rb +39 -0
  64. data/spec/unit/aql/node/literal/class_methods/build_spec.rb +139 -0
  65. data/spec/unit/aql/node/literal/class_methods/construct_spec.rb +16 -0
  66. data/spec/unit/aql/node/literal/class_methods/handle_spec.rb +22 -0
  67. data/spec/unit/aql/node/literal/composed/document/aql_spec.rb +32 -0
  68. data/spec/unit/aql/node/literal/composed/document/attribute/aql_spec.rb +15 -0
  69. data/spec/unit/aql/node/literal/composed/document/class_methods/construct_spec.rb +24 -0
  70. data/spec/unit/aql/node/literal/composed/list/aql_spec.rb +20 -0
  71. data/spec/unit/aql/node/literal/composed/list/class_methods/construct_spec.rb +37 -0
  72. data/spec/unit/aql/node/literal/primitive/number/aql_spec.rb +23 -0
  73. data/spec/unit/aql/node/literal/primitive/string/aql_spec.rb +21 -0
  74. data/spec/unit/aql/node/literal/singleton/aql_spec.rb +14 -0
  75. data/spec/unit/aql/node/literal/singleton/class_methods/construct_spec.rb +30 -0
  76. data/spec/unit/aql/node/name/aql_spec.rb +33 -0
  77. data/spec/unit/aql/node/null/aql_spec.rb +7 -0
  78. data/spec/unit/aql/node/operation/binary/let/aql_spec.rb +10 -0
  79. data/spec/unit/aql/node/operation/for/aql_spec.rb +18 -0
  80. data/spec/unit/aql/node/operation/keyword_spec.rb +16 -0
  81. data/spec/unit/aql/node/operation/limit/aql_spec.rb +19 -0
  82. data/spec/unit/aql/node/operation/nary/aql_spec.rb +16 -0
  83. data/spec/unit/aql/node/operation/nary/collect/into/aql_spec.rb +11 -0
  84. data/spec/unit/aql/node/operation/nary/sort/aql_spec.rb +22 -0
  85. data/spec/unit/aql/node/operation/unary/aql_spec.rb +12 -0
  86. data/spec/unit/aql/node/operation/unary/direction/aql_spec.rb +14 -0
  87. data/spec/unit/aql/node/operation/unary/filter/aql_spec.rb +20 -0
  88. data/spec/unit/aql/node/operation/unary/return/aql_spec.rb +17 -0
  89. data/spec/unit/aql/node/operator/assignment/aql_spec.rb +10 -0
  90. data/spec/unit/aql/node/operator/binary/aql_spec.rb +15 -0
  91. data/spec/unit/aql/node/operator/nary/aql_spec.rb +31 -0
  92. data/spec/unit/aql/node/operator/operator_spec.rb +18 -0
  93. data/spec/unit/aql/node/operator/ternary/aql_spec.rb +12 -0
  94. data/spec/unit/aql/node/operator/unary/aql_spec.rb +12 -0
  95. data/spec/unit/aql/node/visit_spec.rb +27 -0
  96. metadata +262 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 831cd3ea9ec7a3ae864fa6f3579481602b4f323a
4
+ data.tar.gz: ddfb790665d03384c0defee6d89f40114feed595
5
+ SHA512:
6
+ metadata.gz: 61895ff8f2d104ac0d092a0a236d6926be791585f0aec9592dfd70d1b50e6dab80bebd635782f5692171194e77d40ddfb1a103a57569848bb3c43736505e2e89
7
+ data.tar.gz: c7afee1e4caed51811e269d4af0674e50af5f1eae56772b79fed0eb4d847826f896b2289fc8bf8c7dc1113951fec8170f293a813cae84685ea429676e52a10e6
@@ -0,0 +1,4 @@
1
+ /Gemfile.lock
2
+ /tmp
3
+ /.bundle
4
+ /vendor
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,18 @@
1
+ language: ruby
2
+ script: 'bundle exec rake ci'
3
+ rvm:
4
+ - ree
5
+ - 1.8.7
6
+ - 1.9.2
7
+ - 1.9.3
8
+ - 2.0.0
9
+ - ruby-head
10
+ - jruby-18mode
11
+ - jruby-19mode
12
+ - jruby-head
13
+ - rbx-18mode
14
+ - rbx-19mode
15
+ notifications:
16
+ irc: "irc.freenode.org#datamapper"
17
+ email:
18
+ - mbj@seonic.net
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem 'devtools', :git => 'https://github.com/datamapper/devtools.git'
6
+ eval File.read('Gemfile.devtools')
@@ -0,0 +1,64 @@
1
+ # encoding: utf-8
2
+
3
+ group :development do
4
+ gem 'rake', '~> 10.0.3'
5
+ gem 'rspec', '~> 2.13.0'
6
+ gem 'yard', '~> 0.8.5'
7
+ end
8
+
9
+ group :yard do
10
+ gem 'kramdown', '~> 0.14.2'
11
+ end
12
+
13
+ group :guard do
14
+ gem 'guard', '~> 1.6.2'
15
+ gem 'guard-bundler', '~> 1.0.0'
16
+ gem 'guard-rspec', '~> 2.4.1'
17
+
18
+ # file system change event handling
19
+ gem 'rb-fchange', '~> 0.0.6', :require => false
20
+ gem 'rb-fsevent', '~> 0.9.3', :require => false
21
+ gem 'rb-inotify', '~> 0.9.0', :require => false
22
+
23
+ gem 'listen', '~> 0.7.3'
24
+
25
+ # notification handling
26
+ gem 'libnotify', '~> 0.8.0', :require => false
27
+ gem 'rb-notifu', '~> 0.0.4', :require => false
28
+ gem 'terminal-notifier-guard', '~> 1.5.3', :require => false
29
+ end
30
+
31
+ group :metrics do
32
+ gem 'flay', '~> 2.1.0'
33
+ gem 'flog', '~> 3.2.2'
34
+ gem 'reek', '~> 1.3.1'
35
+ gem 'metric_fu-roodi', '~> 2.2.1'
36
+ gem 'yardstick', '~> 0.9.4'
37
+
38
+ platforms :ruby_18, :ruby_19 do
39
+ # this indirectly depends on ffi which does not build on ruby-head
40
+ gem 'yard-spellcheck', '~> 0.1.5'
41
+ end
42
+
43
+ platforms :mri_19, :rbx do
44
+ gem 'mutant', '~> 0.2.20'
45
+ end
46
+
47
+ platforms :mri_19 do
48
+ gem 'simplecov', '~> 0.7.1'
49
+ end
50
+
51
+ platforms :rbx do
52
+ gem 'pelusa', '~> 0.2.2'
53
+ end
54
+ end
55
+
56
+ group :benchmarks do
57
+ gem 'rbench', '~> 0.2.3'
58
+ end
59
+
60
+ platform :jruby do
61
+ group :jruby do
62
+ gem 'jruby-openssl', '~> 0.8.2'
63
+ end
64
+ 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,86 @@
1
+ AQL
2
+ ===
3
+
4
+ [![Build Status](https://secure.travis-ci.org/mbj/aql.png?branch=master)](http://travis-ci.org/mbj/aql)
5
+ [![Dependency Status](https://gemnasium.com/mbj/aql.png)](https://gemnasium.com/mbj/aql)
6
+ [![Code Climate](https://codeclimate.com/github/mbj/aql.png)](https://codeclimate.com/github/mbj/aql)
7
+
8
+ Generator for the ArangoDB Query Language [AQL](http://www.arangodb.org/manuals/current/Aql.html) in Ruby. It is used as a backend for [axiom-arango-adapter](https://github.com/mbj/axiom-arango-adapter).
9
+
10
+ Using AQL
11
+ ---------
12
+
13
+ There is currently no stable public API.
14
+
15
+ Installation
16
+ ------------
17
+
18
+ There is currently no gem release. Use git source in your Gemfile:
19
+
20
+ ```ruby
21
+ gem 'aql', :git => 'https://github.com/mbj/aql'
22
+ ```
23
+
24
+ Or use ```:github => 'mbj/aql'``` if you prefer unencrypted protocols.
25
+
26
+ Examples
27
+ --------
28
+
29
+ This gem does not have a public API. Please do not use it as a way to generate AQL statements by hand - this gem is not intended for this purpose. Instead write a library that uses this gem to generate AQL. Just to make it easier for you to get into the code, here is an example on how to generate a simple AQL statement:
30
+
31
+ ```ruby
32
+ require 'aql'
33
+
34
+ include AQL
35
+
36
+ person = Node::Name.new('person')
37
+ firstname = Node::Name.new('firstname')
38
+ lastname = Node::Name.new('lastname')
39
+
40
+ person_firstname = Node::Attribute.new(person, firstname)
41
+
42
+ node = Node::Operation::For.new(
43
+ person,
44
+ Node::Name.new('people'),
45
+ Node::Block.new(
46
+ [
47
+ Node::Operation::Unary::Filter.new(
48
+ Node::Operator::Binary::Equality.new(person_firstname, Node::Literal::Primitive::String.new('Markus'))
49
+ ),
50
+ Node::Operation::Unary::Return.new(
51
+ Node::Literal::Primitive::Composed::Document.new([
52
+ Node::Literal::Composed::Document::Attribute.new(
53
+ person_firstname,
54
+ Node::Attribute.new(person, Node::Name.new('lastname'))
55
+ )
56
+ ])
57
+ )
58
+ ]
59
+ )
60
+ )
61
+
62
+ puts node.aql
63
+ #=> "FOR `person` IN `people` FILTER (`person`.`firstname` == "Markus") RETURN {`person`.`firstname`: `person`.`lastname`}"
64
+ ```
65
+
66
+ Credits
67
+ -------
68
+
69
+ * [Markus Schirp (mbj)](https://github.com/mbj) Author
70
+ * [triAGENS](https://github.com/triAGENS) For sponsoring this work!
71
+
72
+ Contributing
73
+ -------------
74
+
75
+ * Fork the project.
76
+ * Make your feature addition or bug fix.
77
+ * Add tests for it. This is important so I don't break it in a
78
+ future version unintentionally.
79
+ * Commit, do not mess with Rakefile or version
80
+ (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)
81
+ * Send me a pull request. Bonus points for topic branches.
82
+
83
+ License
84
+ -------
85
+
86
+ 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
+ * Limit numeric emitter to values that fit into IEEE 754 64bit
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'aql'
5
+ s.version = '0.0.1'
6
+
7
+ s.authors = ['Markus Schirp']
8
+ s.email = 'mbj@seonic.net'
9
+ s.summary = 'The ArangoDB AQL AST. Intended for query generation.'
10
+ s.homepage = 'http://github.com/mbj/aql'
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('backports', [ '~> 3.0', '>= 3.0.3' ])
19
+ s.add_dependency('adamantium', '~> 0.0.7')
20
+ s.add_dependency('equalizer', '~> 0.0.5')
21
+ s.add_dependency('abstract_type', '~> 0.0.5')
22
+ s.add_dependency('concord', '~> 0.0.3')
23
+ end
@@ -0,0 +1,3 @@
1
+ ---
2
+ threshold: 11
3
+ total_score: 103
@@ -0,0 +1,2 @@
1
+ ---
2
+ threshold: 9.8
@@ -0,0 +1,3 @@
1
+ ---
2
+ name: aql
3
+ namespace: AQL
@@ -0,0 +1,18 @@
1
+ ---
2
+ AbcMetricMethodCheck: { score: 11.0 }
3
+ AssignmentInConditionalCheck: { }
4
+ CaseMissingElseCheck: { }
5
+ ClassLineCountCheck: { line_count: 293 }
6
+ ClassNameCheck: { pattern: !ruby/regexp '/\A(?:[A-Z]+|Or|In|[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: 295 }
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,100 @@
1
+ ---
2
+ UnusedParameters:
3
+ exclude:
4
+ - AQL::Node#emit
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
+ enabled: true
17
+ max_instance_variables: 2
18
+ UncommunicativeMethodName:
19
+ accept: []
20
+ exclude: []
21
+ enabled: true
22
+ reject:
23
+ - !ruby/regexp /^[a-z]$/
24
+ - !ruby/regexp /[0-9]$/
25
+ - !ruby/regexp /[A-Z]/
26
+ LongParameterList:
27
+ max_params: 2
28
+ exclude:
29
+ - AQL::Buffer#wrap_delimited # 3 params
30
+ - AQL::Buffer#binary # 3 params
31
+ enabled: true
32
+ overrides: {}
33
+ FeatureEnvy:
34
+ exclude:
35
+ - AQL::Node::Block#emit # Definitive a false positive
36
+ - AQL::Node::Call#for_argument? # Definitive a false positive
37
+ enabled: true
38
+ ClassVariable:
39
+ exclude: []
40
+ enabled: true
41
+ BooleanParameter:
42
+ exclude: []
43
+ enabled: true
44
+ IrresponsibleModule:
45
+ exclude: []
46
+ enabled: true
47
+ UncommunicativeModuleName:
48
+ accept: []
49
+ exclude: []
50
+ enabled: true
51
+ reject:
52
+ - !ruby/regexp /^.$/
53
+ - !ruby/regexp /[0-9]$/
54
+ NestedIterators:
55
+ ignore_iterators: []
56
+ exclude: []
57
+ enabled: true
58
+ max_allowed_nesting: 1
59
+ LongMethod:
60
+ max_statements: 5
61
+ exclude:
62
+ - AQL::Buffer#binary # 6 statements
63
+ - AQL::Node::Operation::For#emit # 6 statements
64
+ enabled: true
65
+ Duplication:
66
+ allow_calls: []
67
+ exclude: []
68
+ enabled: true
69
+ max_calls: 1
70
+ UtilityFunction:
71
+ max_helper_calls: 1
72
+ exclude: []
73
+ enabled: true
74
+ Attribute:
75
+ exclude: []
76
+ enabled: false
77
+ UncommunicativeVariableName:
78
+ accept: []
79
+ exclude: []
80
+ enabled: true
81
+ reject:
82
+ - !ruby/regexp /^.$/
83
+ - !ruby/regexp /[0-9]$/
84
+ - !ruby/regexp /[A-Z]/
85
+ SimulatedPolymorphism:
86
+ exclude: []
87
+ enabled: true
88
+ max_ifs: 1
89
+ DataClump:
90
+ exclude: []
91
+ enabled: true
92
+ max_copies: 1
93
+ min_clump_size: 3
94
+ ControlCouple:
95
+ exclude: []
96
+ enabled: true
97
+ LongYieldList:
98
+ max_params: 1
99
+ exclude: []
100
+ enabled: true
@@ -0,0 +1,2 @@
1
+ ---
2
+ threshold: 100
@@ -0,0 +1,31 @@
1
+ require 'aql'
2
+
3
+ include AQL
4
+
5
+ person = Node::Name.new('person')
6
+ firstname = Node::Name.new('firstname')
7
+ lastname = Node::Name.new('lastname')
8
+
9
+ person_firstname = Node::Attribute.new(person, firstname)
10
+
11
+ node = Node::Operation::For.new(
12
+ person,
13
+ Node::Name.new('people'),
14
+ Node::Block.new(
15
+ [
16
+ Node::Operation::Unary::Filter.new(
17
+ Node::Operator::Binary::Equality.new(person_firstname, Node::Literal::Primitive::String.new('Markus'))
18
+ ),
19
+ Node::Operation::Unary::Return.new(
20
+ Node::Literal::Primitive::Composed::Document.new([
21
+ Node::Literal::Composed::Document::Attribute.new(
22
+ person_firstname,
23
+ Node::Attribute.new(person, Node::Name.new('lastname'))
24
+ )
25
+ ])
26
+ )
27
+ ]
28
+ )
29
+ )
30
+
31
+ puts node.aql
@@ -0,0 +1,62 @@
1
+ require 'backports'
2
+ require 'abstract_type'
3
+ require 'adamantium'
4
+ require 'concord'
5
+
6
+ # Library namespace
7
+ module AQL
8
+
9
+ # Return AQL node for literal
10
+ #
11
+ # @param [Object] value
12
+ #
13
+ # @return [AQL::Node::Literal]
14
+ #
15
+ # @api private
16
+ #
17
+ def self.literal_node(value)
18
+ AQL::Node::Literal.build(value)
19
+ end
20
+
21
+ # Return AQL name node
22
+ #
23
+ # @param [#to_s] name
24
+ #
25
+ # @return [AQL::Node::Name]
26
+ #
27
+ # @api private
28
+ #
29
+ def self.name_node(name)
30
+ AQL::Node::Name.new(name.to_s)
31
+ end
32
+
33
+ end
34
+
35
+ require 'aql/buffer'
36
+ require 'aql/node'
37
+ require 'aql/constants'
38
+ require 'aql/node/name'
39
+ require 'aql/node/call'
40
+ require 'aql/node/null'
41
+ require 'aql/node/block'
42
+ require 'aql/node/attribute'
43
+ require 'aql/node/literal'
44
+ require 'aql/node/literal/singleton'
45
+ require 'aql/node/literal/primitive'
46
+ require 'aql/node/literal/primitive/string'
47
+ require 'aql/node/literal/primitive/number'
48
+ require 'aql/node/literal/composed'
49
+ require 'aql/node/literal/composed/document'
50
+ require 'aql/node/literal/composed/list'
51
+ require 'aql/node/operator'
52
+ require 'aql/node/operator/assignment'
53
+ require 'aql/node/operator/binary'
54
+ require 'aql/node/operator/unary'
55
+ require 'aql/node/operator/ternary'
56
+ require 'aql/node/operator/nary'
57
+ require 'aql/node/operation'
58
+ require 'aql/node/operation/unary'
59
+ require 'aql/node/operation/nary'
60
+ require 'aql/node/operation/binary'
61
+ require 'aql/node/operation/limit'
62
+ require 'aql/node/operation/for'