wordnik_ruby_helpers 0.1.4 → 0.1.5

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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wordnik_ruby_helpers (0.1.1)
4
+ wordnik_ruby_helpers (0.1.4)
5
5
  RedCloth (>= 4.2.3)
6
6
  rails
7
7
 
@@ -9,6 +9,7 @@ GEM
9
9
  remote: http://rubygems.org/
10
10
  specs:
11
11
  RedCloth (4.2.7)
12
+ ZenTest (4.5.0)
12
13
  abstract (1.0.0)
13
14
  actionmailer (3.0.7)
14
15
  actionpack (= 3.0.7)
@@ -36,7 +37,10 @@ GEM
36
37
  activemodel (= 3.0.7)
37
38
  activesupport (= 3.0.7)
38
39
  activesupport (3.0.7)
39
- arel (2.0.9)
40
+ arel (2.0.10)
41
+ autotest (4.4.6)
42
+ ZenTest (>= 4.4.1)
43
+ autotest-rails-pure (4.1.2)
40
44
  builder (2.1.2)
41
45
  diff-lcs (1.1.2)
42
46
  erubis (2.6.6)
@@ -49,7 +53,7 @@ GEM
49
53
  treetop (~> 1.4.8)
50
54
  mime-types (1.16)
51
55
  polyglot (0.3.1)
52
- rack (1.2.2)
56
+ rack (1.2.3)
53
57
  rack-mount (0.6.14)
54
58
  rack (>= 1.0.0)
55
59
  rack-test (0.5.7)
@@ -67,7 +71,7 @@ GEM
67
71
  activesupport (= 3.0.7)
68
72
  rake (>= 0.8.7)
69
73
  thor (~> 0.14.4)
70
- rake (0.8.7)
74
+ rake (0.9.2)
71
75
  rspec (2.5.0)
72
76
  rspec-core (~> 2.5.0)
73
77
  rspec-expectations (~> 2.5.0)
@@ -79,11 +83,13 @@ GEM
79
83
  thor (0.14.6)
80
84
  treetop (1.4.9)
81
85
  polyglot (>= 0.3.1)
82
- tzinfo (0.3.27)
86
+ tzinfo (0.3.29)
83
87
 
84
88
  PLATFORMS
85
89
  ruby
86
90
 
87
91
  DEPENDENCIES
92
+ autotest
93
+ autotest-rails-pure
88
94
  rspec
89
95
  wordnik_ruby_helpers!
@@ -18,18 +18,35 @@ module WordnikRubyHelpers
18
18
  end
19
19
 
20
20
  # Use words if within the last week, otherwise use date (show year if not this year)
21
- def time_ago_in_words_or_date(date,options={})
22
- return unless date
23
- date = Date.parse(date)
24
- if (Date.today-date)/60/60/24 < 7
25
- time_ago_in_words(date) + " ago"
26
- elsif date.year == Time.now.year
27
- options[:short_format] ? date.strftime(options[:short_format]) : date.strftime("%b %e").gsub(" ", " ")
28
- else
29
- options[:long_format] ? date.strftime(options[:long_format]) : date.strftime("%b %e, %Y").gsub(" ", " ")
21
+ # Good for SEO and humans.. see http://timeago.yarp.com
22
+ #
23
+ # Usage:
24
+ # timeago(Time.now)
25
+ # timeago(time, :relative_for => 30.days)
26
+ def timeago(time, *args)
27
+ time = Time.parse(time) unless time.class == Time
28
+
29
+ defaults = {
30
+ :relative_for => 1.week,
31
+ :title => time.getutc.iso8601,
32
+ :class => ""
33
+ }
34
+ options = defaults.merge(args.extract_options!)
35
+
36
+ # Add a 'relative' CSS class unless it's way old
37
+ if Time.now-time < options[:relative_for]
38
+ options[:class] = options[:class].to_s.squeeze(' ').split(' ').push('relative').join(' ')
30
39
  end
40
+
41
+ # Take `relative_for` option out so it doesn't become an HTML attribute..
42
+ options.delete(:relative_for)
43
+
44
+ html_tag(:abbr, time.strftime('%b %e, %Y'), options)
31
45
  end
32
46
 
47
+ # Legacy support..
48
+ alias :time_ago_in_words_or_date :timeago
49
+
33
50
  # Output an easily styleable key-value pair
