dm_ruby_extensions 1.0.8 → 1.0.9
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/Gemfile +1 -1
- data/lib/dm_ruby_extensions/extend_array.rb +1 -2
- data/lib/dm_ruby_extensions/extend_integer.rb +1 -1
- data/lib/dm_ruby_extensions/extend_numeric.rb +1 -3
- data/lib/dm_ruby_extensions/extend_string.rb +13 -14
- data/lib/dm_ruby_extensions/version.rb +1 -1
- data/spec/extensions/date_spec.rb +5 -5
- data/spec/extensions/datetime_spec.rb +5 -5
- data/spec/extensions/integer_spec.rb +1 -3
- data/spec/spec_helper.rb +1 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: faf35d14eb0e9a4fd037b1e3b3aed616141a0cb4
|
4
|
+
data.tar.gz: 3419c2d7b07edcc1dcf0c5c5a3bcd0abb1d6a4c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff6026e4c21a2adc2238854c7ac1623bd6d8931ff9ecbab07bb7b4b535b28885bca80f568b1d2445f313c3ec29a3a46cce147f85143db802b274f0b02eddd54c
|
7
|
+
data.tar.gz: b2ff730e615af076f516718e68ad5f6f2a08467f327146c7b446c6e76c99be09b7652c79162c13df645463d735bcddf070727d115aa6f71ca3984beca6f6f230
|
data/Gemfile
CHANGED
@@ -35,7 +35,7 @@ class Array
|
|
35
35
|
|
36
36
|
# given an array of css classes/styles, join them into one string.
|
37
37
|
# only join non-nil/non-empty strings, and return nil if the result
|
38
|
-
# is an empty string (rails tag methods will not include the
|
38
|
+
# is an empty string (rails tag methods will not include the
|
39
39
|
# attribute if it is nil, which is desirable for cleaner html)
|
40
40
|
#------------------------------------------------------------------------------
|
41
41
|
def css_join(delimiter = '')
|
@@ -43,4 +43,3 @@ class Array
|
|
43
43
|
str == '' ? nil : str
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
@@ -7,7 +7,7 @@ class String #:nodoc:
|
|
7
7
|
def to_s_default(default_str = 'n/a')
|
8
8
|
(empty? || strip.empty?) ? default_str : self.to_s
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
#------------------------------------------------------------------------------
|
12
12
|
def as_boolean
|
13
13
|
(self == 'true' || self == 'yes' || self == '1') ? true : false
|
@@ -24,15 +24,15 @@ class String #:nodoc:
|
|
24
24
|
# Adds SQL wildcard cahracters to begin/end of string for use in LIKE statements
|
25
25
|
#------------------------------------------------------------------------------
|
26
26
|
def sql_wildcard
|
27
|
-
"%#{self}%"
|
27
|
+
"%#{self}%"
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
# Replace non-alphanumbic character
|
31
31
|
#------------------------------------------------------------------------------
|
32
32
|
def replace_non_alphanumeric(replacement = '')
|
33
33
|
self.gsub /[^\w\.\-]/, replacement
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
# Santize the string
|
37
37
|
# Note: File.basename doesn't work right with Windows paths on Unix
|
38
38
|
#------------------------------------------------------------------------------
|
@@ -40,13 +40,13 @@ class String #:nodoc:
|
|
40
40
|
name = self.strip
|
41
41
|
#--- get only the filename, not the whole path
|
42
42
|
name.gsub! /^.*(\\|\/)/, ''
|
43
|
-
|
43
|
+
|
44
44
|
#--- Finally, replace all non alphanumeric, underscore or periods with underscore
|
45
45
|
name.gsub! /[^\w\.\-]/, '_'
|
46
46
|
return name
|
47
47
|
end
|
48
48
|
|
49
|
-
# if a relative url path is given, then expand it by prepending the supplied
|
49
|
+
# if a relative url path is given, then expand it by prepending the supplied
|
50
50
|
# path.
|
51
51
|
#------------------------------------------------------------------------------
|
52
52
|
def expand_url(path = '')
|
@@ -70,7 +70,7 @@ class String #:nodoc:
|
|
70
70
|
#------------------------------------------------------------------------------
|
71
71
|
def smart_titlecase
|
72
72
|
small_words = %w(a an and as at but by en for if in of on or the to v v. via vs vs. von)
|
73
|
-
|
73
|
+
|
74
74
|
x = split(" ").map do |word|
|
75
75
|
# note: word could contain non-word characters!
|
76
76
|
# downcase all small_words, capitalize the rest
|
@@ -83,7 +83,7 @@ class String #:nodoc:
|
|
83
83
|
# small words after colons are capitalized
|
84
84
|
x.join(" ").gsub(/:\s?(\W*#{small_words.join("|")}\W*)\s/) { ": #{$1.smart_capitalize} " }
|
85
85
|
end
|
86
|
-
|
86
|
+
|
87
87
|
#------------------------------------------------------------------------------
|
88
88
|
def smart_capitalize
|
89
89
|
# ignore any leading crazy characters and capitalize the first real character
|
@@ -95,7 +95,7 @@ class String #:nodoc:
|
|
95
95
|
end
|
96
96
|
self
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
99
|
#------------------------------------------------------------------------------
|
100
100
|
def smart_capitalize!
|
101
101
|
replace(smart_capitalize)
|
@@ -113,10 +113,10 @@ class String #:nodoc:
|
|
113
113
|
end
|
114
114
|
a = self.split(/\s/) # or /[ ]+/ to only split on spaces
|
115
115
|
n = opts[:words]
|
116
|
-
a[0...n].join(' ') + (a.size > n ? '...' : '')
|
116
|
+
a[0...n].join(' ') + (a.size > n ? '...' : '')
|
117
117
|
end
|
118
118
|
#------------------------------------------------------------------------------
|
119
|
-
|
119
|
+
|
120
120
|
# http://github.com/tenderlove/namecase
|
121
121
|
# NameCase is a Ruby implementation of Lingua::EN::NameCase, a library for
|
122
122
|
# converting strings/names to be properly cased. This is good for converting
|
@@ -182,12 +182,11 @@ class String #:nodoc:
|
|
182
182
|
|
183
183
|
localstring
|
184
184
|
end
|
185
|
-
|
185
|
+
|
186
186
|
# Modifies _str_ in place and properly namecases the string.
|
187
187
|
#------------------------------------------------------------------------------
|
188
188
|
def name_case!
|
189
189
|
self.gsub!(self, self.name_case)
|
190
190
|
end
|
191
|
-
|
192
|
-
end
|
193
191
|
|
192
|
+
end
|
@@ -4,11 +4,11 @@ require 'dm_ruby_extensions'
|
|
4
4
|
describe Date do
|
5
5
|
|
6
6
|
describe 'to_age' do
|
7
|
-
it 'return number of years since now'
|
8
|
-
expect(Date.new(
|
7
|
+
it 'return number of years since now' do
|
8
|
+
expect(Date.new(Time.now.year - 50, Time.now.month, Time.now.day).to_age).to eq 50
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
describe 'localize' do
|
13
13
|
it 'localize the date based on the format' do
|
14
14
|
I18n.enforce_available_locales = false
|
@@ -19,11 +19,11 @@ describe Date do
|
|
19
19
|
expect(date.localize('%b %Y')).to eq 'Nov 2012'
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
describe 'to_index' do
|
24
24
|
it 'creates unique sortable index for a date' do
|
25
25
|
date = Date.new(2012, 11, 23)
|
26
26
|
expect(date.to_index).to eq 12328
|
27
27
|
end
|
28
28
|
end
|
29
|
-
end
|
29
|
+
end
|
@@ -4,11 +4,11 @@ require 'dm_ruby_extensions'
|
|
4
4
|
describe DateTime do
|
5
5
|
|
6
6
|
describe 'to_age' do
|
7
|
-
it 'return number of years since now'
|
8
|
-
expect(DateTime.new(
|
7
|
+
it 'return number of years since now' do
|
8
|
+
expect(DateTime.new(Time.now.year - 50, Time.now.month, Time.now.day).to_age).to eq 50
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
describe 'localize' do
|
13
13
|
it 'localize the date based on the format' do
|
14
14
|
I18n.enforce_available_locales = false
|
@@ -19,11 +19,11 @@ describe DateTime do
|
|
19
19
|
expect(date.localize('%b %Y')).to eq 'Nov 2012'
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
describe 'to_index' do
|
24
24
|
it 'creates unique sortable index for a date' do
|
25
25
|
date = Date.new(2012, 11, 23)
|
26
26
|
expect(date.to_index).to eq 12328
|
27
27
|
end
|
28
28
|
end
|
29
|
-
end
|
29
|
+
end
|
@@ -2,7 +2,6 @@ require 'spec_helper'
|
|
2
2
|
require 'dm_ruby_extensions'
|
3
3
|
|
4
4
|
describe Integer do
|
5
|
-
|
6
5
|
describe 'factorial' do
|
7
6
|
#------------------------------------------------------------------------------
|
8
7
|
it 'return the factorial of the number' do
|
@@ -16,5 +15,4 @@ describe Integer do
|
|
16
15
|
specify { expect(0.as_boolean).to be_falsey }
|
17
16
|
specify { expect(20.as_boolean).to be_truthy }
|
18
17
|
end
|
19
|
-
|
20
|
-
end
|
18
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'pry-byebug'
|
1
2
|
# This file was generated by the `rails generate rspec:install` command. Conventionally, all
|
2
3
|
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
4
|
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|