creative_rails_utilities 0.2.2 → 0.3.0
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 +4 -4
- data/.rspec +1 -0
- data/CHANGELOG.md +7 -2
- data/README.md +62 -1
- data/lib/creative_rails_utilities.rb +2 -0
- data/lib/creative_rails_utilities/railtie.rb +10 -0
- data/lib/creative_rails_utilities/version.rb +1 -1
- data/lib/creative_rails_utilities/view_helpers.rb +35 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c11e2d81b41c9250fa934fe3351ff2b91f27d1e1
|
4
|
+
data.tar.gz: 10374464c1ed042a4ac75fb91c8cceb3f1d5082f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0290b96140235311179d75a50df9b9b21691c37c344ec5f70a320ff6257526756696a3a15f1b5dc20794e15e33856cebcad2f03231840440a78a6989d9f2bbb9
|
7
|
+
data.tar.gz: 760f094be9e34f0aae9a76bf811a4f077c7dc81b76132df2279673bd4bc9d08b62a7ff2232dec252a9cfdfb6a9b5118980b8f8fd7ef5709b409ee3b63851fb35
|
data/.rspec
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,11 +2,16 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
-
## [Release candidate][0.
|
5
|
+
## [Release candidate][0.3.1-alpha.1]
|
6
6
|
### Added
|
7
7
|
-
|
8
8
|
|
9
|
-
## [
|
9
|
+
## [0.3.0] - 2015-12-10
|
10
|
+
### Added
|
11
|
+
- ViewHelper module for Rails
|
12
|
+
- helper#relative_time_parse(earlier_time, later_time=optional)
|
13
|
+
|
14
|
+
## [0.2.3] - 2015-11-20
|
10
15
|
### Added
|
11
16
|
- Added Integer#safe_part
|
12
17
|
- Documented Date#array_with_pre_churn_limit(limit_day_count)
|
data/README.md
CHANGED
@@ -10,7 +10,68 @@ Intended for Rails > 4.0.0, but will probably also work for older projects with
|
|
10
10
|
|
11
11
|
## Usage
|
12
12
|
|
13
|
-
Feel free to read the source under `/lib/creative_rails_utilities/`
|
13
|
+
Feel free to read the source under `/lib/creative_rails_utilities/` and peruse the method "it" lines under `/spec`
|
14
|
+
|
15
|
+
#### View Helpers
|
16
|
+
Rails-only (via railtie) view helpers have been added, they are automagically loaded and usable upon gem inclusion.
|
17
|
+
|
18
|
+
##### relative_time_parse(earlier_time, later_time=optional)
|
19
|
+
turns a timestamp into "time ago" format.
|
20
|
+
Examples:
|
21
|
+
|
22
|
+
```ruby
|
23
|
+
# If used with only one argument, will default the second argument to Time.now
|
24
|
+
# at "2015-01-15 12:00".to_datetime
|
25
|
+
|
26
|
+
relative_time_parse("2015-01-15 12:00".to_datetime)
|
27
|
+
#=> {key: "now", count: nil}
|
28
|
+
relative_time_parse("2015-01-15 11:59:59".to_datetime)
|
29
|
+
#=> {key: "second", count: nil}
|
30
|
+
relative_time_parse("2015-01-15 11:59:58".to_datetime)
|
31
|
+
#=> {key: "seconds", count: "1"}
|
32
|
+
relative_time_parse("2015-01-15 11:59:00".to_datetime)
|
33
|
+
#=> {key: "minute", count: nil}
|
34
|
+
relative_time_parse("2015-01-15 11:58:00".to_datetime)
|
35
|
+
#=> {key: "minutes", count: "2"}
|
36
|
+
relative_time_parse("2015-01-15 11:00".to_datetime)
|
37
|
+
#=> {key: "hour", count: nil}
|
38
|
+
relative_time_parse("2015-01-15 09:00".to_datetime)
|
39
|
+
#=> {key: "hours", count: "3"}
|
40
|
+
relative_time_parse("2015-01-14 11:00".to_datetime)
|
41
|
+
#=> {key: "day", count: nil}
|
42
|
+
relative_time_parse("2015-01-10 09:00".to_datetime)
|
43
|
+
#=> {key: "days", count: 5}
|
44
|
+
|
45
|
+
# if used with both arguments, expects the second to be later than the first and will calculate relative time between them
|
46
|
+
relative_time_parse("2015-01-01 12:00".to_datetime, "2015-01-01 12:02".to_datetime)
|
47
|
+
#=> {key: "minutes", count: "2"}
|
48
|
+
```
|
49
|
+
|
50
|
+
The keys are intended to be used together with `I18n.t`
|
51
|
+
Sample yaml for English
|
52
|
+
|
53
|
+
```yml
|
54
|
+
en:
|
55
|
+
time:
|
56
|
+
now: "just now"
|
57
|
+
second: "a second ago"
|
58
|
+
seconds: "%{count} seconds ago"
|
59
|
+
minute: "a minute ago"
|
60
|
+
minutes: "%{count} minutes ago"
|
61
|
+
hour: "an hour ago"
|
62
|
+
hours: "%{count} hours ago"
|
63
|
+
day: "a day ago"
|
64
|
+
days: "%{count} days ago"
|
65
|
+
```
|
66
|
+
|
67
|
+
Then you can write a simple helper that specifies localication key location and returns the correct value based on the hash returned by `relative_time_parse`
|
68
|
+
```ruby
|
69
|
+
def relative_short_time(t1, t2=nil)
|
70
|
+
hash = relative_time_parse(t1, t2)
|
71
|
+
count_hash = hash.count.present? ? hash.except(:key): {}
|
72
|
+
return I18n.t("time.#{hash[:key]}", count_hash)
|
73
|
+
end
|
74
|
+
```
|
14
75
|
|
15
76
|
##### Date
|
16
77
|
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'creative_rails_utilities/view_helpers'
|
2
|
+
|
3
|
+
module CreativeRailsUtilities
|
4
|
+
class Railtie < Rails::Railtie
|
5
|
+
initializer "creative_rails_utilities.view_helpers" do
|
6
|
+
ActiveSupport.on_load( :action_view ){ include CreativeRailsUtilities::ViewHelpers }
|
7
|
+
# ActionView::Base.send :include, ViewHelpers
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module CreativeRailsUtilities
|
2
|
+
module ViewHelpers
|
3
|
+
|
4
|
+
def relative_time_parse(earlier_time, later_time=nil)
|
5
|
+
later_time ||= Time.now
|
6
|
+
difference = (later_time.to_i - earlier_time.to_i).to_i
|
7
|
+
|
8
|
+
case difference
|
9
|
+
when 0
|
10
|
+
return {key: "now", count: nil}
|
11
|
+
when 1
|
12
|
+
return {key: "second", count: nil}
|
13
|
+
when 2..59
|
14
|
+
return {key: "seconds", count: difference.to_s}
|
15
|
+
when 60..119
|
16
|
+
return {key: "minute", count: nil}
|
17
|
+
when 120..3540
|
18
|
+
return {key: "minutes", count: (difference/60).to_i.to_s}
|
19
|
+
when 3541..7100
|
20
|
+
return {key: "hour", count: nil}
|
21
|
+
when 7101..82800
|
22
|
+
return {key: "hours", count: ((difference+99)/3600).to_i.to_s}
|
23
|
+
when 82801..172000
|
24
|
+
return {key: "day", count: nil}
|
25
|
+
else
|
26
|
+
if difference < 0
|
27
|
+
return {key: "now", count: nil}
|
28
|
+
else
|
29
|
+
return {key: "days", count: ((difference+800)/(60*60*24)).to_i.to_s}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: creative_rails_utilities
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Creative
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -160,8 +160,10 @@ files:
|
|
160
160
|
- lib/creative_rails_utilities/error_helper.rb
|
161
161
|
- lib/creative_rails_utilities/hash.rb
|
162
162
|
- lib/creative_rails_utilities/numeric.rb
|
163
|
+
- lib/creative_rails_utilities/railtie.rb
|
163
164
|
- lib/creative_rails_utilities/string.rb
|
164
165
|
- lib/creative_rails_utilities/version.rb
|
166
|
+
- lib/creative_rails_utilities/view_helpers.rb
|
165
167
|
homepage: https://github.com/CreativePublisher/rails_utilities
|
166
168
|
licenses:
|
167
169
|
- MIT
|