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.
@@ -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
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,3 @@
1
+ module EventRegistryApi; end
2
+
3
+ require 'event_registry_api/client'
@@ -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
@@ -0,0 +1,6 @@
1
+ module EventRegistryApi
2
+ MAJOR = 0
3
+ MINOR = 1
4
+ PATCH = 0
5
+ VERSION = [MAJOR, MINOR, PATCH].join('.').freeze
6
+ 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: []