mogli 0.0.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/lib/mogli/action.rb +6 -0
 - data/lib/mogli/activity.rb +6 -0
 - data/lib/mogli/address.rb +7 -0
 - data/lib/mogli/album.rb +12 -0
 - data/lib/mogli/book.rb +6 -0
 - data/lib/mogli/client/user.rb +11 -0
 - data/lib/mogli/client.rb +95 -0
 - data/lib/mogli/comment.rb +10 -0
 - data/lib/mogli/event.rb +15 -0
 - data/lib/mogli/fetching_array.rb +21 -0
 - data/lib/mogli/group.rb +12 -0
 - data/lib/mogli/interest.rb +6 -0
 - data/lib/mogli/model.rb +58 -0
 - data/lib/mogli/movie.rb +6 -0
 - data/lib/mogli/music.rb +6 -0
 - data/lib/mogli/note.rb +12 -0
 - data/lib/mogli/page.rb +15 -0
 - data/lib/mogli/photo.rb +9 -0
 - data/lib/mogli/post.rb +13 -0
 - data/lib/mogli/television.rb +6 -0
 - data/lib/mogli/user.rb +20 -0
 - data/lib/mogli/video.rb +12 -0
 - data/lib/mogli.rb +29 -0
 - metadata +96 -0
 
    
        data/lib/mogli/action.rb
    ADDED
    
    
    
        data/lib/mogli/album.rb
    ADDED
    
    | 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Album < Hashie::Dash
         
     | 
| 
      
 3 
     | 
    
         
            +
                include Model
         
     | 
| 
      
 4 
     | 
    
         
            +
                
         
     | 
| 
      
 5 
     | 
    
         
            +
                define_properties :id, :name, :description, :link, :count, :created_time, :updated_time
         
     | 
| 
      
 6 
     | 
    
         
            +
                
         
     | 
| 
      
 7 
     | 
    
         
            +
                hash_populating_accessor :from, "User","Page"
         
     | 
| 
      
 8 
     | 
    
         
            +
                has_association :photos, "Photo"
         
     | 
| 
      
 9 
     | 
    
         
            +
                has_association :comments, "Comment"
         
     | 
| 
      
 10 
     | 
    
         
            +
                
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mogli/book.rb
    ADDED
    
    
    
        data/lib/mogli/client.rb
    ADDED
    
    | 
         @@ -0,0 +1,95 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "mogli/client/user"
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "ruby-debug"
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 5 
     | 
    
         
            +
              class Client
         
     | 
| 
      
 6 
     | 
    
         
            +
                attr_reader :access_token
         
     | 
| 
      
 7 
     | 
    
         
            +
                attr_reader :default_params
         
     | 
| 
      
 8 
     | 
    
         
            +
                
         
     | 
| 
      
 9 
     | 
    
         
            +
                include HTTParty
         
     | 
| 
      
 10 
     | 
    
         
            +
                include Mogli::Client::User   
         
     | 
| 
      
 11 
     | 
    
         
            +
                class UnrecognizeableClassError < Exception; end
         
     | 
| 
      
 12 
     | 
    
         
            +
                
         
     | 
| 
      
 13 
     | 
    
         
            +
                def api_path(path)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  "http://graph.facebook.com/#{path}"
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
                
         
     | 
| 
      
 17 
     | 
    
         
            +
                def initialize(access_token = nil)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @access_token = access_token
         
     | 
| 
      
 19 
     | 
    
         
            +
                  @default_params = @access_token ? {:access_token=>access_token} : {}
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
                
         
     | 
| 
      
 22 
     | 
    
         
            +
                def get_and_map(path,klass=nil)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  data = self.class.get(api_path(path),:query=>default_params)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  map_data(data,klass)
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
                
         
     | 
| 
      
 27 
     | 
    
         
            +
                def get_and_map_url(url,klass=nil)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  data = self.class.get(url)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  map_data(data,klass)
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
                
         
     | 
