rest-more 3.3.1 → 3.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8d94a93481cb47814a0fe9e40aa939c0511b8972
4
- data.tar.gz: 3e51315c98ffe426c74e37e6d3384d60e7a0563a
3
+ metadata.gz: 98ac71864d29ae971e6089b3e162f0a15a69d277
4
+ data.tar.gz: 4dcf5ff68b60bcc92cef303ff8ca94e68feb9697
5
5
  SHA512:
6
- metadata.gz: 2c5c2ccbaff604f3272cb7db82620635a92772f6f7350059e3bff697044ca3bd4e6cca1e7a23600ebfbdb9070d19ba449aa0f5cca31148a55161f196774cae57
7
- data.tar.gz: fd1fa8e8c101fca082a8a59584ea85bc740c8d09c276ce04a156299626c0d65cdebc69bf652d0c3246ce73a3d7c7fad1676ea1d5d753cf137d9c013b18250226
6
+ metadata.gz: fda0e5a602f1105e6ce465915789df10198d8f91a20ded059541a9297da0cbdcd3cdfa93766406914fb70cb726b44cb73d820507533332be968e1497089e176f
7
+ data.tar.gz: 6847bb6f40a0a68db98b97147d32dadbc32cc1058491f7631d33df051068eb0495fc91c9bacaaf97c8c16585c01926440b705c0c1f9679f75ed01dbd18318a78
data/.gitignore CHANGED
@@ -1,2 +1,2 @@
1
1
  /pkg/
2
- Gemfile.lock
2
+ /coverage/
@@ -1,13 +1,15 @@
1
- before_install: 'git submodule update --init'
1
+
2
+ language: ruby
3
+ rvm:
4
+ - 2.0
5
+ - 2.1
6
+ - 2.2
7
+ - rbx-2
8
+ - jruby
9
+
10
+ install: 'bundle install --retry=3'
2
11
  script: 'ruby -r bundler/setup -S rake test:travis'
3
12
 
4
13
  env:
5
14
  - 'RESTMORE=rest-more'
6
15
  - 'RESTMORE=rails3'
7
-
8
- rvm:
9
- - 1.9.3
10
- - 2.0.0
11
- - ruby
12
- - rbx-2
13
- - jruby
data/CHANGES.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # CHANGES
2
2
 
3
+ ## rest-more 3.3.2 -- 2015-01-05
4
+
5
+ * Added RC::StackExchange#authorized?
6
+ * Removed RC::Firebase from autoloading.
7
+
3
8
  ## rest-more 3.3.1 -- 2014-10-08
4
9
 
5
10
  * Made `RC::Facebook#authorize_url` accepts the second argument as the option.
data/Gemfile CHANGED
@@ -18,6 +18,9 @@ gem 'multi_json'
18
18
 
19
19
  gem 'rack'
20
20
 
21
+ gem 'simplecov', :require => false if ENV['COV']
22
+ gem 'coveralls', :require => false if ENV['CI']
23
+
21
24
  platforms :ruby do
22
25
  gem 'yajl-ruby'
23
26
  end
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # rest-more [![Build Status](https://secure.travis-ci.org/godfat/rest-more.png?branch=master)](http://travis-ci.org/godfat/rest-more)
1
+ # rest-more [![Build Status](https://secure.travis-ci.org/godfat/rest-more.png?branch=master)](http://travis-ci.org/godfat/rest-more) [![Coverage Status](https://coveralls.io/repos/godfat/rest-more/badge.png)](https://coveralls.io/r/godfat/rest-more)
2
2
 
