powerpack 0.1.1 → 0.1.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/.travis.yml +10 -6
- data/CHANGELOG.md +11 -4
- data/CONTRIBUTING.md +62 -0
- data/README.md +2 -2
- data/lib/powerpack/enumerable/sum.rb +13 -9
- data/lib/powerpack/string/remove_prefix.rb +1 -0
- data/lib/powerpack/string/remove_suffix.rb +1 -0
- data/lib/powerpack/version.rb +1 -1
- data/powerpack.gemspec +1 -1
- data/spec/powerpack/enumerable/sum_spec.rb +23 -9
- data/spec/powerpack/string/remove_prefix_spec.rb +8 -0
- data/spec/powerpack/string/remove_suffix_spec.rb +8 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2e81863714b8ba985b6b8df75e8c80fe0067622
|
4
|
+
data.tar.gz: 8db7578f7f0e9d011bbed495fbd86baec322906e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0be201c62b1285df95790d9e48f121b6ef78a1cd2f58858b2b12098c03ae8cd8db9bae0ad9cde53a55f5d51c327d5887ca8bd1ec0b66fc7293f9bd16e0e67222
|
7
|
+
data.tar.gz: da8f272a0c79d5d83c04aa87775c4e52f9eea3f235a2074374447b5cab61bfe493aa059ad7427bf78ce7ff8e8809e425ae1776d6636ff34d4b14087712662e74
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,25 +2,32 @@
|
|
2
2
|
|
3
3
|
## master (unreleased)
|
4
4
|
|
5
|
-
## 0.1.
|
5
|
+
## 0.1.2 (2018-06-10)
|
6
|
+
|
7
|
+
* Changed `String#remove_prefix` to return the original string if the parameter is not a prefix.
|
8
|
+
+* Changed `String#remove_prefix!`to return the original string if the parameter is not a prefix.
|
9
|
+
+* Changed `String#remove_suffix` to return the original string if the parameter is not a suffix.
|
10
|
+
+* Changed `String#remove_suffix!` to return the original string if the parameter is not a suffix.
|
11
|
+
|
12
|
+
## 0.1.1 (2015-05-04)
|
6
13
|
|
7
14
|
No user-visible changes.
|
8
15
|
|
9
|
-
## 0.1.0 (25
|
16
|
+
## 0.1.0 (2015-01-25)
|
10
17
|
|
11
18
|
* Added `String#remove_prefix`
|
12
19
|
* Added `String#remove_prefix!`
|
13
20
|
* Added `String#remove_suffix`
|
14
21
|
* Added `String#remove_suffix!`
|
15
22
|
|
16
|
-
## 0.0.9 (22
|
23
|
+
## 0.0.9 (2013-10-22)
|
17
24
|
|
18
25
|
* Added `String#remove`
|
19
26
|
* Added `String#remove!`
|
20
27
|
* Added `String#ascii_only`
|
21
28
|
* Added `String#ascii_only!`
|
22
29
|
|
23
|
-
## 0.0.8 (13
|
30
|
+
## 0.0.8 (2013-09-13)
|
24
31
|
|
25
32
|
### New features
|
26
33
|
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# Contributing
|
2
|
+
|
3
|
+
If you discover issues, have ideas for improvements or new features,
|
4
|
+
please report them to the [issue tracker][1] of the repository or
|
5
|
+
submit a pull request. Please, try to follow these guidelines when you
|
6
|
+
do so.
|
7
|
+
|
8
|
+
## Issue reporting
|
9
|
+
|
10
|
+
* Check that the issue has not already been reported.
|
11
|
+
* Check that the issue has not already been fixed in the latest code
|
12
|
+
(a.k.a. `master`).
|
13
|
+
* Be clear, concise and precise in your description of the problem.
|
14
|
+
* Open an issue with a descriptive title and a summary in grammatically correct,
|
15
|
+
complete sentences.
|
16
|
+
* Include Powerpack's version number.
|
17
|
+
* Include any relevant code to the issue summary.
|
18
|
+
|
19
|
+
## Pull requests
|
20
|
+
|
21
|
+
* Read [how to properly contribute to open source projects on Github][2].
|
22
|
+
* Fork the project.
|
23
|
+
* Use a topic/feature branch to easily amend a pull request later, if necessary.
|
24
|
+
* Write [good commit messages][3].
|
25
|
+
* Use the same coding conventions as the rest of the project.
|
26
|
+
* Commit and push until you are happy with your contribution.
|
27
|
+
* Make sure to add tests for it. This is important so I don't break it
|
28
|
+
in a future version unintentionally.
|
29
|
+
* Add an entry to the [Changelog](CHANGELOG.md) accordingly. See [changelog entry format](#changelog-entry-format).
|
30
|
+
* Please try not to mess with the Rakefile, version, or history. If
|
31
|
+
you want to have your own version, or is otherwise necessary, that
|
32
|
+
is fine, but please isolate to its own commit so I can cherry-pick
|
33
|
+
around it.
|
34
|
+
* Make sure the test suite is passing ([including rbx and jruby][7]) and the code you wrote doesn't produce
|
35
|
+
RuboCop offenses.
|
36
|
+
* [Squash related commits together][5].
|
37
|
+
* Open a [pull request][4] that relates to *only* one subject with a clear title
|
38
|
+
and description in grammatically correct, complete sentences.
|
39
|
+
|
40
|
+
### Changelog entry format
|
41
|
+
|
42
|
+
Here are a few examples:
|
43
|
+
|
44
|
+
```
|
45
|
+
* [#123](https://github.com/bbatsov/powerpack/issues/123): Fixed a bug in `Something#something`. ([@bbatsov][])
|
46
|
+
* Added new method `Something#something`. ([@bbatsov][])
|
47
|
+
```
|
48
|
+
|
49
|
+
* Mark it up in [Markdown syntax][6].
|
50
|
+
* The entry line should start with `* ` (an asterisk and a space).
|
51
|
+
* If the change has a related GitHub issue (e.g. a bug fix for a reported issue), put a link to the issue as `[#123](https://github.com/bbatsov/powerpack/issues/123): `.
|
52
|
+
* Describe the brief of the change. The sentence should end with a punctuation.
|
53
|
+
* At the end of the entry, add an implicit link to your GitHub user page as `([@username][])`.
|
54
|
+
* If this is your first contribution to Powerpack project, add a link definition for the implicit link to the bottom of the changelog as `[@username]: https://github.com/username`.
|
55
|
+
|
56
|
+
[1]: https://github.com/bbatsov/powerpack/issues
|
57
|
+
[2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request
|
58
|
+
[3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
|
59
|
+
[4]: https://help.github.com/articles/using-pull-requests
|
60
|
+
[5]: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
|
61
|
+
[6]: http://daringfireball.net/projects/markdown/syntax
|
62
|
+
[7]: http://blog.stwrt.ca/2013/09/06/installing-rubinius-with-rbenv
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
[](http://badge.fury.io/rb/powerpack)
|
2
|
+
[](https://travis-ci.org/bbatsov/powerpack)
|
3
3
|
|
4
4
|
# Powerpack
|
5
5
|
|
@@ -3,19 +3,23 @@ unless Enumerable.method_defined? :sum
|
|
3
3
|
# Sums up elements of a collection by invoking their `+` method.
|
4
4
|
# Most useful for summing up numbers.
|
5
5
|
#
|
6
|
-
# @param
|
7
|
-
# It
|
8
|
-
# @return The sum of the elements or the
|
9
|
-
# elements.
|
6
|
+
# @param initial [Object] an optional initial value.
|
7
|
+
# It defaults to 0 for an empty collection.
|
8
|
+
# @return The sum of the elements, or the initial value if there
|
9
|
+
# are no elements.
|
10
10
|
#
|
11
11
|
# @example
|
12
12
|
# [1, 2, 3].sum #=> 6
|
13
|
-
# ["a", "b", "c"].sum #=> "abc"
|
14
13
|
# [[1], [2], [3]].sum #=> [1, 2, 3]
|
15
|
-
# [].sum #=>
|
16
|
-
# [].sum
|
17
|
-
|
18
|
-
|
14
|
+
# [].sum #=> 0
|
15
|
+
# ["a"].sum #=> "a"
|
16
|
+
# ["b", "c"].sum("a") #=> "abc"
|
17
|
+
def sum(initial = nil)
|
18
|
+
if initial
|
19
|
+
reduce(initial, &:+)
|
20
|
+
else
|
21
|
+
reduce(&:+) || 0
|
22
|
+
end
|
19
23
|
end
|
20
24
|
end
|
21
25
|
end
|
data/lib/powerpack/version.rb
CHANGED
data/powerpack.gemspec
CHANGED
@@ -20,5 +20,5 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
21
21
|
spec.add_development_dependency 'rake'
|
22
22
|
spec.add_development_dependency('rspec')
|
23
|
-
spec.add_development_dependency('yard', '~> 0.
|
23
|
+
spec.add_development_dependency('yard', '~> 0.9')
|
24
24
|
end
|
@@ -1,15 +1,29 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
unless Enumerable.method_defined? :sum
|
4
|
+
describe 'Enumerable#sum' do
|
5
|
+
it 'sums up the numbers of an enum' do
|
6
|
+
expect((1..3).sum).to eq(6)
|
7
|
+
end
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
it 'returns zero when invoked on an empty collection' do
|
10
|
+
expect([].sum).to be_zero
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'returns the initial value when invoked on an empty collection' do
|
14
|
+
expect([].sum('')).to be_empty
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'prepends the initial value to the sum' do
|
18
|
+
expect(['b', 'c'].sum('a')).to eq('abc')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'concatenates strings' do
|
22
|
+
expect(['a', 'b', 'c'].sum).to eq('abc')
|
23
|
+
end
|
11
24
|
|
12
|
-
|
13
|
-
|
25
|
+
it 'concatenates arrays' do
|
26
|
+
expect([[1], [2], [3]].sum).to eq([1, 2, 3])
|
27
|
+
end
|
14
28
|
end
|
15
29
|
end
|
@@ -4,10 +4,18 @@ describe 'String#remove_prefix' do
|
|
4
4
|
it 'removes a prefix in a string' do
|
5
5
|
expect('Ladies Night'.remove_prefix('Ladies ')).to eq('Night')
|
6
6
|
end
|
7
|
+
|
8
|
+
it 'returns the original string if the parameter is not a prefix' do
|
9
|
+
expect('Ladies Night'.remove_prefix('Night')).to eq('Ladies Night')
|
10
|
+
end
|
7
11
|
end
|
8
12
|
|
9
13
|
describe 'String#remove_prefix!' do
|
10
14
|
it 'removes a prefix in a string' do
|
11
15
|
expect('Ladies Night'.remove_prefix!('Ladies ')).to eq('Night')
|
12
16
|
end
|
17
|
+
|
18
|
+
it 'returns the original string if the parameter is not a prefix' do
|
19
|
+
expect('Ladies Night'.remove_prefix!('Night')).to eq('Ladies Night')
|
20
|
+
end
|
13
21
|
end
|
@@ -4,10 +4,18 @@ describe 'String#remove_suffix' do
|
|
4
4
|
it 'removes a suffix in a string' do
|
5
5
|
expect('Ladies Night'.remove_suffix(' Night')).to eq('Ladies')
|
6
6
|
end
|
7
|
+
|
8
|
+
it 'returns the original string if the parameter is not a suffix' do
|
9
|
+
expect('Ladies Night'.remove_suffix('Ladies')).to eq('Ladies Night')
|
10
|
+
end
|
7
11
|
end
|
8
12
|
|
9
13
|
describe 'String#remove_suffix!' do
|
10
14
|
it 'removes a suffix in a string' do
|
11
15
|
expect('Ladies Night'.remove_suffix!(' Night')).to eq('Ladies')
|
12
16
|
end
|
17
|
+
|
18
|
+
it 'returns the original string if the parameter is not a suffix' do
|
19
|
+
expect('Ladies Night'.remove_suffix!('Ladies')).to eq('Ladies Night')
|
20
|
+
end
|
13
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: powerpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0.
|
61
|
+
version: '0.9'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0.
|
68
|
+
version: '0.9'
|
69
69
|
description: A few useful extensions to core Ruby classes.
|
70
70
|
email:
|
71
71
|
- bozhidar@batsov.com
|
@@ -77,6 +77,7 @@ files:
|
|
77
77
|
- ".rspec"
|
78
78
|
- ".travis.yml"
|
79
79
|
- CHANGELOG.md
|
80
|
+
- CONTRIBUTING.md
|
80
81
|
- Gemfile
|
81
82
|
- LICENSE.txt
|
82
83
|
- README.md
|
@@ -158,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
159
|
version: '0'
|
159
160
|
requirements: []
|
160
161
|
rubyforge_project:
|
161
|
-
rubygems_version: 2.
|
162
|
+
rubygems_version: 2.6.11
|
162
163
|
signing_key:
|
163
164
|
specification_version: 4
|
164
165
|
summary: A few useful extensions to core Ruby classes.
|
@@ -188,4 +189,3 @@ test_files:
|
|
188
189
|
- spec/powerpack/string/strip_indent_spec.rb
|
189
190
|
- spec/powerpack/string/strip_margin_spec.rb
|
190
191
|
- spec/spec_helper.rb
|
191
|
-
has_rdoc:
|