| 
      
 32 
     | 
    
         
            +
                def map_data(data,klass=nil)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  raise_error_if_necessary(data)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  hash_or_array = extract_hash_or_array(data,klass)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  hash_or_array = map_to_class(hash_or_array,klass) if klass
         
     | 
| 
      
 36 
     | 
    
         
            +
                  hash_or_array
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
                
         
     | 
| 
      
 39 
     | 
    
         
            +
                
         
     | 
| 
      
 40 
     | 
    
         
            +
                #protected
         
     | 
| 
      
 41 
     | 
    
         
            +
                
         
     | 
| 
      
 42 
     | 
    
         
            +
                def extract_hash_or_array(hash_or_array,klass)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  return hash_or_array if hash_or_array.nil? or hash_or_array.kind_of?(Array)
         
     | 
| 
      
 44 
     | 
    
         
            +
                  return extract_fetching_array(hash_or_array,klass) if hash_or_array.has_key?("data")
         
     | 
| 
      
 45 
     | 
    
         
            +
                  return hash_or_array
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
                
         
     | 
| 
      
 48 
     | 
    
         
            +
                def extract_fetching_array(hash,klass)
         
     | 
| 
      
 49 
     | 
    
         
            +
                  f = Mogli::FetchingArray.new
         
     | 
| 
      
 50 
     | 
    
         
            +
                  f.concat(hash["data"])
         
     | 
| 
      
 51 
     | 
    
         
            +
                  f.client = self
         
     | 
| 
      
 52 
     | 
    
         
            +
                  f.classes = Array(klass)
         
     | 
| 
      
 53 
     | 
    
         
            +
                  if hash["paging"]
         
     | 
| 
      
 54 
     | 
    
         
            +
                    f.next_url = hash["paging"]["next"]
         
     | 
| 
      
 55 
     | 
    
         
            +
                    f.previous_url = hash["paging"]["previous"]
         
     | 
| 
      
 56 
     | 
    
         
            +
                  end
         
     | 
| 
      
 57 
     | 
    
         
            +
                  f
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
                
         
     | 
| 
      
 60 
     | 
    
         
            +
                def map_to_class(hash_or_array,klass)
         
     | 
| 
      
 61 
     | 
    
         
            +
                  if hash_or_array.kind_of?(Array)
         
     | 
| 
      
 62 
     | 
    
         
            +
                    hash_or_array.map! {|i| create_instance(klass,i)}
         
     | 
| 
      
 63 
     | 
    
         
            +
                  else
         
     | 
| 
      
 64 
     | 
    
         
            +
                    hash_or_array = create_instance(klass,hash_or_array)
         
     | 
| 
      
 65 
     | 
    
         
            +
                  end
         
     | 
| 
      
 66 
     | 
    
         
            +
                end
         
     | 
| 
      
 67 
     | 
    
         
            +
                
         
     | 
| 
      
 68 
     | 
    
         
            +
                def create_instance(klass,data)
         
     | 
| 
      
 69 
     | 
    
         
            +
                  klass = determine_class(klass,data)
         
     | 
| 
      
 70 
     | 
    
         
            +
                  if klass.nil?
         
     | 
| 
      
 71 
     | 
    
         
            +
                    raise UnrecognizeableClassError.new("unable to recognize klass for #{klass.inspect} => #{data.inspect}")
         
     | 
| 
      
 72 
     | 
    
         
            +
                  end
         
     | 
| 
      
 73 
     | 
    
         
            +
                  klass.new(data,self)
         
     | 
| 
      
 74 
     | 
    
         
            +
                end
         
     | 
| 
      
 75 
     | 
    
         
            +
                
         
     | 
| 
      
 76 
     | 
    
         
            +
                def constantize_string(klass)
         
     | 
| 
      
 77 
     | 
    
         
            +
                  klass.is_a?(String) ? Mogli.const_get(klass) : klass
         
     | 
| 
      
 78 
     | 
    
         
            +
                end
         
     | 
| 
      
 79 
     | 
    
         
            +
                
         
     | 
