wiser_date 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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: []