recomiendo 0.1.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.
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
+