| 
      
 80 
     | 
    
         
            +
                def determine_class(klass_or_klasses,data)
         
     | 
| 
      
 81 
     | 
    
         
            +
                  klasses = Array(klass_or_klasses).map { |k| constantize_string(k)}
         
     | 
| 
      
 82 
     | 
    
         
            +
                  klasses.detect {|klass| klass.recognize?(data)}
         
     | 
| 
      
 83 
     | 
    
         
            +
                end
         
     | 
| 
      
 84 
     | 
    
         
            +
                
         
     | 
| 
      
 85 
     | 
    
         
            +
                def raise_error_if_necessary(data)
         
     | 
| 
      
 86 
     | 
    
         
            +
                  if data.kind_of?(Hash)
         
     | 
| 
      
 87 
     | 
    
         
            +
                    if data.keys.size == 1 and data["error"]
         
     | 
| 
      
 88 
     | 
    
         
            +
                      type = data["error"]["type"]
         
     | 
| 
      
 89 
     | 
    
         
            +
                      message = data["error"]["message"]
         
     | 
| 
      
 90 
     | 
    
         
            +
                      raise Exception.new("#{type}: #{message}")
         
     | 
| 
      
 91 
     | 
    
         
            +
                    end
         
     | 
| 
      
 92 
     | 
    
         
            +
                  end
         
     | 
| 
      
 93 
     | 
    
         
            +
                end
         
     | 
| 
      
 94 
     | 
    
         
            +
              end
         
     | 
| 
      
 95 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mogli/event.rb
    ADDED
    
    | 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Event < Hashie::Dash
         
     | 
| 
      
 3 
     | 
    
         
            +
                include Model
         
     | 
| 
      
 4 
     | 
    
         
            +
                define_properties :id, :name, :description, :start_time, :end_time, :location, :privacy, :updated_time
         
     | 
| 
      
 5 
     | 
    
         
            +
                
         
     | 
| 
      
 6 
     | 
    
         
            +
                hash_populating_accessor :venue, "Address"
         
     | 
| 
      
 7 
     | 
    
         
            +
                hash_populating_accessor :owner, "User", "Page"
         
     | 
| 
      
 8 
     | 
    
         
            +
                has_association :noreply, "User"
         
     | 
| 
      
 9 
     | 
    
         
            +
                has_association :mabye, "User"
         
     | 
| 
      
 10 
     | 
    
         
            +
                has_association :invited, "User"
         
     | 
| 
      
 11 
     | 
    
         
            +
                has_association :attending, "User"
         
     | 
| 
      
 12 
     | 
    
         
            +
                has_association :declined, "User"
         
     | 
| 
      
 13 
     | 
    
         
            +
                has_association :feed, "Post"
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 2 
     | 
    
         
            +
              class FetchingArray < Array
         
     | 
| 
      
 3 
     | 
    
         
            +
                attr_accessor :next_url, :previous_url, :client, :classes
         
     | 
| 
      
 4 
     | 
    
         
            +
                
         
     | 
| 
      
 5 
     | 
    
         
            +
                def fetch_next
         
     | 
| 
      
 6 
     | 
    
         
            +
                  return [] if next_url.blank?
         
     | 
| 
      
 7 
     | 
    
         
            +
                  additions = client.get_and_map_url(next_url,classes)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  self.next_url = additions.next_url
         
     | 
| 
      
 9 
     | 
    
         
            +
                  self.concat(additions)
         
     | 
| 
      
 10 
     | 
    
         
            +
                  additions
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
                
         
     | 
| 
      
 13 
     | 
    
         
            +
                def fetch_previous
         
     | 
| 
      
 14 
     | 
    
         
            +
                  return [] if previous_url.blank?
         
     | 
| 
      
 15 
     | 
    
         
            +
                  additions = client.get_and_map_url(previous_url,classes)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  self.previous_url = additions.previous_url
         
     | 
| 
      
 17 
     | 
    
         
            +
                  self.unshift(*additions)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  additions
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mogli/group.rb
    ADDED
    
    | 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Group < Hashie::Dash
         
     | 
