rest-more 0.7.0 → 0.7.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/.gitmodules CHANGED
@@ -1,3 +1,6 @@
1
1
  [submodule "task"]
2
2
  path = task
3
3
  url = git://github.com/godfat/gemgem.git
4
+ [submodule "rest-core"]
5
+ path = rest-core
6
+ url = git://github.com/cardinalblue/rest-core.git
data/.travis.yml CHANGED
@@ -9,5 +9,5 @@ rvm:
9
9
  - 1.8.7
10
10
  - 1.9.2
11
11
  - 1.9.3
12
- - rbx-2.0
12
+ - rbx
13
13
  - jruby
data/CHANGES.md CHANGED
@@ -1,7 +1,26 @@
1
1
  # CHANGES
2
2
 
3
+ ## rest-more 0.7.1 -- 2011-10-31
4
+
5
+ ### Bugs fixes
6
+
7
+ * [Mixi] Fixed `RC::Mixi.new(:access_token => 'access_token')` which is not
8
+ working before.
9
+
10
+ ### Enhancement
11
+
12
+ * [Mixi] `RC::Mixi#authorize!` now works like `RC::Facebook#authorize!`
13
+ That is now we pass code like this: `mixi.authorize!(:code => code)`
14
+
15
+ * `RestCore::Config` and `RestCore::RailsUtilUtil` are now moved to rest-more
16
+
3
17
  ## rest-more 0.7.0 -- 2011-10-08
4
18
 
5
19
  * Extracted from [rest-core][] 0.4.0
20
+ * [Facebook] Added `RC::Facebook#parse_fbsr!` which can parse Facebook's new
21
+ cookie. Also, `RC::Facebook#parse_cookies!` would look for that too.
22
+ * [Facebook] Fixed that parsing an invalid signed_request would raise an
23
+ error. From now on it would simply ignore it and wipe out the data.
24
+ * [Flurry] Some minor updates.
6
25
 
7
26
  [rest-core]: https://github.com/cardinalblue/rest-core
data/Rakefile CHANGED
@@ -3,7 +3,8 @@
3
3
  require "#{dir = File.dirname(__FILE__)}/task/gemgem"
4
4
  Gemgem.dir = dir
5
5
 
6
- ($LOAD_PATH << File.expand_path("#{Gemgem.dir}/lib" )).uniq!
6
+ ($LOAD_PATH << File.expand_path("#{Gemgem.dir}/lib" ) <<
7
+ File.expand_path("#{Gemgem.dir}/rest-core/lib")).uniq!
7
8
 
8
9
  desc 'Generate gemspec'
9
10
  task 'gem:spec' do
@@ -17,6 +18,9 @@ task 'gem:spec' do
17
18
 
18
19
  s.authors = ['Cardinal Blue', 'Lin Jen-Shin (godfat)']
19
20
  s.email = ['dev (XD) cardinalblue.com']
21
+
22
+ # exclude rest-core
23
+ s.files.reject!{ |f| f.start_with?('rest-core/') }
20
24
  end
21
25
 
22
26
  Gemgem.write
@@ -73,7 +73,7 @@ module RestCore::Facebook::Client
73
73
  data['access_token'] || data['oauth_token'] if data.kind_of?(Hash)
74
74
  end
75
75
 
76
- def access_token= token
76
+ def access_token= token
77
77
  data['access_token'] = token if data.kind_of?(Hash)
78
78
  end
79
79
 
@@ -247,7 +247,7 @@ module RestCore::Facebook::Client
247
247
  end
248
248
 
249
249
  def fbs_without_sig cookies
250
- cookies.reject{ |(k, v)| k == 'sig' }.sort.map{ |a| a.join('=') }
250
+ cookies.reject{ |(k, _)| k == 'sig' }.sort.map{ |a| a.join('=') }
251
251
  end
252
252
 
253
253
  def merge_data lhs, rhs