34
51
  def info_pair(label, value)
35
52
  value = content_tag(:span, "None", :class => "blank") if value.blank?
@@ -1,3 +1,3 @@
1
1
  module WordnikRubyHelpers
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -25,21 +25,44 @@ describe WordnikRubyHelpers do
25
25
 
26
26
  end
27
27
 
28
- context "time_ago_in_words_or_date" do
29
- it "should get relative times right" do
30
- time_ago_in_words_or_date(Time.now - 10.minutes).should == "10 minutes ago"
31
- time_ago_in_words_or_date(Time.now - 1.day).should == "1 day ago"
32
- time_ago_in_words_or_date(Time.now - 2.days).should == "2 days ago"
33
- end
28
+ context "timeago" do
34
29
 
35
- it "should use short format for non-relative dates in the last year" do
36
- time_ago_in_words_or_date(Time.now - 8.days).should =~ /\w{3} \d+/i
37
- time_ago_in_words_or_date(Time.now - 6.months).should =~ /\w{3} \d+/i
30
+ context "relative dates" do
31
+
32
+ it "returns nil if given bad input" do
33
+ expect { timeago("wonkalonka") }.to raise_error
34
+ expect { timeago(nil) }.to raise_error
35
+ expect { timeago(123) }.to raise_error
36
+ end
37
+
38
+ it "supports legacy time_ago_in_words_or_date method name" do
39
+ timeago("05-07-2009 19:00").should be_a(String)
40
+ end
41
+
42
+ it "accepts string input" do
43
+ timeago("05-07-2009 19:00").should be_a(String)
44
+ timeago("2006-12-24T17:58:58.000+0000").should be_a(String)
45
+ end
46
+
47
+ it "uses a human-friendly format in the display text, eg. 'Dec 24, 2006'" do
48
+ timeago("2006-12-24T17:58:58.000+0000").should =~ /Dec 24, 2006/
49
+ end
50
+
51
+ it "renders an abbr tag" do
52
+ timeago(1.year.ago).should =~ /^\<abbr/
53
+ end
54
+
55
+ it "renders a title tag" do
56
+ timeago(1.year.ago).should =~ /title=/
57
+ end
58
+
59
+ it "should render a css relative tag if within the last week" do
60
+ timeago(Time.now - 6.days).should =~ /class=\"relative\"/
61
+ timeago(Time.now - 8.days).should_not =~ /relative/
62
+ end
63
+
38
64
  end
39
65
 
40
- it "should display year format for non-relative dates beyond one year ago" do
41
- time_ago_in_words_or_date(Time.now - 13.months).should =~ /\w{3} \d+, \d{4}/i
42
- end
43
66
  end
44
67
 
45
68
  context "generate_table" do
@@ -18,7 +18,13 @@ Gem::Specification.new do |s|
18
18
  s.add_dependency 'RedCloth', '>= 4.2.3'
19
19
 
20
20
  s.add_development_dependency 'rspec'
21
-
21
+
22
+ # Optional..
23
+ s.add_development_dependency 'autotest'
24
+ s.add_development_dependency 'autotest-rails-pure'
25
+ # s.add_development_dependency 'autotest-growl'
26
+ # s.add_development_dependency 'autotest-fsevent'
27
+
22
28
  s.files = `git ls-files`.split("\n")
23
29
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
24
30
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: wordnik_ruby_helpers
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.4
5
+ version: 0.1.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Zeke Sikelianos
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-06-03 00:00:00 -07:00
14
+ date: 2011-07-11 00:00:00 -07:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
@@ -47,6 +47,28 @@ dependencies:
47
47
  version: "0"
48
48
  type: :development
49
49
  version_requirements: *id003
50
+ - !ruby/object:Gem::Dependency
51
+ name: autotest
52
+ prerelease: false
53
+ requirement: &id004 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: "0"
59
+ type: :development
60
+ version_requirements: *id004
61
+ - !ruby/object:Gem::Dependency
62
+ name: autotest-rails-pure
63
+ prerelease: false
64
+ requirement: &id005 !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: "0"
70
+ type: :development
71
+ version_requirements: *id005
50
72
  description: A handful of monkey patches and view helpers that we use in our rails projects
51
73
  email:
52
74
  - zeke@wordnik.com