lib/opencongress/person.rb in opencongress-opencongress-ruby-0.0.3 vs lib/opencongress/person.rb in opencongress-opencongress-ruby-0.0.4
- old
+ new
@@ -7,28 +7,143 @@
:name, :nickname, :osid, :party, :religion, :state, :title, :unaccented_name, :url, :user_approval,
:youtube_id, :oc_user_comments, :oc_users_tracking, :abstains_percentage, :with_party_percentage, :recent_news,
:recent_blogs, :person_stats
- def initialize
+ def initialize(params)
params.each do |key, value|
instance_variable_set("@#{key}", value) if Person.instance_methods.include? key
end
end
def self.all_where(params)
-
+
url = construct_url("people", params)
+ if (result = make_call(url))
+ people = parse_results(result)
+ return people
+ else
+ nil
+ end
- people = []
- result.each do |person|
- people << Person.new(person)
+ end
+
+ def self.compare(person1, person2)
+ url = "http://192.168.1.7:3000/person/compare.json?person1=#{person1.id}&person2=#{person2.id}"
+ if (result = make_call(url))
+ comparison = VotingComparison.new(result["comparison"])
+ else
+ nil
end
- people
+ end
- end
+ def self.senators_most_in_the_news_this_week
+
+ url = construct_url("senators_most_in_the_news_this_week", {})
+ if (result = make_call(url))
+ people = parse_results(result)
+ return people
+ else
+ nil
+ end
+
+ end
+
+ def self.representatives_most_in_the_news_this_week
+
+ url = construct_url("representatives_most_in_the_news_this_week", {})
+ if (result = make_call(url))
+ people = parse_results(result)
+ return people
+ else
+ nil
+ end
+
+ end
+
+ def self.most_blogged_senators_this_week
+
+ url = construct_url("most_blogged_senators_this_week", {})
+ if (result = make_call(url))
+ people = parse_results(result)
+ return people
+ else
+ nil
+ end
+
+ end
+
+ def self.most_blogged_representatives_this_week
+
+ url = construct_url("most_blogged_representatives_this_week", {})
+ if (result = make_call(url))
+ people = parse_results(result)
+ return people
+ else
+ nil
+ end
+
+ end
+
+ def opencongress_users_supporting_person_are_also
+ url = Person.construct_url("opencongress_users_supporting_person_are_also/#{id}", {})
+ if (result = Person.make_call(url))
+ puts result.to_yaml
+ people = Person.parse_supporting_results(result)
+ return people
+ else
+ nil
+ end
+ end
+
+ def opencongress_users_opposing_person_are_also
+ url = Person.construct_url("opencongress_users_opposing_person_are_also/#{id}", {})
+ if (result = Person.make_call(url))
+ puts result.to_yaml
+ people = Person.parse_supporting_results(result)
+ return people
+ else
+ nil
+ end
+ end
+
+
+
+
+ def self.parse_results(result)
+
+ people = []
+ result.each do |person|
+
+ these_recent_blogs = person["recent_blogs"]
+ blogs = []
+ these_recent_blogs.each do |trb|
+ blogs << BlogPost.new(trb)
+ end
+
+ person["recent_blogs"] = blogs
+
+
+ these_recent_news = person["recent_news"]
+ news = []
+ these_recent_news.each do |trb|
+ news << NewsPost.new(trb)
+ end
+
+ person["person_stats"] = PersonStat.new(person["person_stats"]) if person["person_stats"]
+
+ person["recent_news"] = news
+
+ people << Person.new(person)
+ end
+
+ people
+
+ end
+
end
+
end
\ No newline at end of file