corelib_ruby 0.0.1 → 0.0.2
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/.gitignore +0 -0
- data/.rspec +1 -0
- data/.rubocop.yml +0 -0
- data/CHANGELOG.md +6 -1
- data/Gemfile +0 -0
- data/README.md +4 -0
- data/Rakefile +0 -0
- data/bin/console +0 -0
- data/bin/rubocop +0 -0
- data/bin/setup +0 -0
- data/bin/test +10 -0
- data/corelib_ruby.gemspec +4 -4
- data/lib/corelib_ruby/core_ext/array/base.rb +1 -0
- data/lib/corelib_ruby/core_ext/array/delete.rb +14 -0
- data/lib/corelib_ruby/core_ext/hash/base.rb +0 -0
- data/lib/corelib_ruby/core_ext/hash/extract.rb +1 -1
- data/lib/corelib_ruby/core_ext/string/accessors.rb +7 -7
- data/lib/corelib_ruby/core_ext/string/base.rb +0 -0
- data/lib/corelib_ruby/core_ext/string/conversions.rb +2 -2
- data/lib/corelib_ruby/core_ext/string/questions.rb +1 -1
- data/lib/corelib_ruby/version.rb +1 -1
- data/lib/corelib_ruby.rb +1 -0
- metadata +14 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17b35aeb6e7fb200ffb535774468dac2d75de25f
|
4
|
+
data.tar.gz: 30448514a1027a1a1dcf8ed22493ce94eb2155ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7eb5262369b395a7d9957efc9bbc54c7c4ce1b1a8b04d12dfe383d9ec969af3ceb12b72451e24cc7580f74a7c091c25452b519bbd3b2840f783d86b49865c434
|
7
|
+
data.tar.gz: 8dc812fae83941b43fe73ffe279e82c5195059eecb46cf689064b0f6fb9f8b390e3044b35a6bb888e8ebc0ba5b83570b76395017f5d99eee7922b815b61c2c53
|
data/.gitignore
CHANGED
File without changes
|
data/.rspec
CHANGED
data/.rubocop.yml
CHANGED
File without changes
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
-
## 0.0.
|
3
|
+
## 0.0.2 (May 06, 2016)
|
4
|
+
|
5
|
+
1. (New) Add **Array** methods: `#co_delete!`
|
6
|
+
2. (Change) All methods now have a `co_` prefix to help prevent method name collisions with other libraries.
|
7
|
+
|
8
|
+
## 0.0.1 (Oct 09, 2015)
|
4
9
|
|
5
10
|
1. (New) Added **String** methods: `#first, #first_or_nil, #last, #last_or_nil, #first_words, #force_leading_space, #all_spaces?`
|
6
11
|
2. (New) Added **Hash** methods: `#extract`
|
data/Gemfile
CHANGED
File without changes
|
data/README.md
CHANGED
@@ -33,6 +33,10 @@ Or install it yourself as:
|
|
33
33
|
|
34
34
|
Browse the `/lib/corelib_ruby/` directory to find new methods; each method provides extensive document. All of these methods are now available inside your application without any additional configuration.
|
35
35
|
|
36
|
+
## Conventions
|
37
|
+
|
38
|
+
All methods are prefixed with `co_` to help prevent collisions with other libraries.
|
39
|
+
|
36
40
|
## Development
|
37
41
|
|
38
42
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake false` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/Rakefile
CHANGED
File without changes
|
data/bin/console
CHANGED
File without changes
|
data/bin/rubocop
CHANGED
File without changes
|
data/bin/setup
CHANGED
File without changes
|
data/bin/test
ADDED
data/corelib_ruby.gemspec
CHANGED
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_development_dependency "bundler", "~> 1.
|
22
|
-
spec.add_development_dependency "rake", "~>
|
23
|
-
spec.add_development_dependency "rspec", "~> 3.
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.12"
|
22
|
+
spec.add_development_dependency "rake", "~> 11.1"
|
23
|
+
spec.add_development_dependency "rspec", "~> 3.4.0"
|
24
24
|
spec.add_development_dependency "pry", "~> 0.10.1"
|
25
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
25
|
+
spec.add_development_dependency "rubocop", "~> 0.39.0"
|
26
26
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require "corelib_ruby/core_ext/array/delete"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class Array
|
2
|
+
# Public: Deletes items from the array, but raises an error if the item
|
3
|
+
# does not exist.
|
4
|
+
#
|
5
|
+
# obj: the obj to delete
|
6
|
+
def co_delete!(obj)
|
7
|
+
# do this check first only if the obj is nil because the
|
8
|
+
# cost of include? rises linerarly with the size of the array
|
9
|
+
raise ArgumentError if obj.nil? && !include?(nil)
|
10
|
+
result = self.delete(obj)
|
11
|
+
raise ArgumentError.new("#{obj.inspect} not present in array") if result.nil? && !obj.nil?
|
12
|
+
result
|
13
|
+
end
|
14
|
+
end
|
File without changes
|
@@ -7,7 +7,7 @@ class Hash
|
|
7
7
|
# If key doesn't exist and not default is specified, a KeyError is raised
|
8
8
|
# If key doesn't exists, there is no default, but a block is given, then
|
9
9
|
# that block will be executed with the key.
|
10
|
-
def
|
10
|
+
def co_extract(*args)
|
11
11
|
arg_length = args.length
|
12
12
|
fail ArgumentError, "wrong number of arguments #{arg_length} for 1..2" if arg_length == 0 || arg_length > 2
|
13
13
|
key = args[0]
|
@@ -1,17 +1,17 @@
|
|
1
1
|
class String
|
2
|
-
def
|
2
|
+
def co_first
|
3
3
|
empty? ? "" : self[0, 1]
|
4
4
|
end
|
5
5
|
|
6
|
-
def
|
6
|
+
def co_first_or_nil
|
7
7
|
empty? ? nil : self[0, 1]
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
10
|
+
def co_last
|
11
11
|
empty? ? "" : self[-1, 1]
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
14
|
+
def co_last_or_nil
|
15
15
|
empty? ? nil : self[-1, 1]
|
16
16
|
end
|
17
17
|
|
@@ -25,15 +25,15 @@ class String
|
|
25
25
|
# # => "This is ..."
|
26
26
|
# "This is a test".first_words(2, ellipses: " +++")
|
27
27
|
# # => "This is +++"
|
28
|
-
def
|
28
|
+
def co_first_words(n=nil, ellipses: false)
|
29
29
|
new_str = n.nil? ? self : split[0...n].join(' ')
|
30
|
-
elip =
|
30
|
+
elip = co_determine_ellipses(new_str, ellipses)
|
31
31
|
new_str + "#{elip}"
|
32
32
|
end
|
33
33
|
|
34
34
|
private
|
35
35
|
|
36
|
-
def
|
36
|
+
def co_determine_ellipses(str, ellipses)
|
37
37
|
return "" if empty? || !ellipses
|
38
38
|
return "" if str == self
|
39
39
|
ellipses === true ? " ..." : ellipses.to_s
|
File without changes
|
@@ -2,7 +2,7 @@ class String
|
|
2
2
|
# Returns true if a non empty string contains all strict space characters.
|
3
3
|
# Tabs and new lines are not considered spaces.
|
4
4
|
# Returns false for empty strings unless the when_empty: option is set to true.
|
5
|
-
def
|
5
|
+
def co_all_spaces?(when_empty: false)
|
6
6
|
return when_empty if empty?
|
7
7
|
each_byte { |x| return false unless x == 32 }
|
8
8
|
true
|
data/lib/corelib_ruby/version.rb
CHANGED
data/lib/corelib_ruby.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: corelib_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- roberts1000
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.12'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.12'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '11.1'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '11.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 3.
|
47
|
+
version: 3.4.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 3.
|
54
|
+
version: 3.4.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.39.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 0.39.0
|
83
83
|
description: Useful extensions to ruby core.
|
84
84
|
email:
|
85
85
|
- roberts@corlewsolutions.com
|
@@ -97,8 +97,11 @@ files:
|
|
97
97
|
- bin/console
|
98
98
|
- bin/rubocop
|
99
99
|
- bin/setup
|
100
|
+
- bin/test
|
100
101
|
- corelib_ruby.gemspec
|
101
102
|
- lib/corelib_ruby.rb
|
103
|
+
- lib/corelib_ruby/core_ext/array/base.rb
|
104
|
+
- lib/corelib_ruby/core_ext/array/delete.rb
|
102
105
|
- lib/corelib_ruby/core_ext/hash/base.rb
|
103
106
|
- lib/corelib_ruby/core_ext/hash/extract.rb
|
104
107
|
- lib/corelib_ruby/core_ext/string/accessors.rb
|
@@ -125,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
128
|
version: '0'
|
126
129
|
requirements: []
|
127
130
|
rubyforge_project:
|
128
|
-
rubygems_version: 2.4
|
131
|
+
rubygems_version: 2.6.4
|
129
132
|
signing_key:
|
130
133
|
specification_version: 4
|
131
134
|
summary: Useful extensions to ruby core.
|