active_object 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +52 -0
- data/lib/active_object/enumerable.rb +2 -2
- data/lib/active_object/string.rb +73 -4
- data/lib/active_object/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: fd289204015cf2665adbdb3c6bd2f3518580040e
|
4
|
+
data.tar.gz: c6a99671c57f9b480ef81d971d4de1df751daf47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3f05c2f18bf9a56e71e27a40fa7df4b4f0413c27e348cc833e2a3c9b72fbe3f25eac5ca1836c3b79bc64113b4e233aa6e9b0f9b183d297950a7cb090ce38d88
|
7
|
+
data.tar.gz: a3dc7de58f5775c25e533769ca998d03f997a30f3971b02e9bca384427ebe6e28e239abcacf84189a1314dd606e85be0f29e56bf620538f89bfa73504d484397
|
data/README.md
CHANGED
@@ -1518,6 +1518,15 @@ false.truthy? #=> false
|
|
1518
1518
|
"example".indent(2, "\t") #=> "\t\texample"
|
1519
1519
|
```
|
1520
1520
|
|
1521
|
+
####Index all:####
|
1522
|
+
`index_all` returns the index values of matching patterns.
|
1523
|
+
|
1524
|
+
```ruby
|
1525
|
+
"012324507654301243".index_all(0) #=> [0,7,13]
|
1526
|
+
"the apple is the best fruit in the world".index_all("the") #=> [0,13,31]
|
1527
|
+
"asdfasdfasdf".index_all(/sd/) #=> [1,5,9]
|
1528
|
+
```
|
1529
|
+
|
1521
1530
|
####Labelize:####
|
1522
1531
|
`labelize` and `labelize!` transforms a string to a human readable string.
|
1523
1532
|
|
@@ -1581,12 +1590,28 @@ false.truthy? #=> false
|
|
1581
1590
|
"test".pollute("-") #=> "t-e-s-t-"
|
1582
1591
|
```
|
1583
1592
|
|
1593
|
+
####Pop:####
|
1594
|
+
`pop` returns the last character of a string.
|
1595
|
+
|
1596
|
+
```ruby
|
1597
|
+
"test".pop #=> "t"
|
1598
|
+
```
|
1599
|
+
|
1600
|
+
####Push:####
|
1601
|
+
`push` concats string to self.
|
1602
|
+
|
1603
|
+
```ruby
|
1604
|
+
"test".push("er") #=> "tester"
|
1605
|
+
```
|
1606
|
+
|
1584
1607
|
####Remove:####
|
1585
1608
|
`remove` and `remove!` removes every instance of a string.
|
1586
1609
|
|
1587
1610
|
```ruby
|
1588
1611
|
"this thing that thing".remove("thing") #=> "this that "
|
1612
|
+
"this thing that thing".remove(1..3) #=> "t thing that thing"
|
1589
1613
|
"this thing that them".remove("thing", "them") #=> "this that "
|
1614
|
+
"this thing that them".remove("thing", 1..3) #=> "t that them"
|
1590
1615
|
```
|
1591
1616
|
|
1592
1617
|
####Remove Tags:####
|
@@ -1610,6 +1635,7 @@ false.truthy? #=> false
|
|
1610
1635
|
`shift` and `shift!` removes the first instance of a string.
|
1611
1636
|
|
1612
1637
|
```ruby
|
1638
|
+
"this thing that thing".shift #=> "t"
|
1613
1639
|
"this thing that thing".shift("thing") #=> "this that thing"
|
1614
1640
|
"this thing that thing".shift("this", "that") #=> " thing thing"
|
1615
1641
|
```
|
@@ -1622,6 +1648,15 @@ false.truthy? #=> false
|
|
1622
1648
|
"ruby rules".sample! #=> "rblse syru"
|
1623
1649
|
```
|
1624
1650
|
|
1651
|
+
####Sift:####
|
1652
|
+
`sift` and `sift!` returns a string matching any character in a pattern.
|
1653
|
+
|
1654
|
+
```ruby
|
1655
|
+
"qa2ws3ed4rf5tg6yh7uj8ik9ol".sift("0123456789") #=> "23456789"
|
1656
|
+
"qa2ws3ed4rf5tg6yh7uj8ik9ol".sift(0..9) #=> "23456789"
|
1657
|
+
"qa2ws3ed4rf5tg6yh7uj8ik9ol".sift([0,1,2,3,4,5,6,7,8,9]) #=> "23456789"
|
1658
|
+
```
|
1659
|
+
|
1625
1660
|
####Slugify:####
|
1626
1661
|
`slugify` and `slugify!` generates a permalink-style string, with odd characters removed.
|
1627
1662
|
|
@@ -1631,6 +1666,13 @@ false.truthy? #=> false
|
|
1631
1666
|
"Example string @@@ test!".slugify #=> "example-string-test"
|
1632
1667
|
```
|
1633
1668
|
|
1669
|
+
####Sort:####
|
1670
|
+
`sort` and `sort!` sorts a string.
|
1671
|
+
|
1672
|
+
```ruby
|
1673
|
+
"adbec".sort #=> "abcde"
|
1674
|
+
```
|
1675
|
+
|
1634
1676
|
####Squish:####
|
1635
1677
|
`squish` and `squish!` returns the string, first removing all whitespace on both ends of the string, and then changing remaining consecutive whitespace groups into one space each. `Rails Safe`
|
1636
1678
|
|
@@ -1712,6 +1754,14 @@ false.truthy? #=> false
|
|
1712
1754
|
"Example".upcase? #=> false
|
1713
1755
|
```
|
1714
1756
|
|
1757
|
+
####Unshift:####
|
1758
|
+
`unshift` and `unshift!` prepends string(s) to self.
|
1759
|
+
|
1760
|
+
```ruby
|
1761
|
+
"this thing that thing".unshift("thing ") #=> "thing this thing that thing"
|
1762
|
+
"this thing that thing".unshift("this ", "that ") #=> "this that this thing that thing"
|
1763
|
+
```
|
1764
|
+
|
1715
1765
|
## Time
|
1716
1766
|
|
1717
1767
|
*Note:* also works with Date class.
|
@@ -1823,6 +1873,8 @@ Time.now.stamp(:datetime) #=> "January 09, 2014 02:31 pm"
|
|
1823
1873
|
| Daytime - iso imperical | `:daytime_imperical_iso` | %m-%d %H:%M | 01-09 12:31 am |
|
1824
1874
|
| Time - zero-padded | `:time` or `:time_padded` | %H:%M | 00:31 |
|
1825
1875
|
| Time - blank-padded | `:time_blank` | %k:%M %z | 0:31 |
|
1876
|
+
| Time - zero-padded imperical | `:time_imperical` or `:time_imperical_padded` | %I:%M %P | 07:31 |
|
1877
|
+
| Time - blank-padded imperical | `:time_imperical_blank` | %l:%M %P | 7:31 |
|
1826
1878
|
| Time - with time zone | `:time_tz` | %H:%M %z | 00:31 +0000 |
|
1827
1879
|
| Time - with time zone name | `:time_tzn` | %H:%M %Z | 00:31 UTC |
|
1828
1880
|
|
@@ -96,11 +96,11 @@ module Enumerable
|
|
96
96
|
end
|
97
97
|
|
98
98
|
def max(identity=0)
|
99
|
-
length > 0 ? sort.last : identity
|
99
|
+
(length rescue count) > 0 ? sort.last : identity
|
100
100
|
end
|
101
101
|
|
102
102
|
def min(identity=0)
|
103
|
-
length > 0 ? sort.first : identity
|
103
|
+
(length rescue count) > 0 ? sort.first : identity
|
104
104
|
end
|
105
105
|
|
106
106
|
def mean(identity=0)
|
data/lib/active_object/string.rb
CHANGED
@@ -160,6 +160,20 @@ class String
|
|
160
160
|
end
|
161
161
|
end
|
162
162
|
|
163
|
+
def index_all(pattern)
|
164
|
+
pattern = pattern.to_s if pattern.is_a?(Numeric)
|
165
|
+
arr_indexes = []
|
166
|
+
srch_index = rindex(pattern)
|
167
|
+
|
168
|
+
while srch_index do
|
169
|
+
temp_string = self[0..(srch_index - 1)]
|
170
|
+
arr_indexes << srch_index
|
171
|
+
srch_index = srch_index.zero? ? nil : temp_string.rindex(pattern)
|
172
|
+
end
|
173
|
+
|
174
|
+
arr_indexes.reverse
|
175
|
+
end
|
176
|
+
|
163
177
|
def labelize(options={})
|
164
178
|
underscore.
|
165
179
|
tr('_'.freeze, ' '.freeze).
|
@@ -224,10 +238,26 @@ class String
|
|
224
238
|
replace(pollute(delimiter))
|
225
239
|
end
|
226
240
|
|
241
|
+
def pop
|
242
|
+
self[-1]
|
243
|
+
end
|
244
|
+
|
245
|
+
def push(string)
|
246
|
+
replace(concat(string))
|
247
|
+
end
|
248
|
+
|
227
249
|
unless defined?(Rails)
|
228
250
|
def remove(*patterns)
|
229
251
|
string = dup
|
230
|
-
|
252
|
+
|
253
|
+
patterns.flatten.each do |p|
|
254
|
+
if p.is_a?(Range)
|
255
|
+
string.slice!(p)
|
256
|
+
else
|
257
|
+
string.gsub!(p, ''.freeze)
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
231
261
|
string
|
232
262
|
end
|
233
263
|
end
|
@@ -255,9 +285,13 @@ class String
|
|
255
285
|
end
|
256
286
|
|
257
287
|
def shift(*patterns)
|
258
|
-
|
259
|
-
|
260
|
-
|
288
|
+
if patterns.empty?
|
289
|
+
self[0]
|
290
|
+
else
|
291
|
+
string = dup
|
292
|
+
patterns.flatten.each { |p| string.sub!(p, ''.freeze) }
|
293
|
+
string
|
294
|
+
end
|
261
295
|
end
|
262
296
|
|
263
297
|
def shift!(*patterns)
|
@@ -272,6 +306,22 @@ class String
|
|
272
306
|
replace(shuffle(separator))
|
273
307
|
end
|
274
308
|
|
309
|
+
def sift(chars_to_keep)
|
310
|
+
chars_to_keep = case chars_to_keep
|
311
|
+
when String then chars_to_keep.chars
|
312
|
+
when Array then chars_to_keep.map { |c| c.to_s }
|
313
|
+
when Range then chars_to_keep.to_a.map { |c| c.to_s }
|
314
|
+
else
|
315
|
+
raise TypeError, "Invalid parameter"
|
316
|
+
end
|
317
|
+
|
318
|
+
chars.keep_if { |chr| chars_to_keep.include?(chr) }.join
|
319
|
+
end
|
320
|
+
|
321
|
+
def sift!(chars_to_keep)
|
322
|
+
replace(sift(chars_to_keep))
|
323
|
+
end
|
324
|
+
|
275
325
|
def slugify
|
276
326
|
gsub(/[^\x00-\x7F]+/, ''.freeze).
|
277
327
|
gsub(/[^\w_ \-]+/i, ''.freeze).
|
@@ -297,6 +347,14 @@ class String
|
|
297
347
|
end
|
298
348
|
end
|
299
349
|
|
350
|
+
def sort
|
351
|
+
chars.sort.join
|
352
|
+
end
|
353
|
+
|
354
|
+
def sort!
|
355
|
+
replace(sort)
|
356
|
+
end
|
357
|
+
|
300
358
|
unless defined?(Rails)
|
301
359
|
def titleize
|
302
360
|
underscore.
|
@@ -379,4 +437,15 @@ class String
|
|
379
437
|
upcase == self
|
380
438
|
end
|
381
439
|
|
440
|
+
def unshift(*patterns)
|
441
|
+
string = ''
|
442
|
+
patterns.flatten.each { |p| string.concat(p) }
|
443
|
+
string.concat(self)
|
444
|
+
string
|
445
|
+
end
|
446
|
+
|
447
|
+
def unshift!(*patterns)
|
448
|
+
replace(unshift(*patterns))
|
449
|
+
end
|
450
|
+
|
382
451
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Gomez
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|