mogli 0.0.8 → 0.0.9

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/lib/mogli/client.rb CHANGED
@@ -47,8 +47,8 @@ module Mogli
47
47
  self.class.delete(api_path(path),:query=>default_params)
48
48
  end
49
49
 
50
- def get_and_map(path,klass=nil)
51
- data = self.class.get(api_path(path),:query=>default_params)
50
+ def get_and_map(path,klass=nil,body_args = {})
51
+ data = self.class.get(api_path(path),:query=>default_params.merge(body_args))
52
52
  map_data(data,klass)
53
53
  end
54
54
 
@@ -67,6 +67,7 @@ module Mogli
67
67
  #protected
68
68
 
69
69
  def extract_hash_or_array(hash_or_array,klass)
70
+ return nil if hash_or_array == false
70
71
  return hash_or_array if hash_or_array.nil? or hash_or_array.kind_of?(Array)
71
72
  return extract_fetching_array(hash_or_array,klass) if hash_or_array.has_key?("data")
72
73
  return hash_or_array
@@ -85,6 +86,7 @@ module Mogli
85
86
  end
86
87
 
87
88
  def map_to_class(hash_or_array,klass)
89
+ return nil if hash_or_array.nil?
88
90
  if hash_or_array.kind_of?(Array)
89
91
  hash_or_array.map! {|i| create_instance(klass,i)}
90
92
  else
data/lib/mogli/event.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  module Mogli
2
2
  class Event < Model
3
3
  define_properties :id, :name, :description, :start_time, :end_time, :location, :privacy, :updated_time
4
+ creation_properties :start_time, :end_time, :link, :name, :description, :privacy
4
5
 
5
6
  hash_populating_accessor :venue, "Address"
6
7
  hash_populating_accessor :owner, "User", "Page"
data/lib/mogli/model.rb CHANGED
@@ -77,9 +77,10 @@ module Mogli
77
77
  end
78
78
 
79
79
  def self.has_association(name,klass)
80
- define_method name do
80
+ define_method name do |*fields|
81
+ body_args = fields.empty? ? {} : {:fields => fields}
81
82
  if (ret=instance_variable_get("@#{name}")).nil?
82
- ret = client.get_and_map("#{id}/#{name}",klass)
83
+ ret = client.get_and_map("#{id}/#{name}",klass, body_args)
83
84
  instance_variable_set("@#{name}",ret)
84
85
  end
85
86
  return ret
@@ -88,7 +89,7 @@ module Mogli
88
89
  add_creation_method(name,klass)
89
90
  end
90
91
 
91
- def fetch
92
+ def fetch()
92
93
  raise ArgumentError.new("You cannot fetch models without a populated id attribute") if id.nil?
93
94
  other = self.class.find(id,client)
94
95
  merge!(other)
@@ -98,8 +99,9 @@ module Mogli
98
99
  true
99
100
  end
100
101
 
101
- def self.find(id,client=nil)
102
- (client||Mogli::Client.new).get_and_map(id,self)
102
+ def self.find(id,client=nil, *fields)
103
+ body_args = fields.empty? ? {} : {:fields => fields}
104
+ (client||Mogli::Client.new).get_and_map(id,self, body_args)
103
105
  end
104
106
  end
105
107
  end
data/lib/mogli/user.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  module Mogli
3
3
  class User < Profile
4
4
 
5
- define_properties :first_name, :last_name, :link, :about, :birthday,
5
+ define_properties :first_name, :last_name, :link, :about, :birthday, :gender,
6
6
  :email, :website, :timezone, :updated_time, :verified
7
7
 
8
8
  def self.recognize?(hash)
@@ -11,6 +11,9 @@ module Mogli
11
11
 
12
12
  hash_populating_accessor :work, "Work"
13
13
  hash_populating_accessor :education, "Education"
14
+
15
+ hash_populating_accessor :location, "Page"
16
+ hash_populating_accessor :hometown, "Page"
14
17
 
15
18
  has_association :activities,"Activity"
16
19
  has_association :friends, "User"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mogli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Mangino
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-05-20 00:00:00 -04:00
12
+ date: 2010-05-26 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency