social_current 0.0.5 → 0.0.6

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/README.md CHANGED
@@ -23,7 +23,7 @@ Or install it yourself as:
23
23
  You may use Social Current directly within your view like.
24
24
 
25
25
  ```ruby
26
- <% SocialCurrent::Stream.new({ :twitter => "tristanoneil", :github => "tristanoneil" }).each do |item| %>
26
+ <% SocialCurrent::Stream.new({ :twitter => "tristanoneil", :github => "tristanoneil" }).build.each do |item| %>
27
27
  <%= item[:message] >
28
28
  <% end %>
29
29
  ```
@@ -33,7 +33,7 @@ Though it's probably a better idea to add a method to a class or model like.
33
33
  ```ruby
34
34
  class User < ActiveRecord::Base
35
35
  def stream
36
- SocialCurrent::Stream.new({ :twitter => twitter_username, :github => github_username })
36
+ SocialCurrent::Stream.new({ :twitter => twitter_username, :github => github_username }).build
37
37
  end
38
38
  end
39
39
  ```
@@ -4,15 +4,15 @@ module SocialCurrent
4
4
  base_uri "https://api.github.com"
5
5
 
6
6
  def raw_user
7
- @raw_user ||= fetch("/users/#{@user}", "#{@user}_github_raw_user.json")
7
+ fetch("/users/#{@user}", "#{@user}_github_raw_user.json")
8
8
  end
9
9
 
10
10
  def raw_stream
11
- @raw_stream ||= fetch("/users/#{@user}/events", "#{@user}_github_raw_stream.json")
11
+ fetch("/users/#{@user}/events", "#{@user}_github_raw_stream.json")
12
12
  end
13
13
 
14
14
  def stream
15
- @stream ||= raw_stream.collect do |s|
15
+ raw_stream.collect do |s|
16
16
  { :message => format_message(s), :created_at => Time.parse(s["created_at"]).utc, :service => "github" }
17
17
  end
18
18
  end
@@ -22,13 +22,13 @@ module SocialCurrent
22
22
  def format_message(event)
23
23
  case event["type"]
24
24
  when "PushEvent"
25
- return "#{self.raw_user["name"]} pushed to <a href='http://github.com/#{event["repo"]["name"]}'>#{event["repo"]["name"]}</a>."
25
+ "#{self.raw_user["name"]} pushed to <a href='http://github.com/#{event["repo"]["name"]}'>#{event["repo"]["name"]}</a>."
26
26
  when "FollowEvent"
27
- return "#{self.raw_user["name"]} followed <a href='#{event["payload"]["target"]["html_url"]}'>#{event["payload"]["target"]["name"]}</a>."
27
+ "#{self.raw_user["name"]} followed <a href='#{event["payload"]["target"]["html_url"]}'>#{event["payload"]["target"]["name"]}</a>."
28
28
  when "CreateEvent"
29
- return "#{self.raw_user["name"]} created <a href='http://github.com/#{event["repo"]["name"]}'>#{event["repo"]["name"]}</a>."
29
+ "#{self.raw_user["name"]} created <a href='http://github.com/#{event["repo"]["name"]}'>#{event["repo"]["name"]}</a>."
30
30
  when "WatchEvent"
31
- return "#{self.raw_user["name"]} started watching <a href='http://github.com/#{event["repo"]["name"]}'>#{event["repo"]["name"]}</a>."
31
+ "#{self.raw_user["name"]} started watching <a href='http://github.com/#{event["repo"]["name"]}'>#{event["repo"]["name"]}</a>."
32
32
  end
33
33
  end
34
34
  end
@@ -5,10 +5,16 @@ module SocialCurrent
5
5
  end
6
6
 
7
7
  def fetch(remote, local)
8
- @contents = if cache_valid?("#{Dir.tmpdir}/#{local}")
8
+ if cache_valid?("#{Dir.tmpdir}/#{local}")
9
9
  JSON.parse(File.read("#{Dir.tmpdir}/#{local}"))
10
10
  else
11
- write_cache(local, JSON.parse(self.class.get(remote).body))
11
+ response = self.class.get(remote)
12
+ if response.header.code == "404"
13
+ []
14
+ else
15
+ write_cache(local, JSON.parse(response.body))
16
+ JSON.parse(response.body)
17
+ end
12
18
  end
13
19
  end
14
20
 
@@ -18,7 +24,6 @@ module SocialCurrent
18
24
  File.open("#{Dir.tmpdir}/#{local}", "w") do |f|
19
25
  f.write(contents.to_json)
20
26
  end
21
- contents
22
27
  end
23
28
 
24
29
  def cache_valid?(cache)
@@ -4,15 +4,15 @@ module SocialCurrent
4
4
  base_uri "https://api.twitter.com/1"
5
5
 
6
6
  def raw_user
7
- @raw_user ||= fetch("/users/show.json?screen_name=#{@user}", "#{@user}_twitter_raw_user.json")
7
+ fetch("/users/show.json?screen_name=#{@user}", "#{@user}_twitter_raw_user.json")
8
8
  end
9
9
 
10
10
  def raw_stream
11
- @raw_stream ||= fetch("/statuses/user_timeline.json?&screen_name=#{@user}", "#{@user}_twitter_raw_stream.json")
11
+ fetch("/statuses/user_timeline.json?&screen_name=#{@user}", "#{@user}_twitter_raw_stream.json")
12
12
  end
13
13
 
14
14
  def stream
15
- @stream ||= raw_stream.collect do |s|
15
+ raw_stream.collect do |s|
16
16
  { :message => format_message(s), :created_at => Time.parse(s["created_at"]).utc, :service => "twitter" }
17
17
  end
18
18
  end
@@ -1,4 +1,4 @@
1
1
  module SocialCurrent
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  SUPPORTED_INTEGRATIONS = [:github, :twitter]
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: social_current
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: