recomiendo 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,43 @@
1
+ ![recomiendo logo](https://github.com/intridea/grape/wiki/recomiendo.png)
2
+ ======
3
+
4
+ Recomiendo es una capa para la API de http://recomien.do
5
+
6
+ ## Instalación
7
+
8
+ Recomiendo está disponible como una gema, para instalarlo sólo tienes que instalar la gema:
9
+
10
+ gem install recomiendo
11
+
12
+ Si estás utilizando Bundler, añade la gema al Gemfile.
13
+
14
+ gem 'recomiendo'
15
+
16
+ Corre `bundle install`.
17
+
18
+ ## Uso Básico
19
+
20
+ Primero debe debes crear un objeto Cliente.
21
+ ``` ruby
22
+ client = Recomiendo.new(key, secret)
23
+ ```
24
+
25
+ ### Cuentas
26
+
27
+ ``` ruby
28
+ client.accounts.create(email: 'mi@email.com')
29
+ ```
30
+
31
+ ### Links
32
+
33
+ ``` ruby
34
+ client.links.create(url: 'http://www.alguna_url.com')
35
+ client.links.all
36
+ ```
37
+
38
+ ### Rewards
39
+
40
+ ``` ruby
41
+ client.rewards.create(visit_id: '8eb5636410e00e0f54f975b19416c787', amount: 1.00, earned_on: '2012-07-23', payable_on: '2012-07-24')
42
+ client.rewards.all
43
+ ```
data/Rakefile ADDED
@@ -0,0 +1,41 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'rake'
5
+
6
+ begin
7
+ gem 'rubygems-tasks', '~> 0.2'
8
+ require 'rubygems/tasks'
9
+
10
+ Gem::Tasks.new
11
+ rescue LoadError => e
12
+ warn e.message
13
+ warn "Run `gem install rubygems-tasks` to install Gem::Tasks."
14
+ end
15
+
16
+ begin
17
+ gem 'rdoc', '~> 3.0'
18
+ require 'rdoc/task'
19
+
20
+ RDoc::Task.new do |rdoc|
21
+ rdoc.title = "recomiendo"
22
+ end
23
+ rescue LoadError => e
24
+ warn e.message
25
+ warn "Run `gem install rdoc` to install 'rdoc/task'."
26
+ end
27
+ task :doc => :rdoc
28
+
29
+ begin
30
+ gem 'rspec', '~> 2.4'
31
+ require 'rspec/core/rake_task'
32
+
33
+ RSpec::Core::RakeTask.new
34
+ rescue LoadError => e
35
+ task :spec do
36
+ abort "Please run `gem install rspec` to install RSpec."
37
+ end
38
+ end
39
+
40
+ task :test => :spec
41
+ task :default => :spec
data/lib/recomiendo.rb ADDED
@@ -0,0 +1,13 @@
1
+ require 'recomiendo/version'
2
+ require 'recomiendo/client'
3
+ require 'recomiendo/account'
4
+ require 'recomiendo/link'
5
+ require 'recomiendo/reward'
6
+
7
+ module Recomiendo
8
+ class << self
9
+ def new(key, secret)
10
+ Recomiendo::Client.new(key, secret)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ module Recomiendo
2
+ class Account
3
+ def initialize(client)
4
+ @client = client
5
+ end
6
+
7
+ def create(params={})
8
+ @client.post('/accounts', params)['account_id']
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,43 @@
1
+ require 'httparty'
2
+
3
+ module Recomiendo
4
+ class Client
5
+ include HTTParty
6
+ base_uri 'https://recomien.do/api'
7
+ ssl_version :SSLv3
8
+ headers 'Accept' => 'application/vnd.recomiendo.v1'
9
+
10
+
11
+ def initialize(key, secret)
12
+ @auth = { username: key, password: secret }
13
+ end
14
+
15
+ def post(path, params)
16
+ self.class.post(path, body: params, basic_auth: @auth)
17
+ end
18
+
19
+ def get(path, params)
20
+ self.class.get(path, query: params, basic_auth: @auth)
21
+ end
22
+
23
+ def delete(path)
24
+ self.class.delete(path, basic_auth: @auth)
25
+ end
26
+
27
+ def put(path, params)
28
+ self.class.put(path, body: params, basic_auth: @auth)
29
+ end
30
+
31
+ def accounts
32
+ Recomiendo::Account.new(self)
33
+ end
34
+
35
+ def links
36
+ Recomiendo::Link.new(self)
37
+ end
38
+
39
+ def rewards
40
+ Recomiendo::Reward.new(self)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,15 @@
1
+ module Recomiendo
2
+ class Link
3
+ def initialize(client)
4
+ @client = client
5
+ end
6
+
7
+ def all(params={})
8
+ @client.get('/links', params)['links']
9
+ end
10
+
11
+ def create(params={})
12
+ @client.post('/links', params).parsed_response
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,38 @@
1
+ module Recomiendo
2
+ class Reward
3
+ def initialize(client)
4
+ @client = client
5
+ end
6
+
7
+ def all(params={})
8
+ @client.get('/rewards', params).parsed_response
9
+ end
10
+
11
+ def create(params={})
12
+ if params.class != String and params.class != Integer
13
+ params[:earned_on] ||= Time.now.strftime('%F')
14
+ params[:payable_on] ||= (Time.now + 2592000).strftime('%F')
15
+
16
+ @client.post('/rewards', params).parsed_response
17
+ end
18
+ end
19
+
20
+ def delete(params={})
21
+ #begin
22
+ if params.has_key?(:reward_id)
23
+ @client.delete("/rewards/#{params[:reward_id]}").parsed_response
24
+ else
25
+ puts "Insufficient parameters: reward_id"
26
+ end
27
+ end
28
+
29
+ def update(params={})
30
+ if params.has_key?(:reward_id)
31
+ @client.put("/rewards/#{params[:reward_id]}", params).parsed_response
32
+ else
33
+ puts "Insufficient parameters: reward_id"
34
+ end
35
+ end
36
+
37
+ end
38
+ end
@@ -0,0 +1,4 @@
1
+ module Recomiendo
2
+ # recomiendo version
3
+ VERSION = "0.1.1"
4
+ end
@@ -0,0 +1,35 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require File.expand_path('../lib/recomiendo/version', __FILE__)
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "recomiendo"
7
+ gem.version = Recomiendo::VERSION
8
+ gem.summary = %q{Recomiendo API wrapper}
9
+ gem.description = %q{A Ruby wrapper for the Recomiendo API.}
10
+ gem.license = "MIT"
11
+ gem.authors = ["Cesar Gutierrez Bartra"]
12
+ gem.email = "cesar@gutierrez.pe"
13
+ gem.homepage = "http://recomien.do"
14
+
15
+ #gem.files = `git ls-files`.split($/)
16
+ gem.files = [
17
+ 'README.md',
18
+ 'recomiendo.gemspec',
19
+ 'Rakefile',
20
+ 'lib/recomiendo.rb',
21
+ 'lib/recomiendo/client.rb',
22
+ 'lib/recomiendo/account.rb',
23
+ 'lib/recomiendo/link.rb',
24
+ 'lib/recomiendo/reward.rb',
25
+ 'lib/recomiendo/version.rb'
26
+ ]
27
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
28
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
29
+ gem.require_paths = ['lib']
30
+
31
+ gem.add_development_dependency 'rdoc', '~> 3.0'
32
+ gem.add_development_dependency 'rspec', '~> 2.4'
33
+ gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
34
+ gem.add_runtime_dependency 'httparty', '>=0.9.0'
35
+ end
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: recomiendo
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.1
6
+ platform: ruby
7
+ authors:
8
+ - Cesar Gutierrez Bartra
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2013-02-26 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rdoc
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: "3.0"
24
+ type: :development
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: "2.4"
35
+ type: :development
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: rubygems-tasks
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: "0.2"
46
+ type: :development
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: httparty
50
+ prerelease: false
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 0.9.0
57
+ type: :runtime
58
+ version_requirements: *id004
59
+ description: A Ruby wrapper for the Recomiendo API.
60
+ email: cesar@gutierrez.pe
61
+ executables: []
62
+
63
+ extensions: []
64
+
65
+ extra_rdoc_files: []
66
+
67
+ files:
68
+ - README.md
69
+ - recomiendo.gemspec
70
+ - Rakefile
71
+ - lib/recomiendo.rb
72
+ - lib/recomiendo/client.rb
73
+ - lib/recomiendo/account.rb
74
+ - lib/recomiendo/link.rb
75
+ - lib/recomiendo/reward.rb
76
+ - lib/recomiendo/version.rb
77
+ homepage: http://recomien.do
78
+ licenses:
79
+ - MIT
80
+ post_install_message:
81
+ rdoc_options: []
82
+
83
+ require_paths:
84
+ - lib
85
+ required_ruby_version: !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: "0"
91
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: "0"
97
+ requirements: []
98
+
99
+ rubyforge_project:
100
+ rubygems_version: 1.8.24
101
+ signing_key:
102
+ specification_version: 3
103
+ summary: Recomiendo API wrapper
104
+ test_files: []
105
+