wiser_date 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/lib/wiser_date/railtie.rb +9 -0
- data/lib/wiser_date/view_helpers.rb +67 -0
- data/lib/wiser_date.rb +1 -0
- metadata +46 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MzhhYzA5MWQzYTE1NmYxNzhlNjhjMWZlYTljNWVlMjM2NDQ4ODE1YQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
OWUyNjdlZDQ0YjVkYzk1ZTNlYTRlYThmZjEyMTJjODg3ZGM0M2U4Ng==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YTU4YTY3ZGY2OTFmYjEzZDBmZDg4ZDFiYTI1ZDljYTU4NGNiNTAxYjE5NTdj
|
10
|
+
ZGNkMTViMTI1MGZkYTM2N2QyZDY3NzgwZGVjN2ZiM2ExN2FjMDgxMDY1ZDBl
|
11
|
+
OTliYWE1OTAwM2U1NzQ3MDhjMWZlNzk4ZmZmMjRlYzNkYjU1ZjQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YzJmYTA5ZjA5YzFmNDZiOWQyOTk1ZTE1OWU2ODkyODM0ODU0YmJkMDY3ZjI1
|
14
|
+
MzFhYTRkNTJiNzhiZTcxNmU4MWFhZGRhMTA5ZGIzM2ZlZjdjZmUwOWY0ODUx
|
15
|
+
MzYxYzAyYjYzMGEzYzZhYzZlOWI2M2JmNDU3YWU4ZGU5MjFhNGQ=
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'date'
|
2
|
+
|
3
|
+
module WiserDate
|
4
|
+
module ViewHelpers
|
5
|
+
|
6
|
+
include ActionView::Helpers::JavaScriptHelper
|
7
|
+
include ActionView::Helpers::TagHelper
|
8
|
+
include ActionView::Helpers::DateHelper
|
9
|
+
include ActionView::Context
|
10
|
+
|
11
|
+
def wiser_date(timestamp, options = {})
|
12
|
+
# Options
|
13
|
+
date_format = options.has_key?(:date_format) ? options[:date_format] : "%b %d, %Y"
|
14
|
+
time_format = options.has_key?(:time_format) ? options[:time_format] : "%l:%M%P"
|
15
|
+
humanize = options.has_key?(:humanize) ? options[:humanize] : true
|
16
|
+
time_first = options.has_key?(:time_first) ? options[:time_first] : false
|
17
|
+
hide_same_year = options.has_key?(:hide_same_year) ? options[:hide_same_year] : false
|
18
|
+
capitalize = options.has_key?(:capitalize) ? options[:capitalize] : true
|
19
|
+
|
20
|
+
|
21
|
+
# Now
|
22
|
+
time_now = Time.now
|
23
|
+
|
24
|
+
# Formats
|
25
|
+
flat_format = "%Y%m%d%H%M%S"
|
26
|
+
plain_format = "%Y-%m-%d %H:%M:%S"
|
27
|
+
custom_format = time_first ? "#{time_format} #{date_format}" : "#{date_format} #{time_format}"
|
28
|
+
|
29
|
+
# Timestamps
|
30
|
+
custom_timestamp = timestamp.strftime(custom_format)
|
31
|
+
plain_timestamp = timestamp.strftime(plain_format)
|
32
|
+
|
33
|
+
# Humanize Display
|
34
|
+
if humanize
|
35
|
+
time_diff_in_seconds = (time_now - timestamp.to_time).ceil
|
36
|
+
time_diff = (time_diff_in_seconds / (60*60*24))
|
37
|
+
if time_diff_in_seconds <= 15
|
38
|
+
custom_timestamp = "just now"
|
39
|
+
elsif time_now.to_date - 1.day == timestamp.to_date
|
40
|
+
date_value = "yesterday"
|
41
|
+
time_value = timestamp.strftime(time_format)
|
42
|
+
custom_timestamp = time_first ? "#{time_value} #{date_value}" : "#{date_value} #{time_value}"
|
43
|
+
elsif time_diff < 1.0
|
44
|
+
custom_timestamp = "#{distance_of_time_in_words(Time.now, timestamp.to_time)} ago"
|
45
|
+
elsif hide_same_year && time_now.year == timestamp.year
|
46
|
+
custom_timestamp = custom_timestamp.gsub(", #{time_now.year.to_s}", '')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# Capitalize
|
51
|
+
if capitalize
|
52
|
+
custom_timestamp = custom_timestamp.to_s.capitalize
|
53
|
+
end
|
54
|
+
|
55
|
+
uniq_id = Digest::SHA1.hexdigest([Time.now, rand].join)
|
56
|
+
html = content_tag(:span, custom_timestamp,
|
57
|
+
"id" => uniq_id,
|
58
|
+
"class" => "wiser_date",
|
59
|
+
"data-plain-timestamp" => plain_timestamp,
|
60
|
+
"data-custom-timestamp" => custom_timestamp,
|
61
|
+
"data-new-custom-timestamp" => custom_timestamp
|
62
|
+
)
|
63
|
+
html += javascript_tag("jQuery(document).ready(function(){if(jQuery('body meta#wiser_date').size() == 0){$('body').prepend('<meta id=\"wiser_date\" data-value=\"#"+uniq_id+"\"/>')}else{$('meta#wiser_date').attr('data-value',$('meta#wiser_date').attr('data-value')+', #"+uniq_id+"')}});")
|
64
|
+
html.html_safe
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
data/lib/wiser_date.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'wiser_date/railtie' if defined?(Rails)
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wiser_date
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kenneth John Balgos
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2012-05-24 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Display dates in the coolest format.
|
14
|
+
email: kennethjohnbalgos@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/wiser_date/view_helpers.rb
|
20
|
+
- lib/wiser_date/railtie.rb
|
21
|
+
- lib/wiser_date.rb
|
22
|
+
homepage: https://github.com/kennethjohnbalgos/wiser_date
|
23
|
+
licenses:
|
24
|
+
- MIT
|
25
|
+
metadata: {}
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- lib
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ! '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ! '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
requirements: []
|
41
|
+
rubyforge_project:
|
42
|
+
rubygems_version: 2.0.3
|
43
|
+
signing_key:
|
44
|
+
specification_version: 4
|
45
|
+
summary: Display dates in the coolest format.
|
46
|
+
test_files: []
|