Class: Rubbit_Object_Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/Rubbit/Rubbit_Construction_Layer.rb

Constant Summary collapse

@@instance =
nil

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(net_name) ⇒ Rubbit_Object_Builder

Returns a new instance of Rubbit_Object_Builder.



21
22
23
# File 'lib/Rubbit/Rubbit_Construction_Layer.rb', line 21

def initialize(net_name)
  Reddit_Net_Wrapper.instance(net_name)
end

Class Method Details

.instance(name = nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/Rubbit/Rubbit_Construction_Layer.rb', line 10

def self.instance(name=nil)
  if(@@instance==nil)
    if(name!=nil)
      @@instance = new(name)
    else
      return nil
    end
  end
  return @@instance
end

Instance Method Details

#build_listing(link) ⇒ Object



49
50
51
52
53
54
55
# File 'lib/Rubbit/Rubbit_Construction_Layer.rb', line 49

def build_listing(link)
  response = Reddit_Net_Wrapper.instance.make_request('get',link,{})
  if(response.code=='200')
    return Listing.new(JSON.parse(response.body,:max_nesting => 100))
  end
  return nil
end

#build_submission(link) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/Rubbit/Rubbit_Construction_Layer.rb', line 57

def build_submission(link)
  response = Reddit_Net_Wrapper.instance.make_request('get',link.to_s+".json",{})
  if(response.code=='200')
    json = JSON.parse(response.body,:max_nesting=>100)
    if(json['kind']=='t1')
      return Comment.new(json)
    elsif(json['kind']=='t3')
      return Post.new(json)
    elsif(json['kind']=='t4')
      return Message.new(json)
    else
      raise InvalidSubmissionException, "Could not get submission"
    end
  end
end

#build_subreddit(display_name) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/Rubbit/Rubbit_Construction_Layer.rb', line 29

def build_subreddit(display_name)
  response = Reddit_Net_Wrapper.instance.make_request('get','http://www.reddit.com/r/'+display_name.to_s+"/about.json",{})
  if(response.code=='200')
    return Subreddit.new(JSON.parse(response.body))
  elsif(response.code=='403')
    raise PrivateDataException, "/r/" + display_name + " is a private subreddit."
  elsif(response.code=='404')
    raise InvalidSubredditException, "/r/" + display_name + " does not exist."
  end
end

#build_user(user) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/Rubbit/Rubbit_Construction_Layer.rb', line 40

def build_user(user)
  response = Reddit_Net_Wrapper.instance.make_request('get','http://www.reddit.com/user/'+user.to_s+'/about.json',{})
  if(response.code=='200')
    return Redditor.new(JSON.parse(response.body))
  else
    raise InvalidUserException, "User unable to be retrieved"
  end
end

#get_comments(link, limit) ⇒ Object



73
74
75
# File 'lib/Rubbit/Rubbit_Construction_Layer.rb', line 73

def get_comments(link,limit)
  return ContentGenerator.new(link,limit)
end

#set_request_period(period) ⇒ Object



25
26
27
# File 'lib/Rubbit/Rubbit_Construction_Layer.rb', line 25

def set_request_period(period)
  return Reddit_Net_Wrapper.instance.set_reset_period(period)
end