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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 81f43b9d5997a0a97fca28b30170a3daa80cf85e
4
- data.tar.gz: 03b01a6f4b0bc6945b778c9f6ffe1cca7533e648
3
+ metadata.gz: 17b35aeb6e7fb200ffb535774468dac2d75de25f
4
+ data.tar.gz: 30448514a1027a1a1dcf8ed22493ce94eb2155ac
5
5
  SHA512:
6
- metadata.gz: d91a73b06d6927c3505d9edfc1b8d26eb8f07ad38fe63b795856a2e67e973270aaa59fd51aeafd9e226f7f9291f5d36fb2eb776c9d54df8a9a5446d397bd9852
7
- data.tar.gz: c0c99f36a9ca23451a6ccabde0437ffb8958eb27330092e0653a21c82b6e814a92dd8b143ce768c0d5624ff7b41d55fe489cb567333139690b0bf12302dee6f0
6
+ metadata.gz: 7eb5262369b395a7d9957efc9bbc54c7c4ce1b1a8b04d12dfe383d9ec969af3ceb12b72451e24cc7580f74a7c091c25452b519bbd3b2840f783d86b49865c434
7
+ data.tar.gz: 8dc812fae83941b43fe73ffe279e82c5195059eecb46cf689064b0f6fb9f8b390e3044b35a6bb888e8ebc0ba5b83570b76395017f5d99eee7922b815b61c2c53
data/.gitignore CHANGED
File without changes
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --color
2
2
  --require spec_helper
3
+ --format documentation
data/.rubocop.yml CHANGED
File without changes
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
- ## 0.0.1 (Oct 9, 2015)
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
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'pathname'
4
+
5
+ # path to your application root.
6
+ APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
7
+
8
+ Dir.chdir APP_ROOT do
9
+ system "rspec"
10
+ end
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.10"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "rspec", "~> 3.2.0"
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.34.2"
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 extract(*args)
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 first
2
+ def co_first
3
3
  empty? ? "" : self[0, 1]
4
4
  end
5
5
 
6
- def first_or_nil
6
+ def co_first_or_nil
7
7
  empty? ? nil : self[0, 1]
8
8
  end
9
9
 
10
- def last
10
+ def co_last
11
11
  empty? ? "" : self[-1, 1]
12
12
  end
13
13
 
14
- def last_or_nil
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 first_words(n=nil, ellipses: false)
28
+ def co_first_words(n=nil, ellipses: false)
29
29
  new_str = n.nil? ? self : split[0...n].join(' ')
30
- elip = determine_ellipses(new_str, ellipses)
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 determine_ellipses(str, ellipses)
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
@@ -1,6 +1,6 @@
1
1
  class String
2
- def force_leading_space(even_when_empty: false)
2
+ def co_force_leading_space(even_when_empty: false)
3
3
  (return even_when_empty ? " " : "") if empty?
4
- all_spaces? ? dup : " #{lstrip}"
4
+ co_all_spaces? ? dup : " #{lstrip}"
5
5
  end
6
6
  end
@@ -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 all_spaces?(when_empty: false)
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
@@ -1,3 +1,3 @@
1
1
  module CorelibRuby
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/corelib_ruby.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "corelib_ruby/version"
2
2
  require "corelib_ruby/core_ext/string/base"
3
3
  require "corelib_ruby/core_ext/hash/base"
4
+ require "corelib_ruby/core_ext/array/base"
4
5
 
5
6
  # module CorelibRuby
6
7
  # end
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.1
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: 2015-10-09 00:00:00.000000000 Z
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.10'
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.10'
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: '10.0'
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: '10.0'
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.2.0
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.2.0
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.34.2
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.34.2
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.8
131
+ rubygems_version: 2.6.4
129
132
  signing_key:
130
133
  specification_version: 4
131
134
  summary: Useful extensions to ruby core.