@@ -68,7 +68,7 @@ module RestCore::Flurry::Client
68
68
  - (current - start) / (86400*7)
69
69
  # calling .last to discard week numbers created by group_by
70
70
  }.sort.map(&:last).map{ |week|
71
- week.map{ |(date, num)| num }.inject(&:+) }
71
+ week.map{ |(_, num)| num }.inject(&:+) }
72
72
  end
73
73
 
74
74
  # >> f.sum(f.weekly(f.metrics('ActiveUsers', {}, :weeks => 4)))
@@ -98,7 +98,7 @@ module RestCore::Flurry::Client
98
98
 
99
99
  [query.merge(:startDate => startDate,
100
100
  :endDate => endDate),
101
- opts.reject{ |k| [:days, :weeks, :months].include?(k) }]
101
+ opts.reject{ |k, _| [:days, :weeks, :months].include?(k) }]
102
102
  end
103
103
  end
104
104
 
@@ -16,7 +16,7 @@ RestCore::Mixi = RestCore::Builder.client(
16
16
  use s::JsonDecode , true
17
17
  end
18
18
 
19
- use s::Defaults , :data => lambda{{}}
19
+ use s::Defaults , :data => lambda{{}}
20
20
  end
21
21
 
22
22
  module RestCore::Mixi::Client
@@ -26,6 +26,10 @@ module RestCore::Mixi::Client
26
26
  data['access_token'] if data.kind_of?(Hash)
27
27
  end
28
28
 
29
+ def access_token= token
30
+ data['access_token'] = token if data.kind_of?(Hash)
31
+ end
32
+
29
33
  def authorize_url queries={}
30
34
  url('https://mixi.jp/connect_authorize.pl',
31
35
  {:client_id => consumer_key,
@@ -33,12 +37,11 @@ module RestCore::Mixi::Client
33
37
  :scope => 'r_profile'}.merge(queries))
34
38
  end
35
39
 
36
- def authorize! code, payload={}, opts={}
40
+ def authorize! payload={}, opts={}
37
41
  pl = {:client_id => consumer_key ,
38
42
  :client_secret => consumer_secret,
39
43
  :redirect_uri => redirect_uri ,
40
- :grant_type => 'authorization_code',
41
- :code => code}.merge(payload)
44
+ :grant_type => 'authorization_code'}.merge(payload)
42
45
 
43
46
  self.data = post('https://secure.mixi-platform.com/2/token', pl, {}, opts)
44
47
  end
@@ -19,7 +19,7 @@ RestCore::Twitter = RestCore::Builder.client(:data) do
19
19
  use s::JsonDecode , true
20
20
  end
21
21
 
22
- use s::Defaults , :data => lambda{{}}
22
+ use s::Defaults , :data => lambda{{}}
23
23
  end
24
24
 
25
25
  class RestCore::Twitter::Error < RestCore::Error
@@ -0,0 +1,55 @@
1
+
2
+ require 'erb'
3
+ require 'yaml'
4
+
5
+ module RestCore; end
6
+ module RestCore::Config
7
+ extend self
8
+
9
+ DefaultModuleName = 'DefaultAttributes'
10
+
11
+ def load_for_rails klass, namespace=nil, app=Rails
12
+ root = File.expand_path(app.root)
13
+ path = ["#{root}/config/rest-core.yaml", # YAML should use .yaml
14
+ "#{root}/config/rest-core.yml" ].find{|p| File.exist?(p)}
15
+ return if path.nil?
16
+ RestCore::Config.load(klass, path, app.env, namespace)
17
+ end
18
+
19
+ def load klass, path, env, namespace=nil
20
+ config = YAML.load(ERB.new(File.read(path)).result(binding))
21
+ defaults = config[env]
22
+ return false unless defaults
23
+ return false unless defaults[namespace] if namespace
24
+ data = if namespace
25
+ defaults[namespace]
26
+ else
27
+ defaults
28
+ end
29
+ raise ArgumentError.new("#{data} is not a hash") unless
30
+ data.kind_of?(Hash)
31
+
32
+ mod = if klass.const_defined?(DefaultModuleName)
33
+ klass.const_get(DefaultModuleName)
34
+ else
35
+ klass.send(:const_set, DefaultModuleName, Module.new)
36
+ end
37
+
38
+ singleton_class = if klass.respond_to?(:singleton_class)
39
+ klass.singleton_class
40
+ else
41
+ class << klass; self; end
42
+ end
43
+
44
+ klass.send(:extend, mod) unless singleton_class < mod
45
+
46
+ mod.module_eval(data.inject(["extend self\n"]){ |r, (k, v)|
47
+ # quote strings, leave others free (e.g. false, numbers, etc)
48
+ r << <<-RUBY
49
+ def default_#{k}
50
+ #{v.kind_of?(String) ? "'#{v}'" : v}
51
+ end
52
+ RUBY
53
+ }.join, __FILE__, __LINE__)
54
+ end
55
+ end
@@ -0,0 +1,19 @@
1
+
2
+ module RestCore; end
3
+ module RestCore::RailsUtilUtil
4
+ module Cache
5
+ def [] key ; read(key) ; end
6
+ def []= key, value; write(key, value) ; end
7
+ def store key, value,
8
+ options={}; write(key, value, options); end
9
+ end
10
+
11
+ module_function
12
+ def extract_options members, options, method
13
+ # Hash[] is for ruby 1.8.7
14
+ # map(&:to_sym) is for ruby 1.8.7
15
+ Hash[options.send(method){ |(k, v)| members.map(&:to_sym).member?(k) }]
16
+ end
17
+ end
18
+
19
+ ActiveSupport::Cache::Store.send(:include, RestCore::RailsUtilUtil::Cache)
data/lib/rest-more.rb CHANGED
@@ -2,6 +2,8 @@
2
2
  require 'rest-core'
3
3
 
4
4
  module RestCore
5
+ autoload :Config , 'rest-core/util/config'
6
+
5
7
  autoload :Github , 'rest-core/client/github'
6
8
  autoload :Twitter , 'rest-core/client/twitter'
7
9
  autoload :Linkedin, 'rest-core/client/linkedin'
@@ -0,0 +1,3 @@
1
+
2
+ require 'rest-core/test'
3
+ require 'rest-more'
@@ -1,4 +1,4 @@
1
1
 
2
2
  module RestMore
3
- VERSION = '0.7.0'
3
+ VERSION = '0.7.1'
4
4
  end
data/rest-more.gemspec CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rest-more"
5
- s.version = "0.7.0"
5
+ s.version = "0.7.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = [
9
9
  "Cardinal Blue",
10
10
  "Lin Jen-Shin (godfat)"]
11
- s.date = "2011-10-08"
11
+ s.date = "2011-10-31"
12
12
  s.description = "Various REST clients such as Facebook and Twitter built with [rest-core][]\n\n[rest-core]: https://github.com/cardinalblue/rest-core"
13
13
  s.email = ["dev (XD) cardinalblue.com"]
14
14
  s.files = [
@@ -71,7 +71,10 @@ Gem::Specification.new do |s|
71
71
  "lib/rest-core/client/simple.rb",
72
72
  "lib/rest-core/client/twitter.rb",
73
73
  "lib/rest-core/client/universal.rb",
74
+ "lib/rest-core/util/config.rb",
75
+ "lib/rest-core/util/rails_util_util.rb",
74
76
  "lib/rest-more.rb",
77
+ "lib/rest-more/test.rb",
75
78
  "lib/rest-more/version.rb",
76
79
  "rest-more.gemspec",
77
80
  "task/.gitignore",
@@ -91,6 +94,7 @@ Gem::Specification.new do |s|
91
94
  "test/client/facebook/test_serialize.rb",
92
95
  "test/client/facebook/test_timeout.rb",
93
96
  "test/client/flurry/test_metrics.rb",
97
+ "test/client/mixi/test_api.rb",
94
98
  "test/client/twitter/test_api.rb"]
