retailigence 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,13 @@
1
+ require 'retailigence/base'
2
+ require 'retailigence/product'
3
+ require 'retailigence/location'
4
+ require 'retailigence/retailer'
5
+
6
+ module Retailigence
7
+ extend self
8
+
9
+ def configure
10
+ yield Retailigence::Base
11
+ end
12
+
13
+ end
@@ -0,0 +1,40 @@
1
+ module Retailigence
2
+
3
+ class Base < ActiveResource::Base
4
+
5
+ self.site = "http://apitest.retailigence.com/v1.2/"
6
+ self.format = ActiveResource::Formats::XmlFormat
7
+
8
+ def self.apikey=(key)
9
+ @@apikey = key
10
+ end
11
+
12
+ def self.apikey
13
+ @@apikey
14
+ end
15
+
16
+ def self.perform_graph_request(endpoint, params={}, method="get")
17
+ require 'net/http'
18
+ require 'nori'
19
+
20
+ @query_string = "?"
21
+ @query_string += "apikey=#{apikey}"
22
+
23
+ if method=="get"
24
+ params.each{|key, val| @query_string += "&#{key}=#{val}"}
25
+ url = URI.parse("#{self.site}#{endpoint}#{@query_string}")
26
+ request = Net::HTTP::Get.new("#{url.path}?#{url.query}",{"Content-Type"=>"text/xml"})
27
+ else
28
+ url = URI.parse("#{self.site}#{endpoint}#{@query_string}")
29
+ request = Net::HTTP::Post.new("#{url.path}?#{url.query}",{"Content-Type"=>"text/xml"})
30
+ request.set_form_data(params)
31
+ end
32
+
33
+ http = Net::HTTP.new(url.host, url.port)
34
+ # http.use_ssl = true
35
+ response = ::Nori.parse(http.start {|http| http.request(request)}.body)
36
+ response
37
+ end
38
+ end
39
+
40
+ end
@@ -0,0 +1,16 @@
1
+ module Retailigence
2
+
3
+ class Location < Retailigence::Base
4
+
5
+ def self.search(params={})
6
+ params = {latitude: 27.6,
7
+ longitude: -82.5,
8
+ range: 40,
9
+ units: 'k'}.merge!(params)
10
+
11
+ perform_graph_request('locations', params)
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -0,0 +1,11 @@
1
+ module Retailigence
2
+
3
+ class Product < Retailigence::Base
4
+
5
+ def self.search(params={})
6
+ perform_graph_request('products', params)
7
+ end
8
+
9
+ end
10
+
11
+ end
@@ -0,0 +1,16 @@
1
+ module Retailigence
2
+
3
+ class Retailer < Retailigence::Base
4
+
5
+ def self.search(params={})
6
+ params = {latitude: 27.6,
7
+ longitude: -82.5,
8
+ range: 40,
9
+ units: 'k'}.merge!(params)
10
+
11
+ perform_graph_request('retailers', params)
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -0,0 +1,3 @@
1
+ module Retailigence
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,81 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: retailigence
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Aubrey Goodman
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2012-08-20 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activeresource
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 3.2.6
24
+ type: :runtime
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: nori
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 1.1.3
35
+ type: :runtime
36
+ version_requirements: *id002
37
+ description: Ruby wrapper for the Retailigence API
38
+ email:
39
+ - aubrey.goodman@gmail.com
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ extra_rdoc_files: []
45
+
46
+ files:
47
+ - lib/retailigence/base.rb
48
+ - lib/retailigence/location.rb
49
+ - lib/retailigence/product.rb
50
+ - lib/retailigence/retailer.rb
51
+ - lib/retailigence/version.rb
52
+ - lib/retailigence.rb
53
+ homepage: http://retailigence.com
54
+ licenses: []
55
+
56
+ post_install_message:
57
+ rdoc_options: []
58
+
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
+
75
+ rubyforge_project:
76
+ rubygems_version: 1.8.24
77
+ signing_key:
78
+ specification_version: 3
79
+ summary: Retailigence API
80
+ test_files: []
81
+