beetrackapi 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3cf77c84960664fd889aee230894e2089da9d091
4
+ data.tar.gz: 6d584b3fec92c64f5b39464bc69963efa8c86593
5
+ SHA512:
6
+ metadata.gz: d79621b6335f0903bf5833db36d7a5abb3daaa4b43424a67b23be9bc43dbb44d88e72f5234774c5c46cb295d7bc1e8c5d33d50d968239cfae39a0e54ed5b7e6d
7
+ data.tar.gz: 7244e76073ffed91880b923d3ed89b305d12e99bc256f8766f52c74b00543835280976c63809028819af26eb1b56c78a2ff13dfec4c50c00e79e2a10cce604f1
data/README.md ADDED
@@ -0,0 +1,5 @@
1
+ #Beetrack API#
2
+
3
+ The following gem is a Ruby wrapper for the Beetrack API.
4
+
5
+ Documentation later.
@@ -0,0 +1,13 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'beetrackapi'
3
+ s.version = '0.0.1'
4
+ s.platform = Gem::Platform::RUBY
5
+ s.authors = ['Nicolás Kipreos']
6
+ s.email = ['nicolas.kipreos@beetrack.in']
7
+ s.homepage = 'http://github.com/nkipreos/'
8
+ s.description = 'A Ruby Wrapper for the Beetrack API'
9
+ s.summary = 'See description'
10
+ s.files = Dir.glob('{lib}/**/*') + %w(README.md beetrackapi.gemspec)
11
+ s.add_development_dependency('curb', '>= 0.8.5')
12
+ s.require_path = 'lib'
13
+ end
@@ -0,0 +1,79 @@
1
+ require 'curb'
2
+ require 'json'
3
+ require 'cgi'
4
+ require 'time'
5
+
6
+ module BeetrackAPI
7
+
8
+ class Error < StandardError; end
9
+ class AuthenticationError < Error; end
10
+
11
+ class Client
12
+ attr_accessor :key
13
+ attr_reader :url
14
+
15
+ def initialize(options = {})
16
+ @key = options[:key]
17
+ @url = 'http://app.beetrack.cl/api/external/v1/'
18
+ end
19
+
20
+ def getroutes(options = {})
21
+ date = options.empty? ? "#{Date.today.strftime("%d-%m-%Y")}" : options[:date]
22
+ get('routes', :date => date)
23
+ end
24
+
25
+ def createroute(route_id, options = {})
26
+ get("routes/#{route_id}", options)
27
+ end
28
+
29
+ def getdispatchinfo(dispatch_id)
30
+ get("dispatches/#{dispatch_id}")
31
+ end
32
+
33
+ private
34
+
35
+ def get(path, params = {})
36
+ res = Curl.get(@url + request_uri(path,params)) do |http|
37
+ http.headers['X-AUTH-TOKEN'] = @key
38
+ http.headers['Content-Type'] = 'application/json'
39
+ end
40
+ JSON.parse(res.body_str)
41
+ end
42
+
43
+ def post(path, params ={})
44
+ res = Curl.post(@url + path, params) do |http|
45
+ http.headers['X-AUTH-TOKEN'] = @key
46
+ http.headers['Content-Type'] = 'application/json'
47
+ end
48
+ JSON.parse(res.body_str)
49
+ end
50
+
51
+ def parse(http_response)
52
+ case http_response
53
+ when Net::HTTPSuccess
54
+ if http_response['Content-Type'].split(';').first == 'application/json'
55
+ JSON.parse(http_response.body)
56
+ else
57
+ http_response.body
58
+ end
59
+ when Net::HTTPUnauthorized
60
+ raise AuthenticationError
61
+ else
62
+ raise Error, "Unexpected HTTP response (code=#{http_response.code})"
63
+ end
64
+ end
65
+
66
+ def request_uri(path, hash = {})
67
+ if hash.empty?
68
+ path
69
+ else
70
+ query_params = hash.map do |key, values|
71
+ Array(values).map { |value| "#{key}=#{value}" }
72
+ end
73
+ path + '?' + query_params.flatten.join('&')
74
+ end
75
+ end
76
+
77
+ end
78
+
79
+ end
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: beetrackapi
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Nicolás Kipreos
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-08-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: curb
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.5
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.5
27
+ description: A Ruby Wrapper for the Beetrack API
28
+ email:
29
+ - nicolas.kipreos@beetrack.in
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - README.md
35
+ - beetrackapi.gemspec
36
+ - lib/beetrackapi.rb
37
+ homepage: http://github.com/nkipreos/
38
+ licenses: []
39
+ metadata: {}
40
+ post_install_message:
41
+ rdoc_options: []
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ requirements: []
55
+ rubyforge_project:
56
+ rubygems_version: 2.2.2
57
+ signing_key:
58
+ specification_version: 4
59
+ summary: See description
60
+ test_files: []
61
+ has_rdoc: