diff --git a/CHANGELOG.md b/CHANGELOG.md index c67efbbd..2ef1f210 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,12 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Removed httparty dependency which is no longer used (thanks isaacsanders / see #257) +## [6.1.4] - 05-12-2016 + +### Added + +- `detach_delete` method for `Query` API for `DETACH DELETE` clause introduced in Neo4j 2.3 + ## [6.1.3] - 04-28-2016 ### Fixed diff --git a/lib/neo4j-core/query.rb b/lib/neo4j-core/query.rb index 6d83ce33..7200b6ee 100644 --- a/lib/neo4j-core/query.rb +++ b/lib/neo4j-core/query.rb @@ -154,7 +154,11 @@ def inspect # DELETE clause # @return [Query] - METHODS = %w(start match optional_match using where create create_unique merge set on_create_set on_match_set remove unwind delete with return order skip limit) + # @method detach_delete *args + # DETACH DELETE clause + # @return [Query] + + METHODS = %w(start match optional_match using where create create_unique merge set on_create_set on_match_set remove unwind delete detach_delete with return order skip limit) BREAK_METHODS = %(with) CLAUSIFY_CLAUSE = proc { |method| const_get(method.to_s.split('_').map(&:capitalize).join + 'Clause') } diff --git a/lib/neo4j-core/query_clauses.rb b/lib/neo4j-core/query_clauses.rb index 910a9e76..dfd6090b 100644 --- a/lib/neo4j-core/query_clauses.rb +++ b/lib/neo4j-core/query_clauses.rb @@ -487,6 +487,10 @@ def clause_color end end + class DetachDeleteClause < DeleteClause + KEYWORD = 'DETACH DELETE' + end + class OrderClause < Clause KEYWORD = 'ORDER BY' diff --git a/lib/neo4j-core/version.rb b/lib/neo4j-core/version.rb index cdecbceb..17b911cc 100644 --- a/lib/neo4j-core/version.rb +++ b/lib/neo4j-core/version.rb @@ -1,5 +1,5 @@ module Neo4j module Core - VERSION = '6.1.3' + VERSION = '6.1.4' end end diff --git a/spec/neo4j-core/unit/query_spec.rb b/spec/neo4j-core/unit/query_spec.rb index 25a5d75d..15ba9c61 100644 --- a/spec/neo4j-core/unit/query_spec.rb +++ b/spec/neo4j-core/unit/query_spec.rb @@ -749,6 +749,26 @@ def self.it_generates(cypher, params = {}) end end + # DETACH DELETE + + describe '#delete' do + describe ".detach_delete('n')" do + it_generates 'DETACH DELETE n' + end + + describe '.detach_delete(:n)' do + it_generates 'DETACH DELETE n' + end + + describe ".detach_delete('n', :o)" do + it_generates 'DETACH DELETE n, o' + end + + describe ".detach_delete(['n', :o])" do + it_generates 'DETACH DELETE n, o' + end + end + # SET describe '#set_props' do