| 
      
 3 
     | 
    
         
            +
                include Model
         
     | 
| 
      
 4 
     | 
    
         
            +
                define_properties :id, :name, :description, :link, :privacy, :updated_time
         
     | 
| 
      
 5 
     | 
    
         
            +
                
         
     | 
| 
      
 6 
     | 
    
         
            +
                hash_populating_accessor :owner, "User", "Page"
         
     | 
| 
      
 7 
     | 
    
         
            +
                hash_populating_accessor :venue, "Address"
         
     | 
| 
      
 8 
     | 
    
         
            +
                
         
     | 
| 
      
 9 
     | 
    
         
            +
                has_association :feed, "Post"
         
     | 
| 
      
 10 
     | 
    
         
            +
                has_association :members, "User"
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mogli/model.rb
    ADDED
    
    | 
         @@ -0,0 +1,58 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Model
         
     | 
| 
      
 3 
     | 
    
         
            +
                def client=(val)
         
     | 
| 
      
 4 
     | 
    
         
            +
                  @client=val
         
     | 
| 
      
 5 
     | 
    
         
            +
                end
         
     | 
| 
      
 6 
     | 
    
         
            +
                
         
     | 
| 
      
 7 
     | 
    
         
            +
                def client
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @client || Mogli::Client.new
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                def initialize(hash={},client=nil)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  self.client=client
         
     | 
| 
      
 13 
     | 
    
         
            +
                  super(hash)
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
                
         
     | 
| 
      
 16 
     | 
    
         
            +
                def self.included(other)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  other.extend(ClassMethods)
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                
         
     | 
| 
      
 21 
     | 
    
         
            +
                module ClassMethods
         
     | 
| 
      
 22 
     | 
    
         
            +
                  
         
     | 
| 
      
 23 
     | 
    
         
            +
                  
         
     | 
| 
      
 24 
     | 
    
         
            +
                  def define_properties(*args)
         
     | 
| 
      
 25 
     | 
    
         
            +
                    args.each do |arg|
         
     | 
| 
      
 26 
     | 
    
         
            +
                      property arg
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
                  
         
     | 
| 
      
 30 
     | 
    
         
            +
                  def hash_populating_accessor(method_name,*klass)
         
     | 
| 
      
 31 
     | 
    
         
            +
                    define_method "#{method_name}=" do |hash|
         
     | 
| 
      
 32 
     | 
    
         
            +
                      instance_variable_set("@#{method_name}",client.map_data(hash,klass))
         
     | 
| 
      
 33 
     | 
    
         
            +
                    end
         
     | 
| 
      
 34 
     | 
    
         
            +
                    define_method "#{method_name}" do
         
     | 
| 
      
 35 
     | 
    
         
            +
                      instance_variable_get "@#{method_name}"
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
                  
         
     | 
| 
      
 39 
     | 
    
         
            +
                  def has_association(name,klass)
         
     | 
| 
      
 40 
     | 
    
         
            +
                    define_method name do
         
     | 
| 
      
 41 
     | 
    
         
            +
                      if (ret=instance_variable_get("@#{name}")).nil?
         
     | 
| 
      
 42 
     | 
    
         
            +
                        ret = client.get_and_map("/#{id}/#{name}",klass)
         
     | 
| 
      
 43 
     | 
    
         
            +
                        instance_variable_set("@#{name}",ret)
         
     | 
| 
      
 44 
     | 
    
         
            +
                      end
         
     | 
| 
      
 45 
     | 
    
         
            +
                      return ret
         
     | 
| 
      
 46 
     | 
    
         
            +
                    end
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
                  
         
     | 
| 
      
 49 
     | 
    
         
            +
                  def recognize?(data)
         
     | 
| 
      
 50 
     | 
    
         
            +
                    true
         
     | 
| 
      
 51 
     | 
    
         
            +
                  end
         
     | 
| 
      
 52 
     | 
    
         
            +
                  
         
     | 
