rest-more 1.0.2 → 2.0.0

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.
Files changed (72) hide show
  1. data/.gitignore +0 -5
  2. data/.travis.yml +4 -6
  3. data/CHANGES.md +16 -0
  4. data/Gemfile +6 -3
  5. data/README.md +43 -129
  6. data/Rakefile +2 -3
  7. data/example/multi.rb +12 -23
  8. data/example/rails3/Gemfile +2 -1
  9. data/example/rails3/app/controllers/application_controller.rb +9 -4
  10. data/example/rails3/test/functional/application_controller_test.rb +1 -1
  11. data/example/rainbows.rb +48 -7
  12. data/example/simple.rb +3 -3
  13. data/example/sinatra/config.ru +1 -1
  14. data/lib/rest-core/client/dropbox.rb +19 -27
  15. data/lib/rest-core/client/facebook.rb +28 -51
  16. data/lib/rest-core/client/facebook/rails_util.rb +13 -11
  17. data/lib/rest-core/client/github.rb +13 -21
  18. data/lib/rest-core/client/linkedin.rb +19 -27
  19. data/lib/rest-core/client/twitter.rb +13 -21
  20. data/lib/rest-more.rb +0 -2
  21. data/lib/rest-more/test.rb +11 -0
  22. data/lib/rest-more/version.rb +1 -1
  23. data/rest-more.gemspec +7 -41
  24. data/task/.gitignore +1 -0
  25. data/task/gemgem.rb +267 -0
  26. data/test/dropbox/test_api.rb +1 -1
  27. data/test/facebook/config/rest-core.yaml +1 -1
  28. data/test/facebook/test_api.rb +10 -14
  29. data/test/facebook/test_error.rb +2 -2
  30. data/test/facebook/test_handler.rb +6 -6
  31. data/test/facebook/test_load_config.rb +4 -4
  32. data/test/facebook/test_misc.rb +3 -3
  33. data/test/facebook/test_old.rb +2 -37
  34. data/test/facebook/test_page.rb +26 -24
  35. data/test/facebook/test_parse.rb +1 -1
  36. data/test/facebook/test_serialize.rb +3 -19
  37. data/test/facebook/test_timeout.rb +6 -2
  38. data/test/twitter/test_api.rb +1 -1
  39. metadata +6 -40
  40. data/doc/ToC.md +0 -9
  41. data/doc/dependency.md +0 -4
  42. data/doc/design.md +0 -4
  43. data/doc/rest-graph.md +0 -4
  44. data/example/async.rb +0 -89
  45. data/example/facebook.rb +0 -13
  46. data/example/rails2/Gemfile +0 -22
  47. data/example/rails2/README +0 -4
  48. data/example/rails2/Rakefile +0 -11
  49. data/example/rails2/app/controllers/application_controller.rb +0 -138
  50. data/example/rails2/app/views/application/helper.html.erb +0 -1
  51. data/example/rails2/config/boot.rb +0 -130
  52. data/example/rails2/config/environment.rb +0 -25
  53. data/example/rails2/config/environments/development.rb +0 -17
  54. data/example/rails2/config/environments/production.rb +0 -28
  55. data/example/rails2/config/environments/test.rb +0 -30
  56. data/example/rails2/config/initializers/cookie_verification_secret.rb +0 -7
  57. data/example/rails2/config/initializers/new_rails_defaults.rb +0 -21
  58. data/example/rails2/config/initializers/session_store.rb +0 -15
  59. data/example/rails2/config/preinitializer.rb +0 -23
  60. data/example/rails2/config/rest-core.yaml +0 -12
  61. data/example/rails2/config/routes.rb +0 -43
  62. data/example/rails2/log +0 -0
  63. data/example/rails2/test/functional/application_controller_test.rb +0 -259
  64. data/example/rails2/test/test_helper.rb +0 -18
  65. data/example/rails2/test/unit/rails_util_test.rb +0 -49
  66. data/lib/rest-core/client/bing.rb +0 -102
  67. data/lib/rest-core/client/bing/rails_util.rb +0 -13
  68. data/lib/rest-core/client/mixi.rb +0 -60
  69. data/lib/rest-core/client/mixi/rails_util.rb +0 -13
  70. data/test/bing/test_api.rb +0 -34
  71. data/test/facebook/test_cache.rb +0 -58
  72. data/test/mixi/test_api.rb +0 -20
