croudia 1.0.14 → 1.0.15

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: cf93c107da3e67e76893d1ad119b53d1b6e111b3
4
- data.tar.gz: 423b2e63ad81479d8d4c1666a99dd084f007a340
3
+ metadata.gz: ba8b2c711483759304f9c6e9d3142c595ba5f8fc
4
+ data.tar.gz: 2b00fe7aa4eed970cedfc9175bd3d49c0bdc1baf
5
5
  SHA512:
6
- metadata.gz: dc0deaa61d80e277e8346209188b63e75cccbc27d5fadacea9ee1abf8d037b3f897560ec64e28bb278f079fa997b569c4e6dbd8d0f99efae32cb8eb92646877e
7
- data.tar.gz: eb4fd9578e55b0c5468dd92776ffb8f871705956457d5acfbc4f198941f2715b51a72471ef28e9615aff210dbe128158ace2838f849bfb15c4eb75510d62a77a
6
+ metadata.gz: 724038816211fd2537c9cc8cbfe00d4476d58f4444318964d7d821f7c5faa15d5e5716358ac52f4155ae932ce64be48b46c3506ab95d3f5b7469b0060316712a
7
+ data.tar.gz: ea16c2207d4eae82ee7d1261f6047f7c7cad0dc2e01b647b2629877977347953b85cebacac57e352868f844505c17963efe927918858d2403fe7870a4bf3a76a
data/.travis.yml CHANGED
@@ -2,3 +2,11 @@ language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
4
  - 1.9.3
5
+ deploy:
6
+ provider: rubygems
7
+ api_key:
8
+ secure: UZBvpa1if3PwDR7xRI1Hrhzz9pu+jUcbsHuDrMAm8DYdNsiBfja6ZxSDFvF9S+wOtkQFLGzUJS8OXIL/iKar2aCTNZxqrTThehtOqhyGeBog/3omYUp5Hw3hBL3XFbls4cfBQZTRTD/LJHhRdi/bo3tI8aqqU5ulAx4F893KjNs=
9
+ gem: croudia
10
+ on:
11
+ tags: true
12
+ repo: wktk/croudia-gem
@@ -2,19 +2,14 @@ require 'croudia/base'
2
2
 
3
3
  module Croudia
4
4
  class AccessToken < Croudia::Base
5
- KEYS = [
5
+ attr_reader(
6
6
  :access_token,
7
7
  :expires_in,
8
8
  :refresh_token,
9
- :token_type,
10
- ]
11
-
12
- attr_reader(*KEYS)
9
+ :token_type
10
+ )
13
11
 
14
12
  alias :token :access_token
15
-
16
- def to_s
17
- access_token
18
- end
13
+ alias :to_s :access_token
19
14
  end
20
15
  end
data/lib/croudia/base.rb CHANGED
@@ -1,37 +1,71 @@
1
- module Croudia
2
- class Base
3
- class << self
4
- def attr_reader(*attrs)
5
- attrs.each do |attr|
6
- define_method(attr) do
7
- @attrs[attr.to_s] || @attrs[attr.to_sym]
8
- end
9
- end
10
- end
11
- end
12
-
13
- # Initialize a new object
14
- #
15
- # @param attrs [Hash]
16
- # @return [Croudia::Base]
17
- def initialize(attrs = {})
18
- @attrs = attrs || {}
19
- end
20
-
21
- # Fetch an attribute
22
- #
23
- # @param name [String, Symobol]
24
- def [](name)
25
- __send__(name.to_sym)
26
- rescue NoMethodError
27
- nil
28
- end
29
-
30
- # @return [Hash]
31
- def attrs
32
- @attrs
33
- end
34
- alias to_h attrs
35
- alias to_hash attrs
36
- end
37
- end
1
+ module Croudia
2
+ class Base
3
+ class << self
4
+ def attr_reader(*attrs)
5
+ attrs.each do |attr|
6
+ define_method(attr) do
7
+ @attrs[attr.to_s] || @attrs[attr.to_sym]
8
+ end
9
+ end
10
+ end
11
+
12
+ # @param attrs [Hash] { name: Class, name: Class, ... }
13
+ def attr_object_reader(attrs)
14
+ attrs.each_pair do |path, klass|
15
+ path = [path] unless path.is_a?(Array)
16
+ attr = path.join('_').to_sym
17
+
18
+ define_method(path.last) do
19
+ object = instance_variable_get("@#{attr}")
20
+
21
+ unless object
22
+ object_attrs = @attrs
23
+ path.each { |p| object_attrs = object_attrs[p.to_s] }
24
+
25
+ object = if object_attrs.nil?
26
+ nil
27
+ elsif klass.is_a?(Array)
28
+ klass = klass.shift
29
+ object_attrs.map { |o| klass.new(o) }
30
+ else
31
+ klass.new(object_attrs)
32
+ end
33
+
34
+ instance_variable_set("@#{attr}", object)
35
+ end
36
+
37
+ object
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ # Initialize a new object
44
+ #
45
+ # @param attrs [Hash]
46
+ # @return [Croudia::Base]
47
+ def initialize(attrs = {})
48
+ @attrs = attrs || {}
49
+ end
50
+
51
+ # Fetch an attribute
52
+ #
53
+ # @param name [String, Symobol]
54
+ def [](name)
55
+ __send__(name.to_sym)
56
+ rescue NoMethodError
57
+ nil
58
+ end
59
+
60
+ # @return [Hash]
61
+ def attrs
62
+ @attrs
63
+ end
64
+ alias to_h attrs
65
+ alias to_hash attrs
66
+
67
+ def inspect
68
+ "#<#{self.class}:0x#{__id__.abs.to_s(16)} #{@attrs.inspect}>"
69
+ end
70
+ end
71
+ end
@@ -2,20 +2,19 @@ require 'croudia/base'
2
2
 