3
3
  by Lin Jen-Shin ([godfat](http://godfat.org))
4
4
 
@@ -14,6 +14,9 @@ talk is in Mandarin.
14
14
  * [github](https://github.com/godfat/rest-more)
15
15
  * [rubygems](https://rubygems.org/gems/rest-more)
16
16
  * [rdoc](http://rdoc.info/projects/godfat/rest-more)
17
+ * [mailing list](http://www.freelists.org/list/rest-core)
18
+ Send your questions to: <rest-core@freelists.org> and you could read
19
+ through [archives](http://www.freelists.org/archives/rest-core)
17
20
 
18
21
  ## DESCRIPTION:
19
22
 
@@ -323,7 +326,7 @@ Which is using `RestCore::Universal` for accessing arbitrary websites.
323
326
 
324
327
  Apache License 2.0
325
328
 
326
- Copyright (c) 2011-2014, Lin Jen-Shin (godfat)
329
+ Copyright (c) 2011-2015, Lin Jen-Shin (godfat)
327
330
 
328
331
  Licensed under the Apache License, Version 2.0 (the "License");
329
332
  you may not use this file except in compliance with the License.
data/Rakefile CHANGED
@@ -52,6 +52,10 @@ task 'test:json' do
52
52
  }
53
53
  end
54
54
 
55
+ task 'test' do
56
+ SimpleCov.add_filter('rest-core/lib') if ENV['COV'] || ENV['CI']
57
+ end
58
+
55
59
  task 'test:travis' do
56
60
  case ENV['RESTMORE']
57
61
  when 'rails3'; Gemgem.test_rails('rails3')
@@ -62,10 +62,10 @@ module RestCore::Github::Client
62
62
  def all path, query={}, opts={}
63
63
  q = {:per_page => MAX_PER_PAGE}.merge(query)
64
64
  r = get(path, q, opts.merge(RESPONSE_KEY => PROMISE)).then{ |response|
65
- body = response[RESPONSE_BODY] + (page_range(response).map{ |page|
65
+ body = response[RESPONSE_BODY] + page_range(response).map{ |page|
66
66
  get(path, q.merge(:page => page),
67
67
  opts.merge(RESPONSE_KEY => RESPONSE_BODY))
68
- }.inject([], &:+))
68
+ }.inject([], &:+)
69
69
  response.merge(RESPONSE_BODY => body)
70
70
  }.future_response
71
71
 
@@ -56,6 +56,10 @@ module RestCore::StackExchange::Client
56
56
  end
57
57
  end
58
58
 
59
+ def authorized?
60
+ !!access_token
61
+ end
62
+
59
63
  private
60
64
  def default_data ; {}; end
61
65
  def default_query; {:key => key, :site => 'stackoverflow'}; end
@@ -4,7 +4,6 @@ require 'rest-core'
4
4
  module RestCore
5
5
  autoload :Dropbox , 'rest-core/client/dropbox'
6
6
  autoload :Facebook , 'rest-core/client/facebook'
7
- autoload :Firebase , 'rest-core/client/firebase'
8
7
  autoload :Github , 'rest-core/client/github'
9
8
  autoload :Instagram , 'rest-core/client/instagram'
10
9
  autoload :Linkedin , 'rest-core/client/linkedin'
@@ -1,4 +1,4 @@
1
1
 
2
2
  module RestMore
3
- VERSION = '3.3.1'
3
+ VERSION = '3.3.2'
4
4
  end
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: rest-more 3.3.1 ruby lib
2
+ # stub: rest-more 3.3.2 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "rest-more"
6
- s.version = "3.3.1"
6
+ s.version = "3.3.2"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib"]
10
10
  s.authors = ["Lin Jen-Shin (godfat)"]
11
- s.date = "2014-10-08"
11
+ s.date = "2015-01-05"
12
12
  s.description = "Various REST clients such as Facebook and Twitter built with [rest-core][].\n\n[rest-core]: https://github.com/godfat/rest-core"
13
13
  s.email = ["godfat (XD) godfat.org"]
14
14
  s.executables = ["rib-rest-core"]
@@ -83,7 +83,7 @@ Gem::Specification.new do |s|
83
83
  "test/twitter/test_twitter.rb"]
84
84
  s.homepage = "https://github.com/godfat/rest-more"
85
85
  s.licenses = ["Apache License 2.0"]
86
- s.rubygems_version = "2.4.2"
86
+ s.rubygems_version = "2.4.5"
87
87
  s.summary = "Various REST clients such as Facebook and Twitter built with [rest-core][]."
88
88
  s.test_files = [
89
89
  "test/dropbox/test_dropbox.rb",
@@ -38,6 +38,99 @@ module Gemgem
38
38
  self.spec = spec
39
39
  end
40
40
 
41
+ def gem_install
42
+ require 'rubygems/commands/install_command'
43
+ # read ~/.gemrc
44
+ Gem.use_paths(Gem.configuration[:gemhome], Gem.configuration[:gempath])
45
+ Gem::Command.extra_args = Gem.configuration[:gem]
46
+
47
+ # setup install options
48
+ cmd = Gem::Commands::InstallCommand.new
49
+ cmd.handle_options([])
50
+
51
+ # install
52
+ install = Gem::Installer.new(gem_path, cmd.options)
53
+ install.install
54
+ puts "\e[35mGem installed: \e[33m#{strip_path(install.gem_dir)}\e[0m"
55
+ end
56
+
57
+ def gem_spec
58
+ create
59
+ write
60
+ end
61
+
62
+ def gem_build
63
+ require 'fileutils'
64
+ require 'rubygems/package'
65
+ gem = nil
66
+ Dir.chdir(dir) do
67
+ gem = Gem::Package.build(Gem::Specification.load(spec_path))
68
+ FileUtils.mkdir_p(pkg_dir)
69
+ FileUtils.mv(gem, pkg_dir) # gem is relative path, but might be ok
70
+ end
71
+ puts "\e[35mGem built: \e[33m#{strip_path("#{pkg_dir}/#{gem}")}\e[0m"
72
+ end
73
+
74
+ def gem_release
75
+ sh_git('tag', gem_tag)
76
+ sh_git('push')
77
+ sh_git('push', '--tags')
78
+ sh_gem('push', gem_path)
79
+ end
80
+
81
+ def gem_check
82
+ ver = spec.version.to_s
83
+
84
+ if ENV['VERSION'].nil?
85
+ puts("\e[35mExpected " \
86
+ "\e[33mVERSION\e[35m=\e[33m#{ver}\e[0m")
87
+ exit(1)
88
+
89
+ elsif ENV['VERSION'] != ver
90
+ puts("\e[35mExpected \e[33mVERSION\e[35m=\e[33m#{ver} " \
91
+ "\e[35mbut got\n " \
92
+ "\e[33mVERSION\e[35m=\e[33m#{ENV['VERSION']}\e[0m")
93
+ exit(2)
94
+ end
95
+ end
96
+
97
+ def test
98
+ return if test_files.empty?
99
+
100
+ if ENV['COV'] || ENV['CI']
101
+ require 'simplecov'
102
+ if ENV['CI']
103
+ require 'coveralls'
104
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
105
+ end
106
+ SimpleCov.start do
107
+ add_filter('test/')
108
+ add_filter('test.rb')
109
+ end
110
+ end
111
+
112
+ test_files.each{ |file| require "#{dir}/#{file[0..-4]}" }
113
+ end
114
+
115
+ def clean
116
+ return if ignored_files.empty?
117
+
118
+ require 'fileutils'
119
+ trash = File.expand_path("~/.Trash/#{spec.name}")
120
+ puts "Move the following files into: \e[35m#{strip_path(trash)}\e[33m"
121
+
122
+ ignored_files.each do |file|
123
+ from = "#{dir}/#{file}"
124
+ to = "#{trash}/#{File.dirname(file)}"
125
+ puts strip_path(from)
126
+
127
+ FileUtils.mkdir_p(to)
128
+ FileUtils.mv(from, to)
129
+ end
130
+
131
+ print "\e[0m"
132
+ end
133
+
41
134
  def write
42
135
  File.open(spec_path, 'w'){ |f| f << split_lines(spec.to_ruby) }
43
136
  end
@@ -173,82 +266,38 @@ namespace :gem do
173
266
 
174
267
  desc 'Install gem'
175
268
  task :install => [:build] do
176
- Gemgem.sh_gem('install', Gemgem.gem_path)
269
+ Gemgem.gem_install
177
270
  end
178
271
 
179
272
  desc 'Build gem'
180
273
  task :build => [:spec] do
181
- require 'fileutils'
182
- require 'rubygems/package'
183
- gem = nil
184
- Dir.chdir(Gemgem.dir) do
185
- gem = Gem::Package.build(Gem::Specification.load(Gemgem.spec_path))
186
- FileUtils.mkdir_p(Gemgem.pkg_dir)
187
- FileUtils.mv(gem, Gemgem.pkg_dir) # gem is relative path, but might be ok
188
- end
189
- puts "\e[35mGem built: \e[33m" \
190
- "#{Gemgem.strip_path("#{Gemgem.pkg_dir}/#{gem}")}\e[0m"
274
+ Gemgem.gem_build
191
275
  end
192
276
 
193
277
  desc 'Generate gemspec'
194
278
  task :spec do
195
- Gemgem.create
196
- Gemgem.write
279
+ Gemgem.gem_spec
197
280
  end
198
281
 
199
282
  desc 'Release gem'
200
283
  task :release => [:spec, :check, :build] do
201
- Gemgem.module_eval do
202
- sh_git('tag', Gemgem.gem_tag)
203
- sh_git('push')
204
- sh_git('push', '--tags')
205
- sh_gem('push', Gemgem.gem_path)
206
- end
284
+ Gemgem.gem_release
207
285
  end
208
286
 
209
287
  task :check do
210
- ver = Gemgem.spec.version.to_s
211
-
212
- if ENV['VERSION'].nil?
213
- puts("\e[35mExpected " \
214
- "\e[33mVERSION\e[35m=\e[33m#{ver}\e[0m")
215
- exit(1)
216
-
217
- elsif ENV['VERSION'] != ver
218
- puts("\e[35mExpected \e[33mVERSION\e[35m=\e[33m#{ver} " \
219
- "\e[35mbut got\n " \
220
- "\e[33mVERSION\e[35m=\e[33m#{ENV['VERSION']}\e[0m")
221
- exit(2)
222
- end
288
+ Gemgem.gem_check
223
289
  end
224
290
 
225
291
  end # of gem namespace
226
292
 
227
293
  desc 'Run tests'
228
294
  task :test do
229
- next if Gemgem.test_files.empty?
230
- Gemgem.test_files.each{ |file| require "#{Gemgem.dir}/#{file[0..-4]}" }
295
+ Gemgem.test
231
296
  end
232
297
 
233
298
  desc 'Trash ignored files'
234
299
  task :clean => ['gem:spec'] do
235
- next if Gemgem.ignored_files.empty?
236
-
237
- require 'fileutils'
238
- trash = File.expand_path("~/.Trash/#{Gemgem.spec.name}")
239
- puts "Move the following files into:" \
240
- " \e[35m#{Gemgem.strip_path(trash)}\e[33m"
241
-
242
- Gemgem.ignored_files.each do |file|
243
- from = "#{Gemgem.dir}/#{file}"
244
- to = "#{trash}/#{File.dirname(file)}"
245
- puts Gemgem.strip_path(from)
246
-
247
- FileUtils.mkdir_p(to)
248
- FileUtils.mv(from, to)
249
- end
250
-
251
- print "\e[0m"
300
+ Gemgem.clean
252
301
  end
253
302
 
254
303
  task :default do
@@ -59,6 +59,7 @@ describe RC::Facebook::Error do
59
59
  rg = RC::Facebook.new(:cache => {},
60
60
  :error_handler => lambda{|env|env})
61
61
  rg.get('me'); rg.get('me')
62
+ rg.wait
62
63
  rg.cache.values.should.eq []
63
64
  end
64
65
  end
@@ -67,7 +67,8 @@ describe RC::Facebook do
67
67
  f.for_pages(data, pages, {}, kind){ |r|
68
68
  r.should.eq expects.shift
69
69
  }
70
- f.wait until expects.empty?
70
+ f.wait
71
+ expects.should.empty?
71
72
 
72
73
  # this data cannot be merged
73
74
  stub_request(:get, 'zzz').to_return(:body => '{"data":"y"}')
@@ -75,7 +76,8 @@ describe RC::Facebook do
75
76
  f.for_pages(data, pages, {}, kind){ |r|
76
77
  r.should.eq expects.shift
77
78
  }
78
- f.wait until expects.empty?
79
+ f.wait
80
+ expects.should.empty?
79
81
  }
80
82
 
81
83
  stub_request(:get, 'zzz').to_return(:body =>
@@ -87,7 +89,8 @@ describe RC::Facebook do
87
89
  f.for_pages(data, 3, {}, kind){ |r|
88
90
  r.should.eq expects.shift
89
91
  }
90
- f.wait until expects.empty?
92
+ f.wait
93
+ expects.should.empty?
91
94
  }
92
95
  end
93
96
  end
@@ -77,7 +77,7 @@ describe RC::Facebook do
77
77
 
78
78
  describe 'signed_request' do
79
79
  def encode str
80
- [str].pack('m').tr("\n=", '').tr('+/', '-_')
80
+ [str].pack('m0').tr('=', '').tr('+/', '-_')
81
81
  end
82
82
 
83
83
  def setup_sr secret, data, sig=nil
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-more
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.1
4
+ version: 3.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lin Jen-Shin (godfat)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-08 00:00:00.000000000 Z
11
+ date: 2015-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-core
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  version: '0'
124
124
  requirements: []
125
125
  rubyforge_project:
126
- rubygems_version: 2.4.2
126
+ rubygems_version: 2.4.5
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: Various REST clients such as Facebook and Twitter built with [rest-core][].