creative_rails_utilities 0.4.0 → 0.4.1
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/CHANGELOG.md +5 -1
- data/README.md +70 -61
- data/lib/creative_rails_utilities/numeric.rb +6 -0
- data/lib/creative_rails_utilities/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df58ca7b40c5342a60e7870b8dc7eb7981a5658e
|
4
|
+
data.tar.gz: ac593955b0f0414407b126202593840fd96b12a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96eb6862958090754f5c7d6dc40a0a32ff52db575dbfc594ee2006d0c4939c512a9ce114c80784907a8ff2fe54d79661fbd822b67a6803e71327c3224dcd848d
|
7
|
+
data.tar.gz: 472ec2660a18dda63c7eb0fee2694fa287cc5cd1067cf525add8d2d5ebf23dd1d60826bc29a195b34583fe6c7141f2d12d0616ced5c495746c5d65361976ece8
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -12,67 +12,6 @@ Intended for `Rails >= 4.0.0`, but will probably work for older projects with ro
|
|
12
12
|
|
13
13
|
Feel free to read the source under `/lib/creative_rails_utilities/` and peruse the method "it" lines under `/spec`
|
14
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 localization 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
|
-
```
|
75
|
-
|
76
15
|
##### Date
|
77
16
|
|
78
17
|
```ruby
|
@@ -150,6 +89,15 @@ some_hash.fast_sort_keys #=> some_sorted_hash
|
|
150
89
|
0.safe_percent(0) #=> 0
|
151
90
|
```
|
152
91
|
|
92
|
+
```ruby
|
93
|
+
# get a portion even when deleting with zero
|
94
|
+
# whole.safe_per(part)
|
95
|
+
100.safe_per(50) #=> 2.0
|
96
|
+
3.12.safe_per(2.6) #=> 1.2
|
97
|
+
1.safe_per(3) #=> 0.3333333333333333
|
98
|
+
0.safe_per(0) #=> 0
|
99
|
+
```
|
100
|
+
|
153
101
|
```ruby
|
154
102
|
# transform a Numeric that denotes seconds into a hash of how many :days, :hours, :minutes ad :seconds that is
|
155
103
|
61.5.to_time_hash #=> {days: 0, hours: 0, minutes: 1, seconds: 1.5}
|
@@ -191,6 +139,67 @@ string #=> "1..." instead of " 1..."
|
|
191
139
|
"y".to_bool #=> true
|
192
140
|
```
|
193
141
|
|
142
|
+
#### View Helpers
|
143
|
+
Rails-only (via railtie) view helpers have been added, they are automagically loaded and usable upon gem inclusion.
|
144
|
+
|
145
|
+
##### relative_time_parse(earlier_time, later_time=optional)
|
146
|
+
turns a timestamp into "time ago" format.
|
147
|
+
Examples:
|
148
|
+
|
149
|
+
```ruby
|
150
|
+
# If used with only one argument, will default the second argument to Time.now
|
151
|
+
# at "2015-01-15 12:00".to_datetime
|
152
|
+
|
153
|
+
relative_time_parse("2015-01-15 12:00".to_datetime)
|
154
|
+
#=> {key: "now", count: nil}
|
155
|
+
relative_time_parse("2015-01-15 11:59:59".to_datetime)
|
156
|
+
#=> {key: "second", count: nil}
|
157
|
+
relative_time_parse("2015-01-15 11:59:58".to_datetime)
|
158
|
+
#=> {key: "seconds", count: "1"}
|
159
|
+
relative_time_parse("2015-01-15 11:59:00".to_datetime)
|
160
|
+
#=> {key: "minute", count: nil}
|
161
|
+
relative_time_parse("2015-01-15 11:58:00".to_datetime)
|
162
|
+
#=> {key: "minutes", count: "2"}
|
163
|
+
relative_time_parse("2015-01-15 11:00".to_datetime)
|
164
|
+
#=> {key: "hour", count: nil}
|
165
|
+
relative_time_parse("2015-01-15 09:00".to_datetime)
|
166
|
+
#=> {key: "hours", count: "3"}
|
167
|
+
relative_time_parse("2015-01-14 11:00".to_datetime)
|
168
|
+
#=> {key: "day", count: nil}
|
169
|
+
relative_time_parse("2015-01-10 09:00".to_datetime)
|
170
|
+
#=> {key: "days", count: 5}
|
171
|
+
|
172
|
+
# if used with both arguments, expects the second to be later than the first and will calculate relative time between them
|
173
|
+
relative_time_parse("2015-01-01 12:00".to_datetime, "2015-01-01 12:02".to_datetime)
|
174
|
+
#=> {key: "minutes", count: "2"}
|
175
|
+
```
|
176
|
+
|
177
|
+
The keys are intended to be used together with `I18n.t`
|
178
|
+
Sample yaml for English
|
179
|
+
|
180
|
+
```yml
|
181
|
+
en:
|
182
|
+
time:
|
183
|
+
now: "just now"
|
184
|
+
second: "a second ago"
|
185
|
+
seconds: "%{count} seconds ago"
|
186
|
+
minute: "a minute ago"
|
187
|
+
minutes: "%{count} minutes ago"
|
188
|
+
hour: "an hour ago"
|
189
|
+
hours: "%{count} hours ago"
|
190
|
+
day: "a day ago"
|
191
|
+
days: "%{count} days ago"
|
192
|
+
```
|
193
|
+
|
194
|
+
Then you can write a simple helper that specifies localization key location and returns the correct value based on the hash returned by `relative_time_parse`
|
195
|
+
```ruby
|
196
|
+
def relative_short_time(t1, t2=nil)
|
197
|
+
hash = relative_time_parse(t1, t2)
|
198
|
+
count_hash = hash.count.present? ? hash.except(:key): {}
|
199
|
+
return I18n.t("time.#{hash[:key]}", count_hash)
|
200
|
+
end
|
201
|
+
```
|
202
|
+
|
194
203
|
## Development
|
195
204
|
Use ruby >=2.1
|
196
205
|
|
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.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Creative
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|