3
3
  module Croudia
4
4
  class Cursor < Croudia::Base
5
- KEYS = [
5
+ attr_reader(
6
6
  :next_cursor,
7
7
  :next_cursor_str,
8
8
  :previous_cursor,
9
- :previous_cursor_str,
10
- ]
11
-
12
- attr_reader(*KEYS)
9
+ :previous_cursor_str
10
+ )
13
11
 
14
12
  def initialize(key, klass, attrs)
15
13
  if klass.is_a?(Class)
16
- attrs[key.to_s].map! { |element| klass.new(element) }
14
+ singleton_class.attr_object_reader(key => Array(klass))
15
+ else
16
+ singleton_class.attr_reader(key)
17
17
  end
18
- singleton_class.attr_reader(key)
19
18
  super(attrs)
20
19
  end
21
20
 
@@ -3,15 +3,8 @@ require 'croudia/entity/media'
3
3
 
4
4
  module Croudia
5
5
  class Entities < Croudia::Base
6
- KEYS = [
7
- :media,
8
- ]
9
- attr_reader(*KEYS)
10
-
11
- def initialize(attrs)
12
- media = attrs.delete('media')
13
- super(attrs)
14
- @attrs['media'] = Croudia::Entity::Media.new(media) if media
15
- end
6
+ attr_object_reader(
7
+ media: Croudia::Entity::Media
8
+ )
16
9
  end
17
10
  end
@@ -3,11 +3,10 @@ require 'croudia/base'
3
3
  module Croudia
4
4
  module Entity
5
5
  class Media < Croudia::Base
6
- KEYS = [
6
+ attr_reader(
7
7
  :media_url_https,
8
- :type,
9
- ]
10
- attr_reader(*KEYS)
8
+ :type
9
+ )
11
10
  end
12
11
  end
13
12
  end
@@ -2,6 +2,11 @@ require 'croudia/base'
2
2
 
3
3
  module Croudia
4
4
  class Identity < Croudia::Base
5
+ attr_reader(
6
+ :id,
7
+ :id_str
8
+ )
9
+
5
10
  def initialize(*)
6
11
  super
7
12
  raise ArgumentError, 'argument must have an "id" key' unless id
@@ -13,10 +18,5 @@ module Croudia
13
18
  def ==(other)
14
19
  super || self.class == other.class && id == other.id
15
20
  end
16
-
17
- # @return [Integer]
18
- def id
19
- @attrs['id'] || @attrs[:id]
20
- end
21
21
  end
22
22
  end
@@ -1,20 +1,12 @@
1
1
  require 'croudia/base'
2
2
 
3
3
  class Croudia::Relationship < Croudia::Base
4
- KEYS = [
5
- :souorce,
6
- :target,
7
- ]
4
+ attr_object_reader(
5
+ [:relationship, :source] => Croudia::User,
6
+ [:relationship, :target] => Croudia::User
7
+ )
8
8
 
9
9
  def relationship
10
10
  self
11
11
  end
12
-
13
- def source
14
- @source ||= Croudia::User.new(@attrs['relationship']['source'])
15
- end
16
-
17
- def target
18
- @target ||= Croudia::User.new(@attrs['relationship']['target'])
19
- end
20
12
  end
@@ -2,7 +2,7 @@ require 'croudia/base'
2
2
 
3
3
  module Croudia
4
4
  class SearchMetadata < Croudia::Base
5
- KEYS = [
5
+ attr_reader(
6
6
  :completed_in,
7
7
  :count,
8
8
  :max_id,
@@ -11,9 +11,7 @@ module Croudia
11
11
  :query,
12
12
  :refresh_url,
13
13
  :since_id,
14
- :since_ids_str,
15
- ]
16
-
17
- attr_reader(*KEYS)
14
+ :since_ids_str
15
+ )
18
16
  end
19
17
  end
@@ -4,19 +4,9 @@ require 'croudia/status'
4
4
 
5
5
  module Croudia
6
6
  class SearchResults < Croudia::Base
