diff options
author | luca-marie <ml.kochsiek@fu-berlin.de> | 2016-09-08 18:25:41 +0200 |
---|---|---|
committer | luca-marie <ml.kochsiek@fu-berlin.de> | 2016-09-08 18:25:41 +0200 |
commit | 4a09c2df8df3db979049ee8d98b202ad9f2125a8 (patch) | |
tree | e7f647888050dffe5153784f67490a3ed35ffccc | |
parent | 92e7b90d619111fdaaf50ab0b8538c39605fe005 (diff) |
Helper has caching of name and tweets included now \o/
-rw-r--r-- | app/helpers/twitter_helper.rb | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/app/helpers/twitter_helper.rb b/app/helpers/twitter_helper.rb index 834e5c6..fd3f82c 100644 --- a/app/helpers/twitter_helper.rb +++ b/app/helpers/twitter_helper.rb @@ -1,6 +1,8 @@ module TwitterHelper def twitter_enabled - Rails.application.secrets.twitter['enabled'] == true + if Rails.application.secrets.twitter + Rails.application.secrets.twitter['enabled'] == true + end end def twitter_client @@ -13,11 +15,32 @@ module TwitterHelper Rails.application.secrets.twitter['twitter_handle'] end + def twitter_user_info + $twitter_user_info ||= [] + end + + def update_twitter_info + twitter_user_info[0] = Time.now + twitter_user_info[1] = twitter_client.user(twitter_handle).name + twitter_user_info[2] = twitter_client.user_timeline(twitter_handle).select{ |tweet| tweet.text.start_with?('RT','@')==false}.take(3) + end + + def cached_info + if twitter_user_info[0] == nil + update_twitter_info + else + if Time.now > twitter_user_info[0] + 15.minutes + update_twitter_info + end + end + twitter_user_info + end + def twitter_name - twitter_client.user(twitter_handle).name + cached_info[1] end def tweets - twitter_client.user_timeline(twitter_handle).select{ |tweet| tweet.text.start_with?('RT','@')==false}.take(3) + cached_info[2] end end |