data/doc/ToC.md DELETED
@@ -1,9 +0,0 @@
1
-
2
- # rest-more documentation
3
-
4
- ## Table of Content
5
-
6
- * [Facebook tutorial for the beginners, using Rails 3](tutorial/facebook.md)
7
- * [Migrate from rest-graph](rest-graph.md)
8
- * [Overview and Design Concept](design.md)
9
- * [Picking Dependency](dependency.md)
data/doc/dependency.md DELETED
@@ -1,4 +0,0 @@
1
-
2
- # Picking Dependency
3
-
4
-
data/doc/design.md DELETED
@@ -1,4 +0,0 @@
1
-
2
- # Overview and Design Concept
3
-
4
-
data/doc/rest-graph.md DELETED
@@ -1,4 +0,0 @@
1
-
2
- # Migrate from rest-graph
3
-
4
-
data/example/async.rb DELETED
@@ -1,89 +0,0 @@
1
-
2
- require 'rest-more'
3
-
4
- # RC::Builder.default_app = RC::Auto # for global default_app setting
5
-
6
- def aget_facebook opts={}
7
- RC::Facebook.new(opts).get('4'){ |response|
8
- if response.kind_of?(::Timeout::Error)
9
- puts "TIMEOUT aget"
10
- else
11
- p response
12
- puts "DONE aget"
13
- end
14
- yield if block_given?
15
- }
16
- end
17
-
18
- def get_facebook opts={}
19
- p RC::Facebook.new(opts).get('4')
20
- puts "DONE get"
21
- rescue Timeout::Error
22
- puts "TIMEOUT get"
23
- end
24
-
25
-
26
-
27
- puts "RC::CoolioAsync"
28
- RC::Facebook.builder.default_app = RC::CoolioAsync
29
- aget_facebook(:timeout => 0.01)
30
- aget_facebook(:timeout => 10.0)
31
- Coolio::Loop.default.run
32
- puts
33
-
34
-
35
-
36
- puts "RC::CoolioFiber"
37
- RC::Facebook.builder.default_app = RC::CoolioFiber
38
- Fiber.new{ get_facebook(:timeout => 0.01) }.resume
39
- Fiber.new{ get_facebook(:timeout => 10.0) }.resume
40
- Coolio::Loop.default.run
41
- puts
42
-
43
-
44
-
45
- puts "RC::Coolio"
46
- RC::Facebook.builder.default_app = RC::Coolio
47
- aget_facebook(:timeout => 0.01)
48
- aget_facebook(:timeout => 10.0)
49
- Fiber.new{ get_facebook(:timeout => 0.01) }.resume
50
- Fiber.new{ get_facebook(:timeout => 10.0) }.resume
51
- Coolio::Loop.default.run
52
- puts
53
-
54
-
55
-
56
- puts "RC::EmHttpRequestAsync"
57
- RC::Facebook.builder.default_app = RC::EmHttpRequestAsync
58
- EM.run{ aget_facebook(:timeout => 0.01){ EM.stop } }
59
- EM.run{ aget_facebook(:timeout => 10.0){ EM.stop } }
60
- puts
61
-
62
-
63
-
64
- puts "RC::EmHttpRequestFiber"
65
- RC::Facebook.builder.default_app = RC::EmHttpRequestFiber
66
- EM.run{ Fiber.new{ get_facebook(:timeout => 0.01); EM.stop }.resume }
67
- EM.run{ Fiber.new{ get_facebook(:timeout => 10.0); EM.stop }.resume }
68
- puts
69
-
70
-
71
-
72
- puts "RC::Auto for Coolio"
73
- RC::Facebook.builder.default_app = RC::Auto
74
- Coolio::TimerWatcher.new(1).attach(Coolio::Loop.default).on_timer{detach}
75
- aget_facebook(:timeout => 0.01)
76
- aget_facebook(:timeout => 10.0)
77
- Fiber.new{ get_facebook(:timeout => 0.01) }.resume
78
- Fiber.new{ get_facebook(:timeout => 10.0) }.resume
79
- Coolio::Loop.default.run
80
- puts
81
- puts "RC::Auto for EventMachine"
82
- EM.run{ aget_facebook(:timeout => 0.01){ EM.stop } }
83
- EM.run{ aget_facebook(:timeout => 10.0){ EM.stop } }
84
- EM.run{ Fiber.new{ get_facebook(:timeout => 0.01); EM.stop }.resume }
85
- EM.run{ Fiber.new{ get_facebook(:timeout => 10.0); EM.stop }.resume }
86
- puts
87
- puts "RC::Auto for RestClient"
88
- get_facebook(:timeout => 0.01)
89
- get_facebook(:timeout => 10.0)
data/example/facebook.rb DELETED
@@ -1,13 +0,0 @@
1
-
2
- require 'rest-more'
3
- require 'eventmachine'
4
-
5
- RestCore::Builder.default_app = RestCore::EmHttpRequest
6
-
7
- EM.run{
8
- Fiber.new{
9
- p RestCore::Facebook.new.get('4')
10
- EM.stop
11
- }.resume
12
- puts "It's not blocking..."
13
- }
@@ -1,22 +0,0 @@
1
-
2
- source 'http://rubygems.org'
3
-
4
- gem 'rails', '2.3.14'
5
-
6
- gem 'rest-client' # for rest-core
7
- gem 'rest-core', :path => '../../rest-core'
8
- gem 'rest-more', :path => '../../'
9
-
10
- group 'test' do
11
- gem 'rr'
12
- gem 'webmock'
13
- end
14
-
15
- platforms(:ruby) do
16
- gem 'yajl-ruby'
17
- end
18
-
19
- platforms(:jruby) do
20
- gem 'json'
21
- gem 'jruby-openssl'
22
- end
@@ -1,4 +0,0 @@
1
-
2
- Please fill config/rest-core.yaml with your app_id, secret, etc., to
3
- see if this example is working or not. The default setup is designed for
4
- standalone site with Facebook JavaScript SDK.
@@ -1,11 +0,0 @@
1
- # Add your own tasks in files placed in lib/tasks ending in .rake,
2
- # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
-
4
- require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5
-
6
- require 'rake/dsl_definition'
7
- require 'rake'
8
- require 'rake/testtask'
9
- require 'rake/rdoctask'
10
-
11
- require 'tasks/rails'
@@ -1,138 +0,0 @@
1
-
2
- class ApplicationController < ActionController::Base
3
- protect_from_forgery
4
-
5
- include RestCore::Facebook::RailsUtil
6
-
7
- before_filter :filter_common , :only => [:index]
8
- before_filter :filter_canvas , :only => [:canvas]
9
- before_filter :filter_options , :only => [:options]
10
- before_filter :filter_no_auto , :only => [:no_auto]
11
- before_filter :filter_diff_app_id , :only => [:diff_app_id]
12
- before_filter :filter_diff_canvas , :only => [:diff_canvas]
13
- before_filter :filter_iframe_canvas, :only => [:iframe_canvas]
14
- before_filter :filter_cache , :only => [:cache]
15
- before_filter :filter_hanlder , :only => [:handler_]
16
- before_filter :filter_session , :only => [:session_]
17
- before_filter :filter_cookies , :only => [:cookies_]
18
-
19
- def index
20
- render :text => rc_facebook.get('me').to_json
21
- end
22
- alias_method :canvas , :index
23
- alias_method :options , :index
24
- alias_method :diff_canvas , :index
25
- alias_method :iframe_canvas, :index
26
- alias_method :handler_ , :index
27
- alias_method :session_ , :index
28
- alias_method :cookies_ , :index
29
-
30
- def no_auto
31
- rc_facebook.get('me')
32
- rescue RestCore::Facebook::Error
33
- render :text => 'XD'
34
- end
35
-
36
- def diff_app_id
37
- render :text => rc_facebook.app_id
38
- end
39
-
40
- def cache
41
- url = rc_facebook.url('cache')
42
- rc_facebook.get('cache')
43
- rc_facebook.get('cache')
44
- render :text => Rails.cache.read(Digest::MD5.hexdigest(url))
45
- end
46
-
47
- def error
48
- raise RestCore::Facebook::Error.new("don't rescue me")
49
- end
50
-
51
- def reinitialize
52
- rc_facebook_setup(:cache => {'a' => 'b'})
53
- render :text => YAML.dump(rc_facebook.cache)
54
- end
55
-
56
- def helper; end
57
-
58
- def defaults
59
- rc_facebook_setup
60
- render :text => (rc_facebook.cache == Rails.cache &&
61
- rc_facebook.log_method.receiver == Rails.logger)
62
- end
63
-
64
- def parse_cookies
65
- rc_facebook_setup
66
- render :text => 'dummy'
67
- end
68
-
69
- # regression test
70
- def no_ns_pollution
71
- render :text => Timeout::Error.name
72
- end
73
-
74
- def redirect_uri
75
- rc_facebook_setup(:canvas => '')
76
- render :text => rc_facebook_normalized_request_uri
77
- end
78
-
79
- private
80
- def filter_common
81
- rc_facebook_setup(:auto_authorize => true, :canvas => '')
82
- end
83
-
84
- def filter_canvas
85
- rc_facebook_setup(:canvas => RestCore::Facebook.
86
- default_canvas,
87
- :auto_authorize_scope => 'publish_stream')
88
- end
89
-
90
- def filter_diff_canvas
91
- rc_facebook_setup(:canvas => 'ToT',
92
- :auto_authorize_scope => 'email')
93
- end
94
-
95
- def filter_iframe_canvas
96
- rc_facebook_setup(:canvas => 'zzz',
97
- :auto_authorize => true)
98
- end
99
-
100
- def filter_no_auto
101
- rc_facebook_setup(:auto_authorize => false)
102
- end
103
-
104
- def filter_diff_app_id
105
- rc_facebook_setup(:app_id => 'zzz',
106
- :auto_authorize => true)
107
- end
108
-
109
- def filter_options
110
- rc_facebook_setup(:auto_authorize_options => {:scope => 'bogus'},
111
- :canvas => nil)
112
- end
113
-
114
- def filter_cache
115
- rc_facebook_setup(:cache => Rails.cache)
116
- end
117
-
118
- def filter_hanlder
119
- rc_facebook_setup(:write_handler => method(:write_handler),
120
- :check_handler => method(:check_handler))
121
- end
122
-
123
- def write_handler fbs
124
- Rails.cache[:fbs] = fbs
125
- end
126
-
127
- def check_handler
128
- Rails.cache[:fbs]
129
- end
130
-
131
- def filter_session
132
- rc_facebook_setup(:write_session => true, :auto_authorize => true)
133
- end
134
-
135
- def filter_cookies
136
- rc_facebook_setup(:write_cookies => true, :auto_authorize => true)
137
- end
138
- end
@@ -1 +0,0 @@
1
- <%= rc_facebook.app_id %>
@@ -1,130 +0,0 @@
1
- # Don't change this file!
2
- # Configure your app in config/environment.rb and config/environments/*.rb
3
-
4
- RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
5
-
6
- module Rails
7
- class << self
8
- def boot!
9
- unless booted?
10
- preinitialize
11
- pick_boot.run
12
- end
13
- end
14
-
15
- def booted?
16
- defined? Rails::Initializer
17
- end
18
-
19
- def pick_boot
20
- (vendor_rails? ? VendorBoot : GemBoot).new
21
- end
22
-
23
- def vendor_rails?
24
- File.exist?("#{RAILS_ROOT}/vendor/rails")
25
- end
26
-
27
- def preinitialize
28
- load(preinitializer_path) if File.exist?(preinitializer_path)
29
- end
30
-
31
- def preinitializer_path
32
- "#{RAILS_ROOT}/config/preinitializer.rb"
33
- end
34
- end
35
-
36
- class Boot
37
- def run
38
- load_initializer
39
- Rails::Initializer.run(:set_load_path)
40
- end
41
- end
42
-
43
- class VendorBoot < Boot
44
- def load_initializer
45
- require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
46
- Rails::Initializer.run(:install_gem_spec_stubs)
47
- Rails::GemDependency.add_frozen_gem_path
48
- end
49
- end
50
-
51
- class GemBoot < Boot
52
- def load_initializer
53
- self.class.load_rubygems
54
- load_rails_gem
55
- require 'initializer'
56
- end
57
-
58
- def load_rails_gem
59
- if version = self.class.gem_version
60
- gem 'rails', version
61
- else
62
- gem 'rails'
63
- end
64
- rescue Gem::LoadError => load_error
65
- if load_error.message =~ /Could not find RubyGem rails/
66
- STDERR.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.)
67
- exit 1
68
- else
69
- raise
70
- end
71
- end
72
-
73
- class << self
74
- def rubygems_version
75
- Gem::RubyGemsVersion rescue nil
76
- end
77
-
78
- def gem_version
79
- if defined? RAILS_GEM_VERSION
80
- RAILS_GEM_VERSION
81
- elsif ENV.include?('RAILS_GEM_VERSION')
82
- ENV['RAILS_GEM_VERSION']
83
- else
84
- parse_gem_version(read_environment_rb)
85
- end
86
- end
87
-
88
- def load_rubygems
89
- min_version = '1.3.2'
90
- require 'rubygems'
91
- unless rubygems_version >= min_version
92
- $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
93
- exit 1
94
- end
95
-
96
- rescue LoadError
97
- $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org)
98
- exit 1
99
- end
100
-
101
- def parse_gem_version(text)
102
- $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/
103
- end
104
-
105
- private
106
- def read_environment_rb
107
- File.read("#{RAILS_ROOT}/config/environment.rb")
108
- end
109
- end
110
- end
111
- end
112
-
113
- # begin copied from http://gembundler.com/rails23.html
114
- class Rails::Boot
115
- def run
116
- load_initializer
117
-
118
- Rails::Initializer.class_eval do
119
- def load_gems
120
- @bundler_loaded ||= Bundler.require(:default, Rails.env.to_sym)
121
- end
122
- end
123
-
124
- Rails::Initializer.run(:set_load_path)
125
- end
126
- end
127
- # end copied from http://gembundler.com/rails23.html
128
-
129
- # All that for this:
130
- Rails.boot!