esnek 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/AUTHORS +0 -2
- data/CHANGES +3 -0
- data/Gemfile +0 -3
- data/README.rdoc +5 -10
- data/esnek.gemspec +0 -7
- data/lib/esnek/base.rb +14 -11
- data/lib/esnek/version.rb +1 -1
- data/test/base.rb +23 -15
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 7d749360bb64f84c76b7ac31b748185c32213ac8a14ae82cdf8b2292c7301e75
|
4
|
+
data.tar.gz: 731a01d8ad37a56901fa6ec13f87035c5ba204955baddd08fed3cfea6dfb0692
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ce7fb6809f7e62f903269779d73887fec4d9160bc6b57a59491f8cf7f62f27799cc815c1cc16261a05fc9cbed1e312db62de3fdf91dd06d9b12f566f1266d58
|
7
|
+
data.tar.gz: c5023354cd4bc9c75bf84a0c9f956ee5833f0ed866070ae30a9ee748a564adeb58dfdf7bff7a0f0c6f3d9ff2f96471bfe8458c3e62877adef1b65b37ea37ed0c
|
data/.gitignore
CHANGED
data/AUTHORS
CHANGED
data/CHANGES
CHANGED
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -12,20 +12,15 @@ Twitter OAuth login integrations.
|
|
12
12
|
|
13
13
|
== Quick Start
|
14
14
|
|
15
|
-
===
|
15
|
+
===
|
16
16
|
require 'esnek'
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
puts
|
21
|
-
puts res.inspect
|
17
|
+
esnek = Esnek.new('https://jsonplaceholder.typicode.com/')
|
18
|
+
todo = esnek.todos.__1.get
|
19
|
+
puts todo.id
|
20
|
+
puts todo.inspect
|
22
21
|
|
23
22
|
=== Facebook Graph API
|
24
23
|
require 'esnek'
|
25
|
-
fb = Esnek.new('http://graph.facebook.com')
|
26
|
-
res = fb.send(:"http://www.resimit.com").get
|
27
|
-
# Notice that since "http://www.resimit.com" is a complex ruby method name, we use "send" to call it
|
28
|
-
puts res.shares
|
29
24
|
|
30
25
|
=== ElasticSearch
|
31
26
|
|
data/esnek.gemspec
CHANGED
@@ -6,7 +6,6 @@ require 'esnek/version'
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = 'esnek'
|
8
8
|
s.version = ESNEK_VERSION
|
9
|
-
#s.has_rdoc = true
|
10
9
|
s.extra_rdoc_files = ['README.rdoc', 'LICENSE','CHANGES','AUTHORS']
|
11
10
|
s.summary = 'Esnek provides a minimalistic Ruby interface for JSON APIs, such as ElasticSearch'
|
12
11
|
s.description = s.summary
|
@@ -24,9 +23,3 @@ Gem::Specification.new do |s|
|
|
24
23
|
s.add_development_dependency "bundler", "~> 1.6"
|
25
24
|
s.add_development_dependency "rake", "~> 10.0"
|
26
25
|
end
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
data/lib/esnek/base.rb
CHANGED
@@ -1,20 +1,23 @@
|
|
1
1
|
require 'rest_client'
|
2
2
|
require 'json'
|
3
3
|
|
4
|
-
# _Esnek_ provides a quick Ruby interface for JSON APIs, such as _ElasticSearch_ (http://www.elasticsearch.org); a scalable, fast, distributed,
|
5
|
-
# highly-available, real time search RESTful search engine communicating by JSON over HTTP, based on _Lucene_ (http://lucene.apache.org).
|
4
|
+
# _Esnek_ provides a quick Ruby interface for JSON APIs, such as _ElasticSearch_ (http://www.elasticsearch.org); a scalable, fast, distributed,
|
5
|
+
# highly-available, real time search RESTful search engine communicating by JSON over HTTP, based on _Lucene_ (http://lucene.apache.org).
|
6
6
|
class Esnek
|
7
7
|
#attr_accessor :esnek_chain, :esnek_url_root, :esnek_params, :esnek_url
|
8
|
-
def initialize(esnek_url_root,options={:json_api=>true,:json_return=>true, :header=>{}})
|
8
|
+
def initialize(esnek_url_root, options={:verify_ssl=>true, :json_api=>true,:json_return=>true, :header=>{}})
|
9
9
|
@esnek_url_root = esnek_url_root
|
10
10
|
@esnek_chain = []
|
11
11
|
@json_api = options[:json_api].nil? ? true : options[:json_api]
|
12
12
|
@json_return = options[:json_return].nil? ? @json_api : options[:json_return]
|
13
|
+
@verify_ssl = options[:verify_ssl]
|
13
14
|
@header= options[:header] || {}
|
14
15
|
if options[:oauth] # Esnek assumes that oauth ruby gem is installed
|
15
16
|
options[:oauth][:scheme] ||= :header
|
16
17
|
consumer = OAuth::Consumer.new(options[:oauth][:consumer_key],options[:oauth][:consumer_secret], {:site => options[:oauth][:site], :scheme => options[:oauth][:scheme]})
|
17
18
|
@access_token = OAuth::AccessToken.from_hash(consumer, {:oauth_token => options[:oauth][:oauth_token], :oauth_token_secret => options[:oauth][:oauth_token_secret]} )
|
19
|
+
else
|
20
|
+
@access_token = nil
|
18
21
|
end
|
19
22
|
end
|
20
23
|
|
@@ -31,7 +34,7 @@ class Esnek
|
|
31
34
|
class<<r;def table;@table;end;end;
|
32
35
|
else
|
33
36
|
e
|
34
|
-
end
|
37
|
+
end
|
35
38
|
r}
|
36
39
|
else
|
37
40
|
j
|
@@ -58,18 +61,18 @@ class Esnek
|
|
58
61
|
RestClient.add_before_execution_proc do |req, par|
|
59
62
|
@access_token.sign! req
|
60
63
|
end if @access_token
|
61
|
-
resp = if [:put, :post,:patch].include?(method_sym)
|
62
|
-
RestClient.
|
64
|
+
resp = if [:put, :post,:patch].include?(method_sym)
|
65
|
+
RestClient::Request.execute(:method=>method_sym, :url=>@esnek_url, :payload=>data, :headers=>heades, :verify_ssl=>@verify_ssl)
|
63
66
|
else
|
64
|
-
RestClient.
|
67
|
+
RestClient::Request.execute(:method=>method_sym, :url=>@esnek_url, :headers=>heades, :verify_ssl=>@verify_ssl)
|
65
68
|
end
|
66
|
-
|
69
|
+
|
67
70
|
if @json_return
|
68
71
|
parse_json(resp)
|
69
72
|
else
|
70
73
|
resp
|
71
74
|
end
|
72
|
-
else
|
75
|
+
else
|
73
76
|
@esnek_chain << {:method => method_sym.to_s.gsub(/^__/,''), :arg => (args.empty? ? {} : args[0]) }
|
74
77
|
self
|
75
78
|
end
|
@@ -77,7 +80,7 @@ class Esnek
|
|
77
80
|
@esnek_chain = []
|
78
81
|
raise $!
|
79
82
|
end
|
80
|
-
|
83
|
+
|
81
84
|
def respond_to?(method_sym)
|
82
85
|
if [:head,:get, :put, :post,:patch, :delete].include?(method_sym)
|
83
86
|
true
|
@@ -85,5 +88,5 @@ class Esnek
|
|
85
88
|
super
|
86
89
|
end
|
87
90
|
end
|
88
|
-
|
91
|
+
|
89
92
|
end
|
data/lib/esnek/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ESNEK_VERSION='0.5.
|
1
|
+
ESNEK_VERSION='0.5.1'
|
data/test/base.rb
CHANGED
@@ -4,24 +4,32 @@ require './lib/esnek'
|
|
4
4
|
require 'minitest/autorun'
|
5
5
|
|
6
6
|
describe Esnek do
|
7
|
-
before do
|
7
|
+
before do
|
8
8
|
end
|
9
9
|
|
10
|
-
describe "When I query
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
10
|
+
describe "When I query json placeholder API" do
|
11
|
+
it "should return an object" do
|
12
|
+
esnek = Esnek.new('https://jsonplaceholder.typicode.com/')
|
13
|
+
res = esnek.todos.__1.get
|
14
|
+
assert_equal 1, res.id
|
15
|
+
end
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
it "should put" do
|
18
|
+
esnek = Esnek.new('https://jsonplaceholder.typicode.com/')
|
19
|
+
res = esnek.todos.__1.put { { title: 'A' }}
|
20
|
+
assert_equal 1, res.id
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should post" do
|
24
|
+
esnek = Esnek.new('https://jsonplaceholder.typicode.com/')
|
25
|
+
res = esnek.todos.post { { title: 'A' }}
|
26
|
+
assert res.id > 0
|
24
27
|
end
|
25
|
-
end
|
26
28
|
|
29
|
+
it "should delete" do
|
30
|
+
esnek = Esnek.new('https://jsonplaceholder.typicode.com/')
|
31
|
+
res = esnek.todos.__1.delete
|
32
|
+
assert res.id.nil?
|
33
|
+
end
|
34
|
+
end
|
27
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: esnek
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alper Akgun
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -108,8 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
110
|
requirements: []
|
111
|
-
|
112
|
-
rubygems_version: 2.2.2
|
111
|
+
rubygems_version: 3.1.2
|
113
112
|
signing_key:
|
114
113
|
specification_version: 4
|
115
114
|
summary: Esnek provides a minimalistic Ruby interface for JSON APIs, such as ElasticSearch
|