| 
      
 53 
     | 
    
         
            +
                  def find(id,client=nil)
         
     | 
| 
      
 54 
     | 
    
         
            +
                    (client||Mogli::Client.new).get_and_map(id,self)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  end
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
              end
         
     | 
| 
      
 58 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mogli/movie.rb
    ADDED
    
    
    
        data/lib/mogli/music.rb
    ADDED
    
    
    
        data/lib/mogli/note.rb
    ADDED
    
    
    
        data/lib/mogli/page.rb
    ADDED
    
    | 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Page < Hashie::Dash
         
     | 
| 
      
 3 
     | 
    
         
            +
                    
         
     | 
| 
      
 4 
     | 
    
         
            +
                include Model
         
     | 
| 
      
 5 
     | 
    
         
            +
                define_properties :id, :name, :category
         
     | 
| 
      
 6 
     | 
    
         
            +
                
         
     | 
| 
      
 7 
     | 
    
         
            +
                hash_populating_accessor :albums, "Album"
         
     | 
| 
      
 8 
     | 
    
         
            +
                hash_populating_accessor :photos, "Photo"
         
     | 
| 
      
 9 
     | 
    
         
            +
                
         
     | 
| 
      
 10 
     | 
    
         
            +
                def self.recognize?(hash)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  hash.has_key?("category")
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
                
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mogli/photo.rb
    ADDED
    
    
    
        data/lib/mogli/post.rb
    ADDED
    
    | 
         @@ -0,0 +1,13 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Post < Hashie::Dash
         
     | 
| 
      
 3 
     | 
    
         
            +
                    
         
     | 
| 
      
 4 
     | 
    
         
            +
                include Model
         
     | 
| 
      
 5 
     | 
    
         
            +
                define_properties :id, :to, :message, :picture, :link, :name, :caption, 
         
     | 
| 
      
 6 
     | 
    
         
            +
                  :description, :source, :icon, :attribution, :actions, :likes,
         
     | 
| 
      
 7 
     | 
    
         
            +
                  :created_time, :updated_time
         
     | 
| 
      
 8 
     | 
    
         
            +
                
         
     | 
| 
      
 9 
     | 
    
         
            +
                hash_populating_accessor :actions, "Action"
         
     | 
| 
      
 10 
     | 
    
         
            +
                hash_populating_accessor :comments, "Comment"
         
     | 
| 
      
 11 
     | 
    
         
            +
                hash_populating_accessor :from, "User"
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mogli/user.rb
    ADDED
    
    | 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
             
     | 
| 
      
 2 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 3 
     | 
    
         
            +
              class User < Hashie::Mash
         
     | 
| 
      
 4 
     | 
    
         
            +
                include Model
         
     | 
| 
      
 5 
     | 
    
         
            +
                
         
     | 
| 
      
 6 
     | 
    
         
            +
                def self.recognize?(hash)
         
     | 
| 
      
 7 
     | 
    
         
            +
                  !hash.has_key?("category")
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
                
         
     | 
| 
      
 10 
     | 
    
         
            +
                has_association :activities,"Activity"
         
     | 
| 
      
 11 
     | 
    
         
            +
                has_association :albums,"Album"
         
     | 
| 
      
 12 
     | 
    
         
            +
                has_association :friends, "User"
         
     | 
| 
      
 13 
     | 
    
         
            +
                has_association :interests, "Interest"
         
     | 
| 
      
 14 
     | 
    
         
            +
                has_association :music, "Music"
         
     | 
| 
      
 15 
     | 
    
         
            +
                has_association :books, "Book"
         
     | 
| 
      
 16 
     | 
    
         
            +
                has_association :movies, "Movie"
         
     | 
| 
      
 17 
     | 
    
         
            +
                has_association :television, "Television"
         
     | 
| 
      
 18 
     | 
    
         
            +
                has_association :posts, "Post"
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mogli/video.rb
    ADDED
    
    | 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Video < Hashie::Dash
         
     | 
