fanfeedrb 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.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in fanfeedrb.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
data/fanfeedrb.gemspec ADDED
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "fanfeedrb/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "fanfeedrb"
7
+ s.version = Fanfeedrb::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Matthew Jording"]
10
+ s.email = ["mjording@opengotham.com"]
11
+ s.homepage = "http://iequalsi.com"
12
+ s.summary = %q{Ruby implementation of the FanFeedr api}
13
+ s.description = %q{Ruby implementation of the FanFeedr api}
14
+ s.add_dependency('rake')
15
+ s.add_dependency('httparty')
16
+ s.rubyforge_project = "fanfeedrb"
17
+
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ["lib"]
22
+ end
@@ -0,0 +1,3 @@
1
+ module Fanfeedrb
2
+ VERSION = "0.0.1"
3
+ end
data/lib/fanfeedrb.rb ADDED
@@ -0,0 +1,85 @@
1
+ require 'httparty'
2
+ module Fanfeedrb
3
+
4
+
5
+ class Client
6
+ include HTTParty
7
+
8
+ def initialize(key,type)
9
+ @auth = {:key => key, :type => type}
10
+ @proxy = FanfeedrbProxy.new
11
+ end
12
+
13
+ def method_missing(method, *args, &block)
14
+ @proxy.append(method, args[0])
15
+ @opts = {:query => @proxy.options}
16
+ if args.size > 0 && !method.to_s.eql?("post")
17
+ execute("get")
18
+ elsif method.to_s.match /\bget\b|\bpost\b/
19
+ execute(method)
20
+ else
21
+ execute("get")
22
+ end
23
+ end
24
+
25
+ def execute(method)
26
+ p @proxy.url
27
+ res = FanfeedrbResponse.construct self.class.send(method,@proxy.url,@opts)
28
+ @proxy = FanfeedrbProxy.new
29
+ res
30
+ end
31
+ end
32
+
33
+ class FanfeedrbProxy
34
+ attr_reader :options
35
+
36
+ def initialize
37
+ @keys = []; @options = {}
38
+ end
39
+
40
+ def append(key,options)
41
+ #@options.merge!(self.default_json_options)
42
+ @keys << key; @options.merge!(options) if options
43
+ end
44
+
45
+ def url
46
+ @url = "http://ffapi.fanfeedr.com/#{ENV['FANFEEDR_TYPE']}/api/" + @keys.join("/")
47
+ end
48
+ protected
49
+
50
+ def default_json_options
51
+ {:api_key => @auth[:key]}
52
+ end
53
+
54
+ end
55
+
56
+ class FanfeedrbResponse
57
+ attr_reader :errors
58
+ attr_reader :hresp
59
+ def initialize(hash)
60
+ hresp = []
61
+ if hash.parsed_response.nil? || hash.parsed_response.blank?
62
+ hresp << hash
63
+ else
64
+ hresp << hash.parsed_response
65
+ end
66
+ @hresp = hresp.flatten if !hresp.blank?
67
+
68
+ end
69
+
70
+ def self.construct(res)
71
+ return res.class == Array ? res.collect { |item| FanfeedrbResponse.new(item) } : FanfeedrbResponse.new(res)
72
+ end
73
+ end
74
+ end
75
+
76
+ #Examples
77
+ #client = Fanfeedrb::Client.new(ENV['FANFEEDR_KEY'],ENV['FANFEEDR_TYPE'])
78
+ #leagues = client.statuses.show(:id => "13400589015")
79
+ #p status.errors ? status.errors : status.text
80
+
81
+ # More Examples
82
+ #user = client.users.lookup(:screen_name => "gregosuri")
83
+ #client.statuses.update.post(:status=>"Ruby Metaprogramming Rocks")
84
+ # Your code goes here...
85
+
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fanfeedrb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Matthew Jording
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-06-09 00:00:00.000000000 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ requirement: &2152451880 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *2152451880
26
+ - !ruby/object:Gem::Dependency
27
+ name: httparty
28
+ requirement: &2152451240 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *2152451240
37
+ description: Ruby implementation of the FanFeedr api
38
+ email:
39
+ - mjording@opengotham.com
40
+ executables: []
41
+ extensions: []
42
+ extra_rdoc_files: []
43
+ files:
44
+ - .gitignore
45
+ - Gemfile
46
+ - Rakefile
47
+ - fanfeedrb.gemspec
48
+ - lib/fanfeedrb.rb
49
+ - lib/fanfeedrb/version.rb
50
+ has_rdoc: true
51
+ homepage: http://iequalsi.com
52
+ licenses: []
53
+ post_install_message:
54
+ rdoc_options: []
55
+ require_paths:
56
+ - lib
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ requirements: []
70
+ rubyforge_project: fanfeedrb
71
+ rubygems_version: 1.6.2
72
+ signing_key:
73
+ specification_version: 3
74
+ summary: Ruby implementation of the FanFeedr api
75
+ test_files: []