vine_client 0.0.6 → 0.0.7

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: 89920530ad17431f008655106ef8557d042470c9
4
- data.tar.gz: ef9f017012bd693d7cedece05f53ee9d8976362f
3
+ metadata.gz: f0129b2ad30114abf275501ea7eb2ca911e9298e
4
+ data.tar.gz: a6fa8509f0568b2365449d7c85c6cacee9e0a3e4
5
5
  SHA512:
6
- metadata.gz: ac9684fad297da8479b56c2fa228c99a8fec207d415ac30dcfa9fdc0ea5f78748dae904454dd6420b4e60733af6669ad8a4b7824e3fd0ad62d1fdcbae1e68133
7
- data.tar.gz: 7e06dd76cbabcb40c3ece828aac91382aee91fd5206e671c725fe5230042716a625661f745b886d1c732c373cb250f28aeaa05a11bd61fa5839c40012dfa3631
6
+ metadata.gz: e9cd8a7916b4c4d17b61c9630f915419c41f51d95ea8971590bf7d152a75ef44f16b5f2bd0f84f25f7d40d5fbce3f2da069199fd5c3e4b117b08e9f1b43e5cff
7
+ data.tar.gz: b5d8397bbbc2e6826813dfec23e384250615917ddc5f838623e09e7fb303e69e55e81d49dd659ac28e58f3307c8d9fa6ee71f7b32d55b004c61beef3caac7937
@@ -3,7 +3,6 @@ require 'faraday_middleware'
3
3
  require 'vine_client/request'
4
4
  require 'vine_client/client'
5
5
 
6
-
7
6
  module Vine
8
-
9
- end
7
+
8
+ end
@@ -1,10 +1,12 @@
1
+ require 'hashie'
2
+
1
3
  module Vine
2
4
  class Client
3
5
  include Request
4
6
  def initialize(name, pass)
5
- result=login(name,pass)
6
- @key=result['key']
7
- @userId=result['userId']
7
+ result = login(name,pass)
8
+ @key = result['key']
9
+ @userId = result['userId']
8
10
  end
9
11
 
10
12
  def login(name, pass)
@@ -23,23 +25,23 @@ module Vine
23
25
  get("/users/profiles/#{user_id}")
24
26
  end
25
27
 
26
- def search(keyword, page)
27
- get("/users/search/#{keyword}?page=#{page}")
28
+ def search(keyword, page = nil)
29
+ result = get("/users/search/#{keyword}?page=#{page}")
30
+ method = lambda{|keyword, page| get("/users/search/#{keyword}?page=#{page}")}
31
+ ResultSet.new(result, keyword, method)
28
32
  end
29
33
 
30
- def timelines(user_id=@userId)
31
- get("/timelines/users/#{user_id}")
34
+
35
+ def timelines(page = nil, user_id=@userId)
36
+ result = get("/timelines/users/#{user_id}?page=#{page}")
37
+ method = lambda{|user_id, page| get("/timelines/users/#{user_id}?page=#{page}")}
38
+ ResultSet.new(result, user_id, method)
32
39
  end
33
40
 
34
41
  def tag(tag=nil, page=nil)
35
- if tag
36
- if page
37
- get("/timelines/tags/#{tag}?page=#{page}")
38
- else
39
- get("/timelines/tags/#{tag}")
40
- end
41
-
42
- end
42
+ result = get("/timelines/tags/#{tag}?page=#{page}")
43
+ method = lambda{|tag, page| get("/timelines/tags/#{tag}?page=#{page}")}
44
+ ResultSet.new(result, tag, method)
43
45
  end
44
46
 
45
47
  def notifications(user_id=@userId)
@@ -54,4 +56,29 @@ module Vine
54
56
  get("/timelines/posts/#{post_id}") if post_id
55
57
  end
56
58
  end
59
+
60
+ class ResultSet
61
+ include Request
62
+ attr_reader :records, :current_page
63
+
64
+ def call_method(method, optional_param, page)
65
+ result = method.call(optional_param, page)
66
+ ResultSet.new(result, optional_param, method)
67
+ end
68
+
69
+ def initialize(result, optional_param,method)
70
+ p method
71
+ @current_page = result.nextPage.nil? ? 1 : result.nextPage - 1
72
+ @records = result.records.map{|vine| Video.new(vine.to_hash)}
73
+ define_singleton_method(:next_page){ call_method(method, optional_param, @current_page + 1)} unless result.nextPage.nil?
74
+ define_singleton_method(:previous_page){ call_method(method ,optional_param, @current_page - 1)} unless result.previousPage.nil?
75
+ end
76
+ end
77
+
78
+ class Video < Hashie::Mash
79
+ include Request
80
+ def like()
81
+ post("/posts/#{self.postId}/likes") if self.postId
82
+ end
83
+ end
57
84
  end
@@ -1,7 +1,7 @@
1
1
  module Vine
2
2
  module Request
3
3
 
4
- [:get,:put,:post,:delete].each{|verb|define_method(verb){|*arg| call(verb, arg[0],arg[1])}}
4
+ [:get,:put,:post,:delete].each{|verb| define_method(verb){|*arg| call(verb, arg[0],arg[1])}}
5
5
 
6
6
  def call(http_verb, path, params)
7
7
  result = connection.send(http_verb, path, params){|req| req[:vine_session_id]=@key if @key}
@@ -23,7 +23,7 @@ module Vine
23
23
  :verify => true
24
24
  },
25
25
  }
26
-
26
+
27
27
  Faraday.new(options) do |builder|
28
28
  builder.response :raise_error
29
29
  builder.response :mashify
@@ -33,4 +33,4 @@ module Vine
33
33
  end
34
34
  end
35
35
  end
36
- end
36
+ end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'vine_client'
3
- s.version = '0.0.6'
3
+ s.version = '0.0.7'
4
4
  s.date = '2013-07-14'
5
5
  s.summary = "vine_client"
6
6
  s.description = "ruby wraper for vine.co api"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vine_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Lozhkin