| 
      
 3 
     | 
    
         
            +
                include Model
         
     | 
| 
      
 4 
     | 
    
         
            +
                
         
     | 
| 
      
 5 
     | 
    
         
            +
                define_properties :id, :message, :name, :description, :length, :created_time, :updated_time, :icon, :picture, :embed_html
         
     | 
| 
      
 6 
     | 
    
         
            +
                
         
     | 
| 
      
 7 
     | 
    
         
            +
                hash_populating_accessor :from, "User", "Page"
         
     | 
| 
      
 8 
     | 
    
         
            +
                
         
     | 
| 
      
 9 
     | 
    
         
            +
                has_association :comments, "Comment"
         
     | 
| 
      
 10 
     | 
    
         
            +
                
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/mogli.rb
    ADDED
    
    | 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Mogli
         
     | 
| 
      
 2 
     | 
    
         
            +
              
         
     | 
| 
      
 3 
     | 
    
         
            +
            end
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            require "httparty"
         
     | 
| 
      
 6 
     | 
    
         
            +
            require "hashie"
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            require "mogli/model"
         
     | 
| 
      
 10 
     | 
    
         
            +
            require "mogli/fetching_array"
         
     | 
| 
      
 11 
     | 
    
         
            +
            require "mogli/action"
         
     | 
| 
      
 12 
     | 
    
         
            +
            require "mogli/activity"
         
     | 
| 
      
 13 
     | 
    
         
            +
            require "mogli/address"
         
     | 
| 
      
 14 
     | 
    
         
            +
            require "mogli/album"
         
     | 
| 
      
 15 
     | 
    
         
            +
            require "mogli/book"
         
     | 
| 
      
 16 
     | 
    
         
            +
            require "mogli/comment"
         
     | 
| 
      
 17 
     | 
    
         
            +
            require "mogli/event"
         
     | 
| 
      
 18 
     | 
    
         
            +
            require "mogli/group"
         
     | 
| 
      
 19 
     | 
    
         
            +
            require "mogli/interest"
         
     | 
| 
      
 20 
     | 
    
         
            +
            require "mogli/movie"
         
     | 
| 
      
 21 
     | 
    
         
            +
            require "mogli/music"
         
     | 
| 
      
 22 
     | 
    
         
            +
            require "mogli/note"
         
     | 
| 
      
 23 
     | 
    
         
            +
            require "mogli/page"
         
     | 
| 
      
 24 
     | 
    
         
            +
            require "mogli/photo"
         
     | 
| 
      
 25 
     | 
    
         
            +
            require "mogli/post"
         
     | 
| 
      
 26 
     | 
    
         
            +
            require "mogli/television"
         
     | 
| 
      
 27 
     | 
    
         
            +
            require "mogli/video"
         
     | 
| 
      
 28 
     | 
    
         
            +
            require "mogli/user"
         
     | 
| 
      
 29 
     | 
    
         
            +
            require "mogli/client"
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,96 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification 
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: mogli
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version 
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.1
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors: 
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Mike Mangino
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 10 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2010-05-03 00:00:00 -04:00
         
     | 
| 
      
 13 
     | 
    
         
            +
            default_executable: 
         
     | 
| 
      
 14 
     | 
    
         
            +
            dependencies: 
         
     | 
| 
      
 15 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 16 
     | 
    
         
            +
              name: hashie
         
     | 
| 
      
 17 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 18 
     | 
    
         
            +
              version_requirement: 
         
     | 
| 
      
 19 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 20 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 21 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 22 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 23 
     | 
    
         
            +
                    version: 0.2.0
         
     | 
| 
      
 24 
     | 
    
         
            +
                version: 
         
     | 
| 
      
 25 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 26 
     | 
    
         
            +
              name: httparty
         
     | 
| 
      
 27 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 28 
     | 
    
         
            +
              version_requirement: 
         
     | 
| 
      
 29 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: 0.4.3
         
     | 
| 
      
 34 
     | 
    
         
            +
                version: 
         
     | 
