neo4j_client 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,16 @@
1
+
2
+ # The top-level PG namespace.
3
+ module Neo4jClient
4
+ ### Convenience alias for PG::Connection.new.
5
+ def self::connect(config={})
6
+ return Neo4jClient::Connection.new( config )
7
+ end
8
+
9
+
10
+ #require 'neoconn/exceptions'
11
+ #require 'pg/constants'
12
+ require 'neo4j_client/connection'
13
+ #require 'pg/result'
14
+
15
+ end # module
16
+
@@ -0,0 +1,88 @@
1
+ require 'httparty'
2
+ require 'json'
3
+
4
+ Neo4jClient
5
+
6
+
7
+ class Neo4jClient::Connection
8
+
9
+ @connection_defaults =
10
+ {
11
+ :ssl => false,
12
+ :host =>"localhost",
13
+ :port => 7474,
14
+ :path => "/db/data",
15
+ :authentication => nil,
16
+ :username => nil,
17
+ :password => nil
18
+ }
19
+
20
+ #exposes connection_defaults instance variable as if a class variable
21
+ def self.connection_defaults
22
+ @connection_defaults
23
+ end
24
+
25
+ def initialize(config={})
26
+ set_connection_settings(config)
27
+
28
+ begin
29
+ set_server_settings
30
+
31
+ rescue StandardError => err
32
+ puts "Error: #{err}"
33
+ end
34
+ end
35
+
36
+ def exec(query, parameters = {})
37
+ query = {
38
+ :body => {
39
+ :query => query,
40
+ :params => parameters
41
+ }.to_json,
42
+ :headers => {'Accept' => 'application/json;stream=true'}
43
+ }
44
+
45
+ puts Neo4jClient::Connection.post(@server_settings["cypher"], query[:body],query[:headers])
46
+ # puts self.rest_url + query
47
+ #response = JSON.parse HTTParty.get(self.rest_url+ "node/"+query.to_s).response.body
48
+ #response["data"]
49
+ end
50
+
51
+ def set_connection_settings(config)
52
+ @connection_settings = Marshal.load(Marshal.dump(Neo4jClient::Connection.connection_defaults))
53
+ config = Hash[config.map { |k,v| [k.to_sym, v] }]
54
+ @connection_settings.merge! config
55
+ end
56
+
57
+ def set_server_settings
58
+ @server_settings= get_service_root
59
+ end
60
+
61
+ def get_rest_url
62
+ c = @connection_settings
63
+
64
+ c[:ssl]?"https":"http" +
65
+ "://#{c[:host]}:#{c[:port]}#{c[:path]}/"
66
+ end
67
+
68
+
69
+
70
+
71
+ def get_service_root
72
+ Neo4jClient::Connection.get(self.get_rest_url)
73
+ end
74
+
75
+ def self.get(url)
76
+ JSON.parse HTTParty.get(url).response.body
77
+ end
78
+
79
+ def self.post(url, data, headers)
80
+ puts url
81
+ puts headers
82
+ puts data
83
+ "success"
84
+ end
85
+
86
+
87
+
88
+ end
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: neo4j_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Matt Magnusson
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2010-06-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httparty
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: json
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: Connects to a Neo4J database using the REST interface but
47
+ executes queries only using cypher
48
+ email: magnusson3@yahoo.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - lib/neo4j_client.rb
54
+ - lib/neo4j_client/connection.rb
55
+ homepage:
56
+ licenses: []
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ requirements: []
74
+ rubyforge_project:
75
+ rubygems_version: 1.8.24
76
+ signing_key:
77
+ specification_version: 3
78
+ summary: Neo4jClient
79
+ test_files: []