95
99
  s.homepage = "https://github.com/cardinalblue/rest-more"
96
100
  s.require_paths = ["lib"]
@@ -111,6 +115,7 @@ Gem::Specification.new do |s|
111
115
  "test/client/facebook/test_serialize.rb",
112
116
  "test/client/facebook/test_timeout.rb",
113
117
  "test/client/flurry/test_metrics.rb",
118
+ "test/client/mixi/test_api.rb",
114
119
  "test/client/twitter/test_api.rb"]
115
120
 
116
121
  if s.respond_to? :specification_version then
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
  after do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
  after do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
  should 'honor default attributes' do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook::Error do
5
5
  after do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
  after do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  require 'rest-core/util/config'
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
  after do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
  before do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
  after do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
  after do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
  after do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Facebook do
5
5
  after do
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  require 'time'
5
5
 
@@ -70,7 +70,6 @@ describe RestCore::Flurry do
70
70
 
71
71
  should 'metrics("ActiveUsers")' do
72
72
  @flurry.metrics('ActiveUsers', {}, :weeks => 4).should.eq @active_users
73
-
74
73
  end
75
74
 
76
75
  should 'weekly(metrics("ActiveUsers"))' do
@@ -0,0 +1,20 @@
1
+
2
+ require 'rest-more/test'
3
+
4
+ describe RC::Mixi do
5
+ after do
6
+ WebMock.reset!
7
+ RR.verify
8
+ end
9
+
10
+ should 'get right' do
11
+ stub_request(:get, 'http://api.mixi-platform.com/me').
12
+ to_return(:body => '{"status": "OK"}')
13
+
14
+ RC::Mixi.new.get('me').should.eq({'status' => 'OK'})
15
+ end
16
+
17
+ should 'be able to set access_token' do
18
+ RC::Mixi.new(:access_token => 'QQ').access_token.should.eq 'QQ'
19
+ end
20
+ end
@@ -1,5 +1,5 @@
1
1
 
2
- require 'rest-core/test'
2
+ require 'rest-more/test'
3
3
 
4
4
  describe RestCore::Twitter do
5
5
  after do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-more
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-10-08 00:00:00.000000000Z
13
+ date: 2011-10-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-core
17
- requirement: &2160791120 !ruby/object:Gem::Requirement
17
+ requirement: &2160851080 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2160791120
25
+ version_requirements: *2160851080
26
26
  description: ! 'Various REST clients such as Facebook and Twitter built with [rest-core][]
27
27
 
28
28
 
@@ -92,7 +92,10 @@ files:
92
92
  - lib/rest-core/client/simple.rb
93
93
  - lib/rest-core/client/twitter.rb
94
94
  - lib/rest-core/client/universal.rb
95
+ - lib/rest-core/util/config.rb
96
+ - lib/rest-core/util/rails_util_util.rb
95
97
  - lib/rest-more.rb
98
+ - lib/rest-more/test.rb
96
99
  - lib/rest-more/version.rb
97
100
  - rest-more.gemspec
98
101
  - task/.gitignore
@@ -112,6 +115,7 @@ files:
112
115
  - test/client/facebook/test_serialize.rb
113
116
  - test/client/facebook/test_timeout.rb
114
117
  - test/client/flurry/test_metrics.rb
118
+ - test/client/mixi/test_api.rb
115
119
  - test/client/twitter/test_api.rb
116
120
  homepage: https://github.com/cardinalblue/rest-more
117
121
  licenses: []
@@ -152,4 +156,5 @@ test_files:
152
156
  - test/client/facebook/test_serialize.rb
153
157
  - test/client/facebook/test_timeout.rb
154
158
  - test/client/flurry/test_metrics.rb
159
+ - test/client/mixi/test_api.rb
155
160
  - test/client/twitter/test_api.rb