event_registry_api 0.1.0
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.
- checksums.yaml +7 -0
- data/README.md +0 -0
- data/event_registry_api.gemspec +31 -0
- data/lib/event_registry_api.rb +3 -0
- data/lib/event_registry_api/client.rb +43 -0
- data/lib/event_registry_api/client/concepts.rb +47 -0
- data/lib/event_registry_api/client/events.rb +60 -0
- data/lib/event_registry_api/version.rb +6 -0
- metadata +106 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a26da770e3bfd25c3d26b9013024c2bf1f68cac5
|
4
|
+
data.tar.gz: 02ec4b38ab3be0b987d57497a4925afcebd29325
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 52d7a8cc5e3f04310080f9cc03577fc6d7ce70ce6d2d1b96682caaa0770803ccd46364d33927668c8b67fb7668e71ce93b04c1ced0272cab94cd8af8e2dc095d
|
7
|
+
data.tar.gz: dfbaa57883f8c540a88ba09a6ca475b8701253d09afd31239e626fc0b71ee3bd38d458dc952d60fc15f1ef8efcd9b00f95381ab951baa96759416210d44acfcf
|
data/README.md
ADDED
File without changes
|
@@ -0,0 +1,31 @@
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
|
4
|
+
require 'event_registry_api/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.add_development_dependency 'bundler', '~> 1.0'
|
8
|
+
spec.add_dependency 'httparty'
|
9
|
+
spec.add_dependency 'hashie'
|
10
|
+
spec.add_dependency 'sawyer'
|
11
|
+
|
12
|
+
spec.date = '2016-04-25'
|
13
|
+
|
14
|
+
spec.name = 'event_registry_api'
|
15
|
+
spec.summary = 'eventregistry.org ruby api'
|
16
|
+
spec.description = 'EventRegistry.org API built in ruby'
|
17
|
+
spec.authors = ['Joel Matsumoto']
|
18
|
+
spec.email = 'joelmats@gmail.com'
|
19
|
+
|
20
|
+
spec.files = ['lib/event_registry_api.rb']
|
21
|
+
spec.files = %w(README.md event_registry_api.gemspec)
|
22
|
+
spec.files += Dir.glob('lib/**/*.rb')
|
23
|
+
spec.require_paths = ['lib']
|
24
|
+
spec.homepage = 'https://github.com/joelmats/event_registry_api'
|
25
|
+
spec.licenses = ['MIT']
|
26
|
+
|
27
|
+
spec.required_ruby_version = '>= 1.9.2'
|
28
|
+
spec.required_rubygems_version = '>= 1.3.5'
|
29
|
+
|
30
|
+
spec.version = EventRegistryApi::VERSION.dup
|
31
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
require 'event_registry_api/client/concepts'
|
5
|
+
require 'event_registry_api/client/events'
|
6
|
+
|
7
|
+
module EventRegistryApi
|
8
|
+
class Client
|
9
|
+
extend EventRegistryApi::Client::Concepts
|
10
|
+
extend EventRegistryApi::Client::Events
|
11
|
+
|
12
|
+
API_BASE_URL = "http://eventregistry.org"
|
13
|
+
|
14
|
+
class << self
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
##
|
19
|
+
# Convenience method to call get on API.
|
20
|
+
# @param {String}
|
21
|
+
# @param {Hash}
|
22
|
+
# @return {Hash}
|
23
|
+
#
|
24
|
+
def _get (path, params)
|
25
|
+
response = HTTParty.get("#{ API_BASE_URL }#{ path }?#{ _query_string(params) }")
|
26
|
+
|
27
|
+
JSON.parse(response) rescue nil
|
28
|
+
end
|
29
|
+
|
30
|
+
##
|
31
|
+
# Need to remove the array feature of to_query to key[]=value.
|
32
|
+
# @param {Hash}
|
33
|
+
# @return {String}
|
34
|
+
#
|
35
|
+
def _query_string (hash)
|
36
|
+
return nil unless hash.present?
|
37
|
+
|
38
|
+
string = hash.to_query
|
39
|
+
string.gsub("[]", "")
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module EventRegistryApi
|
2
|
+
class Client
|
3
|
+
|
4
|
+
SOURCES = [
|
5
|
+
"concepts",
|
6
|
+
"conceptClass",
|
7
|
+
"conceptFolder",
|
8
|
+
"loc"
|
9
|
+
]
|
10
|
+
|
11
|
+
##
|
12
|
+
# The concepts api.
|
13
|
+
#
|
14
|
+
module Concepts
|
15
|
+
|
16
|
+
##
|
17
|
+
# Get a list of concepts given a keyword prefix.
|
18
|
+
# @param {String}
|
19
|
+
# @param {Hash}
|
20
|
+
# @return {Array}
|
21
|
+
#
|
22
|
+
def concepts (keyword, options={})
|
23
|
+
options = {
|
24
|
+
sources: SOURCES[0..2]
|
25
|
+
}.merge(options)
|
26
|
+
|
27
|
+
_get("/json/suggestConcepts", _concepts_query(keyword, options))
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
##
|
33
|
+
# @param {String}
|
34
|
+
# @param {Hash}
|
35
|
+
# @return {Hash}
|
36
|
+
#
|
37
|
+
def _concepts_query (prefix, options)
|
38
|
+
{
|
39
|
+
"prefix" => prefix,
|
40
|
+
"lang" => "eng",
|
41
|
+
"fullLocInfo" => true,
|
42
|
+
"source" => options[:sources]
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module EventRegistryApi
|
2
|
+
class Client
|
3
|
+
|
4
|
+
##
|
5
|
+
# The events api.
|
6
|
+
#
|
7
|
+
module Events
|
8
|
+
|
9
|
+
##
|
10
|
+
# Get a list of events given a concept and some parameters.
|
11
|
+
# @param {String}
|
12
|
+
# @param {String}
|
13
|
+
# @param {Date}
|
14
|
+
# @param {Date}
|
15
|
+
# @param {Hash}
|
16
|
+
# @return {Array}
|
17
|
+
#
|
18
|
+
def events (concept, location=nil, start_date=nil, end_date=nil, options={})
|
19
|
+
options = {
|
20
|
+
limit: 25,
|
21
|
+
page: 1,
|
22
|
+
sort: "rel"
|
23
|
+
}.merge(options)
|
24
|
+
|
25
|
+
_get(
|
26
|
+
"/json/suggestConcepts",
|
27
|
+
_event_query(concept, location, start_date, end_date, options)
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
##
|
34
|
+
# @param {String}
|
35
|
+
# @param {String}
|
36
|
+
# @param {Date}
|
37
|
+
# @param {Date}
|
38
|
+
# @param {Hash}
|
39
|
+
# @return {Hash}
|
40
|
+
#
|
41
|
+
def _event_query (concept, location, start_date, end_date, options)
|
42
|
+
{
|
43
|
+
"conceptUri" => concept,
|
44
|
+
"locationUri" => location,
|
45
|
+
"dateStart" => start_date,
|
46
|
+
"dateEnd" => end_date,
|
47
|
+
"eventsCount" => options[:limit],
|
48
|
+
"eventsPage" => options[:page],
|
49
|
+
"eventsSortBy" => options[:sort],
|
50
|
+
"action" => "getEvents",
|
51
|
+
"eventsConceptLang" => "eng",
|
52
|
+
"eventsEventImageCount" => 0,
|
53
|
+
"eventsIncludeEventSocialScore" => true,
|
54
|
+
"resultType" => "events",
|
55
|
+
"minArticlesInEvent" => "10",
|
56
|
+
}
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
metadata
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: event_registry_api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Joel Matsumoto
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-04-25 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: httparty
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: hashie
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: sawyer
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: EventRegistry.org API built in ruby
|
70
|
+
email: joelmats@gmail.com
|
71
|
+
executables: []
|
72
|
+
extensions: []
|
73
|
+
extra_rdoc_files: []
|
74
|
+
files:
|
75
|
+
- README.md
|
76
|
+
- event_registry_api.gemspec
|
77
|
+
- lib/event_registry_api.rb
|
78
|
+
- lib/event_registry_api/client.rb
|
79
|
+
- lib/event_registry_api/client/concepts.rb
|
80
|
+
- lib/event_registry_api/client/events.rb
|
81
|
+
- lib/event_registry_api/version.rb
|
82
|
+
homepage: https://github.com/joelmats/event_registry_api
|
83
|
+
licenses:
|
84
|
+
- MIT
|
85
|
+
metadata: {}
|
86
|
+
post_install_message:
|
87
|
+
rdoc_options: []
|
88
|
+
require_paths:
|
89
|
+
- lib
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 1.9.2
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: 1.3.5
|
100
|
+
requirements: []
|
101
|
+
rubyforge_project:
|
102
|
+
rubygems_version: 2.2.2
|
103
|
+
signing_key:
|
104
|
+
specification_version: 4
|
105
|
+
summary: eventregistry.org ruby api
|
106
|
+
test_files: []
|