wiser_date 0.1.2
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.
- 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: []
|