7
- KEYS = [
8
- :search_metadata,
9
- :statuses,
10
- ]
11
-
12
- attr_reader(*KEYS)
13
-
14
- def initialize(attrs)
15
- statuses = attrs.delete('statuses')
16
- metadata = attrs.delete('search_metadata')
17
- attrs['statuses'] = statuses.map { |s| Croudia::Status.new(s) }
18
- attrs['search_metadata'] = Croudia::SearchMetadata.new(metadata)
19
- super(attrs)
20
- end
7
+ attr_object_reader(
8
+ search_metadata: Croudia::SearchMetadata,
9
+ statuses: Array(Croudia::Status)
10
+ )
21
11
  end
22
12
  end
@@ -5,25 +5,17 @@ module Croudia
5
5
  class SecretMail < Croudia::Identity
6
6
  include Croudia::Creatable
7
7
 
8
- KEYS = [
9
- :id_str,
10
- :recipient,
8
+ attr_reader(
11
9
  :recipient_id,
12
10
  :recipient_screen_name,
13
- :sender,
14
11
  :sender_id,
15
12
  :sender_screen_name,
16
- :text,
17
- ]
13
+ :text
14
+ )
18
15
 
19
- attr_reader(*KEYS)
20
-
21
- def initialize(attrs)
22
- recipient = attrs.delete('recipient')
23
- sender = attrs.delete('sender')
24
- super(attrs)
25
- @attrs['recipient'] = Croudia::User.new(recipient) if recipient
26
- @attrs['sender'] = Croudia::User.new(sender) if sender
27
- end
16
+ attr_object_reader(
17
+ recipient: Croudia::User,
18
+ sender: Croudia::User
19
+ )
28
20
  end
29
21
  end
@@ -2,19 +2,16 @@ require 'croudia/base'
2
2
 
3
3
  module Croudia
4
4
  class Source < Croudia::Base
5
-
6
- KEYS = [
5
+ attr_reader(
7
6
  :name,
8
- :url,
9
- ]
7
+ :url
8
+ )
10
9
 
11
- attr_reader(*KEYS)
12
10
  alias to_s name
13
11
 
14
12
  def ==(other)
15
13
  super || (other.is_a?(Croudia::Source) &&
16
14
  name == other.name && url == other.url)
17
15
  end
18
-
19
16
  end
20
17
  end
@@ -8,39 +8,25 @@ module Croudia
8
8
  class Status < Croudia::Identity
9
9
  include Croudia::Creatable
10
10
 
11
- KEYS = [
12
- :id_str,
13
- :entities,
11
+ attr_reader(
14
12
  :favorited,
15
13
  :favorited_count,
16
14
  :in_reply_to_screen_name,
17
- :in_reply_to_status_id_str,
18
15
  :in_reply_to_status_id,
19
- :in_reply_to_user_id_str,
16
+ :in_reply_to_status_id_str,
20
17
  :in_reply_to_user_id,
18
+ :in_reply_to_user_id_str,
21
19
  :spread,
22
20
  :spread_count,
23
- :spread_status,
24
- :reply_status,
25
- :source,
26
21
  :text,
27
- :user,
28
- ]
29
-
30
- attr_reader(*KEYS)
22
+ )
31
23
 
32
- def initialize(attrs={})
33
- entities = attrs.delete('entities')
34
- user = attrs.delete('user')
35
- reply_status = attrs.delete('reply_status')
36
- spread_status = attrs.delete('spread_status')
37
- source = attrs.delete('source')
38
- super(attrs)
39
- @attrs['entities'] = Croudia::Entities.new(entities) if entities
40
- @attrs['user'] = Croudia::User.new(user) if user
41
- @attrs['reply_status'] = Croudia::Status.new(reply_status) if reply_status
42
- @attrs['spread_status'] = Croudia::Status.new(spread_status) if spread_status
43
- @attrs['source'] = Croudia::Source.new(source) if source
44
- end
24
+ attr_object_reader(
25
+ entities: Croudia::Entities,
26
+ reply_status: Croudia::Status,
27
+ spread_status: Croudia::Status,
28
+ source: Croudia::Source,
29
+ user: Croudia::User
30
+ )
45
31
  end
46
32
  end
data/lib/croudia/user.rb CHANGED
@@ -5,8 +5,7 @@ module Croudia
5
5
  class User < Croudia::Identity
6
6
  include Croudia::Creatable
7
7
 
8
- KEYS = [
9
- :id_str,
8
+ attr_reader(
10
9
  :blocking,
11
10
  :connections,
12
11
  :description,
@@ -22,9 +21,7 @@ module Croudia
22
21
  :protected,
23
22
  :screen_name,
24
23
  :statuses_count,
25
- :url,
26
- ]
27
-
28
- attr_reader(*KEYS)
24
+ :url
25
+ )
29
26
  end
30
27
  end
@@ -1,3 +1,3 @@
1
1
  module Croudia
2
- VERSION = '1.0.14'
2
+ VERSION = '1.0.15'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: croudia
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.14
4
+ version: 1.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - wktk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-09 00:00:00.000000000 Z
11
+ date: 2013-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday