keymaker 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/Rakefile +1 -1
  2. data/keymaker.gemspec +5 -37
  3. data/lib/keymaker.rb +8 -5
  4. data/lib/keymaker/node.rb +69 -45
  5. data/lib/keymaker/parsers/cypher_response_parser.rb +25 -0
  6. data/lib/keymaker/serialization.rb +2 -1
  7. data/lib/keymaker/service.rb +4 -17
  8. data/spec/keymaker/node_spec.rb +92 -0
  9. data/spec/keymaker/requests/add_node_to_index_request_spec.rb +13 -13
  10. data/spec/keymaker/requests/batch_request_spec.rb +3 -56
  11. data/spec/keymaker/requests/create_node_request_spec.rb +15 -9
  12. data/spec/keymaker/requests/create_relationship_request_spec.rb +19 -11
  13. data/spec/keymaker/requests/execute_cypher_request_spec.rb +1 -1
  14. data/spec/keymaker/requests/get_relationship_types_request_spec.rb +3 -4
  15. data/spec/keymaker/requests/update_node_properties_request_spec.rb +1 -1
  16. data/spec/keymaker_spec.rb +38 -8
  17. data/spec/support/active_model_lint.rb +17 -0
  18. data/spec/support/keymaker.rb +1 -1
  19. metadata +8 -73
  20. data/spec/cassettes/Keymaker_AddNodeToIndexRequest/with_valid_options/returns_a_201_status_code.yml +0 -203
  21. data/spec/cassettes/Keymaker_AddNodeToIndexRequest/with_valid_options/returns_application/json.yml +0 -203
  22. data/spec/cassettes/Keymaker_AddNodeToIndexRequest/with_valid_options/returns_the_Neo4j_REST_API_starting_point_response_request.yml +0 -203
  23. data/spec/cassettes/Keymaker_BatchRequest/when_a_resource_is_not_found/raises_BatchRequestError.yml +0 -120
  24. data/spec/cassettes/Keymaker_BatchRequest/when_to_and_method_are_not_set/raises_BatchRequestError.yml +0 -106
  25. data/spec/cassettes/Keymaker_BatchRequest/with_valid_options/returns_a_200_status_code.yml +0 -129
  26. data/spec/cassettes/Keymaker_BatchRequest/with_valid_options/runs_the_commands_and_returns_their_respective_results.yml +0 -129
  27. data/spec/cassettes/Keymaker_CreateNodeRequest/returns_a_201_status_code.yml +0 -112
  28. data/spec/cassettes/Keymaker_CreateNodeRequest/returns_application/json.yml +0 -112
  29. data/spec/cassettes/Keymaker_CreateNodeRequest/with_properties/creates_a_node_with_the_given_properties.yml +0 -112
  30. data/spec/cassettes/Keymaker_CreateNodeRequest/without_properties/creates_an_empty_node.yml +0 -112
  31. data/spec/cassettes/Keymaker_CreateRelationshipRequest/with_invalid_options/raises_ClientError.yml +0 -201
  32. data/spec/cassettes/Keymaker_CreateRelationshipRequest/with_properties/creates_a_node_with_the_given_properties.yml +0 -233
  33. data/spec/cassettes/Keymaker_CreateRelationshipRequest/with_properties/returns_a_201_status_code.yml +0 -196
  34. data/spec/cassettes/Keymaker_CreateRelationshipRequest/with_properties/returns_application/json.yml +0 -196
  35. data/spec/cassettes/Keymaker_CreateRelationshipRequest/without_properties/creates_an_empty_relationship_of_type_birthed_.yml +0 -195
  36. data/spec/cassettes/Keymaker_DeleteRelationshipRequest/with_a_non-existent_relationship/raises_ResourceNotFound.yml +0 -191
  37. data/spec/cassettes/Keymaker_DeleteRelationshipRequest/with_an_existing_relationship/deletes_the_relationship.yml +0 -219
  38. data/spec/cassettes/Keymaker_ExecuteCypherRequest/with_a_valid_Cypher_Query/returns_a_200_status_code.yml +0 -111
  39. data/spec/cassettes/Keymaker_ExecuteCypherRequest/with_an_invalid_Cypher_Query/raises_ClientError.yml +0 -108
  40. data/spec/cassettes/Keymaker_ExecuteGremlinRequest/with_a_valid_Gremlin_Script/returns_a_200_status_code.yml +0 -98
  41. data/spec/cassettes/Keymaker_ExecuteGremlinRequest/with_an_invalid_Gremlin_Script/raises_ClientError.yml +0 -107
  42. data/spec/cassettes/Keymaker_GetNodeRequest/with_a_non-existent_node_id/raises_ResourceNotFound.yml +0 -101
  43. data/spec/cassettes/Keymaker_GetNodeRequest/with_an_empty_node_id/raises_ClientError.yml +0 -111
  44. data/spec/cassettes/Keymaker_GetRelationshipTypesRequest/with_existing_relationships/returns_a_unique_array_of_relationship_types.yml +0 -220
  45. data/spec/cassettes/Keymaker_ServiceRootRequest/returns_a_200_status_code.yml +0 -105
  46. data/spec/cassettes/Keymaker_ServiceRootRequest/returns_application/json.yml +0 -105
  47. data/spec/cassettes/Keymaker_ServiceRootRequest/returns_the_Neo4j_REST_API_starting_point_response_request.yml +0 -105
  48. data/spec/cassettes/Keymaker_TraversePathRequest/_traverse_path_properties/with_options/builds_the_query_properties_with_defaults.yml +0 -157
  49. data/spec/cassettes/Keymaker_TraversePathRequest/with_invalid_options/raise_a_ClientError.yml +0 -193
  50. data/spec/cassettes/Keymaker_TraversePathRequest/with_valid_options/returns_status_code_200.yml +0 -269
  51. data/spec/cassettes/Keymaker_UpdateNodePropertiesRequest/_node_properties/excludes_the_node_id.yml +0 -157
  52. data/spec/cassettes/Keymaker_UpdateNodePropertiesRequest/with_invalid_options/raises_a_ClientError.yml +0 -193
  53. data/spec/cassettes/Keymaker_UpdateNodePropertiesRequest/with_valid_options/returns_a_status_of_204.yml +0 -182
  54. data/spec/cassettes/Keymaker_UpdateNodePropertiesRequest/with_valid_options/updates_the_properties.yml +0 -214
@@ -1,112 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: http://localhost:7477/db/data/ext/GremlinPlugin/graphdb/execute_script
6
- body:
7
- encoding: UTF-8
8
- string: ! '{"script":"g.clear();g.V()"}'
9
- headers:
10
- Content-Type:
11
- - application/json
12
- response:
13
- status:
14
- code: 200
15
- message: !!null
16
- headers:
17
- content-length:
18
- - '3'
19
- content-encoding:
20
- - UTF-8
21
- content-type:
22
- - application/json
23
- access-control-allow-origin:
24
- - ! '*'
25
- connection:
26
- - close
27
- server:
28
- - Jetty(6.1.25)
29
- body:
30
- encoding: US-ASCII
31
- string: ! '[ ]'
32
- http_version: !!null
33
- recorded_at: Tue, 24 Jul 2012 21:06:39 GMT
34
- - request:
35
- method: delete
36
- uri: http://localhost:7477/db/data/index/node/users
37
- body:
38
- encoding: US-ASCII
39
- string: ''
40
- headers: {}
41
- response:
42
- status:
43
- code: 404
44
- message: !!null
45
- headers:
46
- content-length:
47
- - '422'
48
- content-encoding:
49
- - UTF-8
50
- content-type:
51
- - application/json
52
- access-control-allow-origin:
53
- - ! '*'
54
- connection:
55
- - close
56
- server:
57
- - Jetty(6.1.25)
58
- body:
59
- encoding: US-ASCII
60
- string: ! "{\n \"message\" : \"No node index named 'users'.\",\n \"exception\"
61
- : \"NotFoundException\",\n \"stacktrace\" : [ \"org.neo4j.server.rest.web.DatabaseActions.removeNodeIndex(DatabaseActions.java:420)\",
62
- \"org.neo4j.server.rest.web.RestfulGraphDatabase.deleteNodeIndex(RestfulGraphDatabase.java:729)\",
63
- \"java.lang.reflect.Method.invoke(Method.java:597)\", \"org.neo4j.server.statistic.StatisticFilter.doFilter(StatisticFilter.java:62)\"
64
- ]\n}"
65
- http_version: !!null
66
- recorded_at: Tue, 24 Jul 2012 21:06:39 GMT
67
- - request:
68
- method: post
69
- uri: http://localhost:7477/db/data/node
70
- body:
71
- encoding: UTF-8
72
- string: ! '{}'
73
- headers:
74
- Content-Type:
75
- - application/json
76
- response:
77
- status:
78
- code: 201
79
- message: !!null
80
- headers:
81
- content-length:
82
- - '1090'
83
- location:
84
- - http://localhost:7477/db/data/node/38
85
- content-encoding:
86
- - UTF-8
87
- content-type:
88
- - application/json
89
- access-control-allow-origin:
90
- - ! '*'
91
- connection:
92
- - close
93
- server:
94
- - Jetty(6.1.25)
95
- body:
96
- encoding: US-ASCII
97
- string: ! "{\n \"extensions\" : {\n },\n \"paged_traverse\" : \"http://localhost:7477/db/data/node/38/paged/traverse/{returnType}{?pageSize,leaseTime}\",\n
98
- \ \"outgoing_relationships\" : \"http://localhost:7477/db/data/node/38/relationships/out\",\n
99
- \ \"traverse\" : \"http://localhost:7477/db/data/node/38/traverse/{returnType}\",\n
100
- \ \"all_typed_relationships\" : \"http://localhost:7477/db/data/node/38/relationships/all/{-list|&|types}\",\n
101
- \ \"property\" : \"http://localhost:7477/db/data/node/38/properties/{key}\",\n
102
- \ \"all_relationships\" : \"http://localhost:7477/db/data/node/38/relationships/all\",\n
103
- \ \"self\" : \"http://localhost:7477/db/data/node/38\",\n \"properties\"
104
- : \"http://localhost:7477/db/data/node/38/properties\",\n \"outgoing_typed_relationships\"
105
- : \"http://localhost:7477/db/data/node/38/relationships/out/{-list|&|types}\",\n
106
- \ \"incoming_relationships\" : \"http://localhost:7477/db/data/node/38/relationships/in\",\n
107
- \ \"incoming_typed_relationships\" : \"http://localhost:7477/db/data/node/38/relationships/in/{-list|&|types}\",\n
108
- \ \"create_relationship\" : \"http://localhost:7477/db/data/node/38/relationships\",\n
109
- \ \"data\" : {\n }\n}"
110
- http_version: !!null
111
- recorded_at: Tue, 24 Jul 2012 21:06:39 GMT
112
- recorded_with: VCR 2.2.2
@@ -1,112 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: http://localhost:7477/db/data/ext/GremlinPlugin/graphdb/execute_script
6
- body:
7
- encoding: UTF-8
8
- string: ! '{"script":"g.clear();g.V()"}'
9
- headers:
10
- Content-Type:
11
- - application/json
12
- response:
13
- status:
14
- code: 200
15
- message: !!null
16
- headers:
17
- content-length:
18
- - '3'
19
- content-encoding:
20
- - UTF-8
21
- content-type:
22
- - application/json
23
- access-control-allow-origin:
24
- - ! '*'
25
- connection:
26
- - close
27
- server:
28
- - Jetty(6.1.25)
29
- body:
30
- encoding: US-ASCII
31
- string: ! '[ ]'
32
- http_version: !!null
33
- recorded_at: Tue, 24 Jul 2012 21:06:39 GMT
34
- - request:
35
- method: delete
36
- uri: http://localhost:7477/db/data/index/node/users
37
- body:
38
- encoding: US-ASCII
39
- string: ''
40
- headers: {}
41
- response:
42
- status:
43
- code: 404
44
- message: !!null
45
- headers:
46
- content-length:
47
- - '422'
48
- content-encoding:
49
- - UTF-8
50
- content-type:
51
- - application/json
52
- access-control-allow-origin:
53
- - ! '*'
54
- connection:
55
- - close
56
- server:
57
- - Jetty(6.1.25)
58
- body:
59
- encoding: US-ASCII
60
- string: ! "{\n \"message\" : \"No node index named 'users'.\",\n \"exception\"
61
- : \"NotFoundException\",\n \"stacktrace\" : [ \"org.neo4j.server.rest.web.DatabaseActions.removeNodeIndex(DatabaseActions.java:420)\",
62
- \"org.neo4j.server.rest.web.RestfulGraphDatabase.deleteNodeIndex(RestfulGraphDatabase.java:729)\",
63
- \"java.lang.reflect.Method.invoke(Method.java:597)\", \"org.neo4j.server.statistic.StatisticFilter.doFilter(StatisticFilter.java:62)\"
64
- ]\n}"
65
- http_version: !!null
66
- recorded_at: Tue, 24 Jul 2012 21:06:39 GMT
67
- - request:
68
- method: post
69
- uri: http://localhost:7477/db/data/node
70
- body:
71
- encoding: UTF-8
72
- string: ! '{}'
73
- headers:
74
- Content-Type:
75
- - application/json
76
- response:
77
- status:
78
- code: 201
79
- message: !!null
80
- headers:
81
- content-length:
82
- - '1090'
83
- location:
84
- - http://localhost:7477/db/data/node/39
85
- content-encoding:
86
- - UTF-8
87
- content-type:
88
- - application/json
89
- access-control-allow-origin:
90
- - ! '*'
91
- connection:
92
- - close
93
- server:
94
- - Jetty(6.1.25)
95
- body:
96
- encoding: US-ASCII
97
- string: ! "{\n \"extensions\" : {\n },\n \"paged_traverse\" : \"http://localhost:7477/db/data/node/39/paged/traverse/{returnType}{?pageSize,leaseTime}\",\n
98
- \ \"outgoing_relationships\" : \"http://localhost:7477/db/data/node/39/relationships/out\",\n
99
- \ \"traverse\" : \"http://localhost:7477/db/data/node/39/traverse/{returnType}\",\n
100
- \ \"all_typed_relationships\" : \"http://localhost:7477/db/data/node/39/relationships/all/{-list|&|types}\",\n
101
- \ \"property\" : \"http://localhost:7477/db/data/node/39/properties/{key}\",\n
102
- \ \"all_relationships\" : \"http://localhost:7477/db/data/node/39/relationships/all\",\n
103
- \ \"self\" : \"http://localhost:7477/db/data/node/39\",\n \"properties\"
104
- : \"http://localhost:7477/db/data/node/39/properties\",\n \"outgoing_typed_relationships\"
105
- : \"http://localhost:7477/db/data/node/39/relationships/out/{-list|&|types}\",\n
106
- \ \"incoming_relationships\" : \"http://localhost:7477/db/data/node/39/relationships/in\",\n
107
- \ \"incoming_typed_relationships\" : \"http://localhost:7477/db/data/node/39/relationships/in/{-list|&|types}\",\n
108
- \ \"create_relationship\" : \"http://localhost:7477/db/data/node/39/relationships\",\n
109
- \ \"data\" : {\n }\n}"
110
- http_version: !!null
111
- recorded_at: Tue, 24 Jul 2012 21:06:39 GMT
112
- recorded_with: VCR 2.2.2
@@ -1,112 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: http://localhost:7477/db/data/ext/GremlinPlugin/graphdb/execute_script
6
- body:
7
- encoding: UTF-8
8
- string: ! '{"script":"g.clear();g.V()"}'
9
- headers:
10
- Content-Type:
11
- - application/json
12
- response:
13
- status:
14
- code: 200
15
- message: !!null
16
- headers:
17
- content-length:
18
- - '3'
19
- content-encoding:
20
- - UTF-8
21
- content-type:
22
- - application/json
23
- access-control-allow-origin:
24
- - ! '*'
25
- connection:
26
- - close
27
- server:
28
- - Jetty(6.1.25)
29
- body:
30
- encoding: US-ASCII
31
- string: ! '[ ]'
32
- http_version: !!null
33
- recorded_at: Tue, 24 Jul 2012 21:06:40 GMT
34
- - request:
35
- method: delete
36
- uri: http://localhost:7477/db/data/index/node/users
37
- body:
38
- encoding: US-ASCII
39
- string: ''
40
- headers: {}
41
- response:
42
- status:
43
- code: 404
44
- message: !!null
45
- headers:
46
- content-length:
47
- - '422'
48
- content-encoding:
49
- - UTF-8
50
- content-type:
51
- - application/json
52
- access-control-allow-origin:
53
- - ! '*'
54
- connection:
55
- - close
56
- server:
57
- - Jetty(6.1.25)
58
- body:
59
- encoding: US-ASCII
60
- string: ! "{\n \"message\" : \"No node index named 'users'.\",\n \"exception\"
61
- : \"NotFoundException\",\n \"stacktrace\" : [ \"org.neo4j.server.rest.web.DatabaseActions.removeNodeIndex(DatabaseActions.java:420)\",
62
- \"org.neo4j.server.rest.web.RestfulGraphDatabase.deleteNodeIndex(RestfulGraphDatabase.java:729)\",
63
- \"java.lang.reflect.Method.invoke(Method.java:597)\", \"org.neo4j.server.statistic.StatisticFilter.doFilter(StatisticFilter.java:62)\"
64
- ]\n}"
65
- http_version: !!null
66
- recorded_at: Tue, 24 Jul 2012 21:06:40 GMT
67
- - request:
68
- method: post
69
- uri: http://localhost:7477/db/data/node
70
- body:
71
- encoding: UTF-8
72
- string: ! '{"name":"John Connor"}'
73
- headers:
74
- Content-Type:
75
- - application/json
76
- response:
77
- status:
78
- code: 201
79
- message: !!null
80
- headers:
81
- content-length:
82
- - '1117'
83
- location:
84
- - http://localhost:7477/db/data/node/40
85
- content-encoding:
86
- - UTF-8
87
- content-type:
88
- - application/json
89
- access-control-allow-origin:
90
- - ! '*'
91
- connection:
92
- - close
93
- server:
94
- - Jetty(6.1.25)
95
- body:
96
- encoding: US-ASCII
97
- string: ! "{\n \"extensions\" : {\n },\n \"paged_traverse\" : \"http://localhost:7477/db/data/node/40/paged/traverse/{returnType}{?pageSize,leaseTime}\",\n
98
- \ \"outgoing_relationships\" : \"http://localhost:7477/db/data/node/40/relationships/out\",\n
99
- \ \"traverse\" : \"http://localhost:7477/db/data/node/40/traverse/{returnType}\",\n
100
- \ \"all_typed_relationships\" : \"http://localhost:7477/db/data/node/40/relationships/all/{-list|&|types}\",\n
101
- \ \"property\" : \"http://localhost:7477/db/data/node/40/properties/{key}\",\n
102
- \ \"all_relationships\" : \"http://localhost:7477/db/data/node/40/relationships/all\",\n
103
- \ \"self\" : \"http://localhost:7477/db/data/node/40\",\n \"properties\"
104
- : \"http://localhost:7477/db/data/node/40/properties\",\n \"outgoing_typed_relationships\"
105
- : \"http://localhost:7477/db/data/node/40/relationships/out/{-list|&|types}\",\n
106
- \ \"incoming_relationships\" : \"http://localhost:7477/db/data/node/40/relationships/in\",\n
107
- \ \"incoming_typed_relationships\" : \"http://localhost:7477/db/data/node/40/relationships/in/{-list|&|types}\",\n
108
- \ \"create_relationship\" : \"http://localhost:7477/db/data/node/40/relationships\",\n
109
- \ \"data\" : {\n \"name\" : \"John Connor\"\n }\n}"
110
- http_version: !!null
111
- recorded_at: Tue, 24 Jul 2012 21:06:40 GMT
112
- recorded_with: VCR 2.2.2
@@ -1,112 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: http://localhost:7477/db/data/ext/GremlinPlugin/graphdb/execute_script
6
- body:
7
- encoding: UTF-8
8
- string: ! '{"script":"g.clear();g.V()"}'
9
- headers:
10
- Content-Type:
11
- - application/json
12
- response:
13
- status:
14
- code: 200
15
- message: !!null
16
- headers:
17
- content-length:
18
- - '3'
19
- content-encoding:
20
- - UTF-8
21
- content-type:
22
- - application/json
23
- access-control-allow-origin:
24
- - ! '*'
25
- connection:
26
- - close
27
- server:
28
- - Jetty(6.1.25)
29
- body:
30
- encoding: US-ASCII
31
- string: ! '[ ]'
32
- http_version: !!null
33
- recorded_at: Tue, 24 Jul 2012 21:06:40 GMT
34
- - request:
35
- method: delete
36
- uri: http://localhost:7477/db/data/index/node/users
37
- body:
38
- encoding: US-ASCII
39
- string: ''
40
- headers: {}
41
- response:
42
- status:
43
- code: 404
44
- message: !!null
45
- headers:
46
- content-length:
47
- - '422'
48
- content-encoding:
49
- - UTF-8
50
- content-type:
51
- - application/json
52
- access-control-allow-origin:
53
- - ! '*'
54
- connection:
55
- - close
56
- server:
57
- - Jetty(6.1.25)
58
- body:
59
- encoding: US-ASCII
60
- string: ! "{\n \"message\" : \"No node index named 'users'.\",\n \"exception\"
61
- : \"NotFoundException\",\n \"stacktrace\" : [ \"org.neo4j.server.rest.web.DatabaseActions.removeNodeIndex(DatabaseActions.java:420)\",
62
- \"org.neo4j.server.rest.web.RestfulGraphDatabase.deleteNodeIndex(RestfulGraphDatabase.java:729)\",
63
- \"java.lang.reflect.Method.invoke(Method.java:597)\", \"org.neo4j.server.statistic.StatisticFilter.doFilter(StatisticFilter.java:62)\"
64
- ]\n}"
65
- http_version: !!null
66
- recorded_at: Tue, 24 Jul 2012 21:06:40 GMT
67
- - request:
68
- method: post
69
- uri: http://localhost:7477/db/data/node
70
- body:
71
- encoding: UTF-8
72
- string: ! '{}'
73
- headers:
74
- Content-Type:
75
- - application/json
76
- response:
77
- status:
78
- code: 201
79
- message: !!null
80
- headers:
81
- content-length:
82
- - '1090'
83
- location:
84
- - http://localhost:7477/db/data/node/41
85
- content-encoding:
86
- - UTF-8
87
- content-type:
88
- - application/json
89
- access-control-allow-origin:
90
- - ! '*'
91
- connection:
92
- - close
93
- server:
94
- - Jetty(6.1.25)
95
- body:
96
- encoding: US-ASCII
97
- string: ! "{\n \"extensions\" : {\n },\n \"paged_traverse\" : \"http://localhost:7477/db/data/node/41/paged/traverse/{returnType}{?pageSize,leaseTime}\",\n
98
- \ \"outgoing_relationships\" : \"http://localhost:7477/db/data/node/41/relationships/out\",\n
99
- \ \"traverse\" : \"http://localhost:7477/db/data/node/41/traverse/{returnType}\",\n
100
- \ \"all_typed_relationships\" : \"http://localhost:7477/db/data/node/41/relationships/all/{-list|&|types}\",\n
101
- \ \"property\" : \"http://localhost:7477/db/data/node/41/properties/{key}\",\n
102
- \ \"all_relationships\" : \"http://localhost:7477/db/data/node/41/relationships/all\",\n
103
- \ \"self\" : \"http://localhost:7477/db/data/node/41\",\n \"properties\"
104
- : \"http://localhost:7477/db/data/node/41/properties\",\n \"outgoing_typed_relationships\"
105
- : \"http://localhost:7477/db/data/node/41/relationships/out/{-list|&|types}\",\n
106
- \ \"incoming_relationships\" : \"http://localhost:7477/db/data/node/41/relationships/in\",\n
107
- \ \"incoming_typed_relationships\" : \"http://localhost:7477/db/data/node/41/relationships/in/{-list|&|types}\",\n
108
- \ \"create_relationship\" : \"http://localhost:7477/db/data/node/41/relationships\",\n
109
- \ \"data\" : {\n }\n}"
110
- http_version: !!null
111
- recorded_at: Tue, 24 Jul 2012 21:06:40 GMT
112
- recorded_with: VCR 2.2.2