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 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,9 @@
1
+ require "wiser_date/view_helpers"
2
+
3
+ module WiserDate
4
+ class Railtie < Rails::Railtie
5
+ initializer "wiser_date.view_helpers" do |app|
6
+ ActionView::Base.send :include, ViewHelpers
7
+ end
8
+ end
9
+ end
@@ -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: []