| 
      
 35 
     | 
    
         
            +
            description: Simple library for accessing the facebook Open Graph API
         
     | 
| 
      
 36 
     | 
    
         
            +
            email: mmangino@elevatedrails.com
         
     | 
| 
      
 37 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            files: 
         
     | 
| 
      
 44 
     | 
    
         
            +
            - lib/mogli/action.rb
         
     | 
| 
      
 45 
     | 
    
         
            +
            - lib/mogli/activity.rb
         
     | 
| 
      
 46 
     | 
    
         
            +
            - lib/mogli/address.rb
         
     | 
| 
      
 47 
     | 
    
         
            +
            - lib/mogli/album.rb
         
     | 
| 
      
 48 
     | 
    
         
            +
            - lib/mogli/book.rb
         
     | 
| 
      
 49 
     | 
    
         
            +
            - lib/mogli/client/user.rb
         
     | 
| 
      
 50 
     | 
    
         
            +
            - lib/mogli/client.rb
         
     | 
| 
      
 51 
     | 
    
         
            +
            - lib/mogli/comment.rb
         
     | 
| 
      
 52 
     | 
    
         
            +
            - lib/mogli/event.rb
         
     | 
| 
      
 53 
     | 
    
         
            +
            - lib/mogli/fetching_array.rb
         
     | 
| 
      
 54 
     | 
    
         
            +
            - lib/mogli/group.rb
         
     | 
| 
      
 55 
     | 
    
         
            +
            - lib/mogli/interest.rb
         
     | 
| 
      
 56 
     | 
    
         
            +
            - lib/mogli/model.rb
         
     | 
| 
      
 57 
     | 
    
         
            +
            - lib/mogli/movie.rb
         
     | 
| 
      
 58 
     | 
    
         
            +
            - lib/mogli/music.rb
         
     | 
| 
      
 59 
     | 
    
         
            +
            - lib/mogli/note.rb
         
     | 
| 
      
 60 
     | 
    
         
            +
            - lib/mogli/page.rb
         
     | 
| 
      
 61 
     | 
    
         
            +
            - lib/mogli/photo.rb
         
     | 
| 
      
 62 
     | 
    
         
            +
            - lib/mogli/post.rb
         
     | 
| 
      
 63 
     | 
    
         
            +
            - lib/mogli/television.rb
         
     | 
| 
      
 64 
     | 
    
         
            +
            - lib/mogli/user.rb
         
     | 
| 
      
 65 
     | 
    
         
            +
            - lib/mogli/video.rb
         
     | 
| 
      
 66 
     | 
    
         
            +
            - lib/mogli.rb
         
     | 
| 
      
 67 
     | 
    
         
            +
            has_rdoc: true
         
     | 
| 
      
 68 
     | 
    
         
            +
            homepage: http://developers.facebook.com/docs/api
         
     | 
| 
      
 69 
     | 
    
         
            +
            licenses: []
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 72 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            require_paths: 
         
     | 
| 
      
 75 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 76 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 77 
     | 
    
         
            +
              requirements: 
         
     | 
| 
      
 78 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 79 
     | 
    
         
            +
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 80 
     | 
    
         
            +
                  version: "0"
         
     | 
| 
      
 81 
     | 
    
         
            +
              version: 
         
     | 
| 
      
 82 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 83 
     | 
    
         
            +
              requirements: 
         
     | 
| 
      
 84 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 85 
     | 
    
         
            +
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 86 
     | 
    
         
            +
                  version: "0"
         
     | 
| 
      
 87 
     | 
    
         
            +
              version: 
         
     | 
| 
      
 88 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 91 
     | 
    
         
            +
            rubygems_version: 1.3.5
         
     | 
| 
      
 92 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 93 
     | 
    
         
            +
            specification_version: 3
         
     | 
| 
      
 94 
     | 
    
         
            +
            summary: Open Graph Library for Ruby
         
     | 
| 
      
 95 
     | 
    
         
            +
            test_files: []
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     |