twitterfeed 0.1.8 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  .DS_Store
19
+ .gitignore
data/README.md CHANGED
@@ -27,7 +27,7 @@ Place helper line anywhere in your project with an array of twitter handles or h
27
27
 
28
28
  Options:
29
29
 
30
- <%= twitterfeed(["#ruby", "#rails"], :align => "left", :max => 10) %>
30
+ <%= twitterfeed(["#ruby", "#rails"], :align => "left", :max => 10, :title => "Cool Ruby Tweets") %>
31
31
 
32
32
  Enjoy!
33
33
 
Binary file
@@ -16,15 +16,20 @@
16
16
 
17
17
  #twitterfeed_header {
18
18
  margin-bottom: 5px;
19
- }
19
+ font-family: arial;
20
+ font-size: 15px;
21
+ font-style: italic;}
22
+
23
+ #twitterfeed_header img{
24
+ margin-left: 10px;
25
+ }
20
26
 
21
27
  #twitterfeed_content {
22
28
  height: 300px;
23
29
  overflow: scroll;
24
30
  overflow-x:hidden;
25
31
  border: 1px solid black;
26
- -webkit-border-radius: 5px;
27
- -moz-border-radius: 5px;
32
+ border-radius: 5px;
28
33
  }
29
34
 
30
35
  #twitterfeed_tweet {
@@ -2,8 +2,10 @@
2
2
 
3
3
  #twitterfeed{:class => align}
4
4
 
5
- / #twitterfeed_header
6
- / = link_to image_tag('/assets/twitterfeed-logo.gif'), "https://github.com/markcap/twitterfeed", :target => '_blank'
5
+ - if title
6
+ #twitterfeed_header
7
+ = title
8
+ = image_tag("bird.jpg")
7
9
  #twitterfeed_content
8
10
  - tweet_array.each do |tweet|
9
11
  #twitterfeed_tweet{:class => cycle('even','odd')}
data/lib/twitterfeed.rb CHANGED
@@ -8,11 +8,11 @@ module Twitterfeed
8
8
  total_tweets = []
9
9
  name_array.first(150).each do |name|
10
10
  if name[0] == "#"
11
- Twitter.search(name, :rpp => 20).results.each do |tweet|
11
+ Twitter.search("#{name} -rt", :rpp => 20).results.each do |tweet|
12
12
  total_tweets << tweet
13
13
  end
14
14
  else
15
- Twitter.user_timeline(name, :include_rts => true).each do |tweet|
15
+ Twitter.user_timeline(name, :include_rts => true, :exclude_replies => true, :count => 100).first(20).each do |tweet|
16
16
  total_tweets << tweet
17
17
  end
18
18
  end
@@ -34,7 +34,7 @@ module Twitterfeed
34
34
  def self.set_defaults(options)
35
35
  #sets values for twitterfeed window options, with some validations
36
36
 
37
- defaults = {:align => 'right', :max => 20}
37
+ defaults = {:align => 'right', :max => 20, :title => nil}
38
38
  defaults.merge!(options)
39
39
 
40
40
  if (defaults[:align] != ("left" || "right"))
@@ -1,3 +1,3 @@
1
1
  module Twitterfeed
2
- VERSION = "0.1.8"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -2,6 +2,7 @@ require 'twitter'
2
2
 
3
3
  module Twitterfeed
4
4
  module ViewHelpers
5
+
5
6
  def twitterfeed(name_array, options = {})
6
7
 
7
8
  defaults = Twitterfeed.set_defaults(options)
@@ -19,7 +20,8 @@ module Twitterfeed
19
20
  twitterfeed_data = YAML.load(File.open("twitterfeed.yml"))
20
21
  #removing update time from array
21
22
  twitterfeed_data.slice!(0)
22
- render :partial => "twitterfeed/twitterfeed_box", :locals => { :tweet_array => twitterfeed_data, :align => defaults[:align]}
23
+ render :partial => "twitterfeed/twitterfeed_box",
24
+ :locals => { :tweet_array => twitterfeed_data, :align => defaults[:align], :title => defaults[:title]}
23
25
 
24
26
  end
25
27
 
@@ -44,23 +46,31 @@ module Twitterfeed
44
46
  @links = tweet.scan(/https?:\/\/\S+/)
45
47
 
46
48
  @ats.each do |a|
47
- tweet.gsub!(/#{a}/, "<a href='http://twitter.com/#{a[1..(a.length - 1)]}' target='_blank'>#{a}</a>")
49
+ at = sanitize_link(a)
50
+ tweet.gsub!(/#{at}/, "<a href='http://twitter.com/#{at[1..(at.length - 1)]}' target='_blank'>#{at}</a>")
48
51
  end
49
52
 
50
53
  @tags.each do |t|
51
- t.delete! "\""
52
- t.delete! ")"
53
- tweet.gsub!(/#{t}/, "<a href='http://twitter.com/search/%23#{t[1..(t.length - 1)]}' target='_blank'>#{t}</a>")
54
+ tag = sanitize_link(t)
55
+ tweet.gsub!(/#{tag}(\Z|[\s.,()!?\"\'*])/, "<a href='http://twitter.com/search/%23#{tag[1..(tag.length - 1)]}' target='_blank'>#{tag}</a> ")
54
56
  end
55
57
 
56
58
  @links.each do |l|
57
- l.delete! "\""
58
- l.delete! ")"
59
- tweet.gsub!(/#{l}/, "<a href='#{l}' target='_blank'>#{l}</a>")
59
+ link = sanitize_link(l)
60
+ tweet.gsub!(/#{link}/, "<a href='#{link}' target='_blank'>#{link}</a>")
60
61
  end
61
62
 
62
63
  tweet.html_safe
63
64
  end
65
+
66
+ def sanitize_link(item)
67
+ #this enables crap like (#ruby) and "http://yahoo.com" to link properly in tweets
68
+ while item.last =~ /[.,()!?\"\'*]/
69
+ item.chop!
70
+ end
71
+ item
72
+ end
73
+
64
74
  end
65
75
  end
66
76
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: twitterfeed
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.8
5
+ version: 0.2.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Mark Capodagli
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-08-15 00:00:00 Z
13
+ date: 2012-09-02 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: twitter
@@ -38,6 +38,7 @@ files:
38
38
  - LICENSE
39
39
  - README.md
40
40
  - Rakefile
41
+ - app/assets/images/bird.jpg
41
42
  - app/assets/images/twitterfeed-logo.gif
42
43
  - app/assets/stylesheets/twitterfeed.css
43
44
  - app/views/twitterfeed/_twitterfeed_box.html.haml