feedeng 0.0.3

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/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ gem 'faraday'
2
+ gem 'rake'
3
+ gem 'hashie'
@@ -0,0 +1,15 @@
1
+ GEM
2
+ specs:
3
+ faraday (0.8.0)
4
+ multipart-post (~> 1.1)
5
+ hashie (1.2.0)
6
+ multipart-post (1.1.5)
7
+ rake (0.9.2.2)
8
+
9
+ PLATFORMS
10
+ ruby
11
+
12
+ DEPENDENCIES
13
+ faraday
14
+ hashie
15
+ rake
@@ -0,0 +1,3 @@
1
+ Feedeng.in API Gem
2
+ ======
3
+
@@ -0,0 +1,8 @@
1
+ task :console do
2
+ $: << File.expand_path("../lib", __FILE__)
3
+ require 'feedeng'
4
+
5
+ ARGV.clear
6
+ require 'irb'
7
+ IRB.start
8
+ end
Binary file
Binary file
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/feedeng/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Jan Koszewski"]
6
+ gem.email = ["jan.koszewski@livingsocial.com"]
7
+ gem.description = %q{Client gem for the Feedeng.in service}
8
+ gem.summary = %q{Client gem for the Feedeng.in service}
9
+ gem.homepage = ""
10
+
11
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
12
+ gem.files = `git ls-files`.split("\n")
13
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
+ gem.name = "feedeng"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = Feedeng::VERSION
17
+
18
+ gem.add_runtime_dependency 'faraday'
19
+ gem.add_development_dependency 'rspec'
20
+ end
@@ -0,0 +1,2 @@
1
+ require 'feedeng/client'
2
+ require 'feedeng/version'
@@ -0,0 +1,94 @@
1
+ require 'hashie'
2
+ require 'json'
3
+ require 'faraday'
4
+
5
+ module Feedeng
6
+ class Client
7
+ attr_reader :connection
8
+ attr_accessor :token
9
+
10
+ def initialize
11
+ @connection = Faraday.new(:url => 'http://api.feedeng.in')
12
+ end
13
+
14
+ def set_token(token)
15
+ @token = token
16
+ end
17
+
18
+ def get_user_feed(feed_name)
19
+ get "/feeds/#{feed_name}"
20
+ end
21
+
22
+ def get_user_posts(feed_name)
23
+ get "/feeds/#{feed_name}/posts"
24
+ end
25
+
26
+ def post_to_feed(feed_name, params)
27
+ post("/feeds/#{feed_name}/posts", params)
28
+ end
29
+
30
+ def refeed(feed_name, feed_item)
31
+ refeed_post("/feeds/#{feed_name}/posts/#{feed_item}/refeeds")
32
+ end
33
+
34
+ private
35
+
36
+ def blank?(var)
37
+ if var.nil? || var.empty? || var == ' '
38
+ true
39
+ end
40
+ end
41
+
42
+ def get(url)
43
+ if blank?(@token)
44
+ response = 'You must set a user token via the \'set_token\' method before using the api'
45
+ else
46
+ resp = connection.get do |req|
47
+ req.url url
48
+ req.headers['Content-Type'] = 'application/json'
49
+ req.headers['TOKEN'] = token
50
+ end
51
+
52
+ if resp.status == 401
53
+ resp.status
54
+ else
55
+ JSON.parse(resp.body)
56
+ end
57
+ end
58
+ end
59
+
60
+ def post(url, body)
61
+ if blank?(@token)
62
+ response = 'You must set a user token via the \'set_token\' method before using the api'
63
+ else
64
+ resp = connection.post do |req|
65
+ req.url url
66
+ req.headers['Content-Type'] = 'application/json'
67
+ req.headers['TOKEN'] = token
68
+ req.body = body
69
+ end
70
+
71
+ if resp.status == 401
72
+ resp.status
73
+ else
74
+ JSON.parse(resp.body)
75
+ end
76
+ end
77
+ end
78
+
79
+ def refeed_post(url)
80
+ if blank?(@token)
81
+ response = 'You must set a user token via the \'set_token\' method before using the api'
82
+ else
83
+ resp = connection.post do |req|
84
+ req.url url
85
+ req.headers['Content-Type'] = 'application/json'
86
+ req.headers['TOKEN'] = token
87
+ end
88
+
89
+ resp.status
90
+ end
91
+ end
92
+
93
+ end
94
+ end
@@ -0,0 +1,3 @@
1
+ module Feedeng
2
+ VERSION = "0.0.3"
3
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: feedeng
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jan Koszewski
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: faraday
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: Client gem for the Feedeng.in service
47
+ email:
48
+ - jan.koszewski@livingsocial.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - Gemfile
54
+ - Gemfile.lock
55
+ - README.md
56
+ - Rakefile
57
+ - feedeng-0.0.1.gem
58
+ - feedeng-0.0.2.gem
59
+ - feedeng.gemspec
60
+ - lib/feedeng.rb
61
+ - lib/feedeng/client.rb
62
+ - lib/feedeng/version.rb
63
+ homepage: ''
64
+ licenses: []
65
+ post_install_message:
66
+ rdoc_options: []
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 1.8.24
84
+ signing_key:
85
+ specification_version: 3
86
+ summary: Client gem for the Feedeng.in service
87
+ test_files: []