retailigence 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.
@@ -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
+