chap8_ex_gem_palindrome 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6e47e9b3ddd7ee07b6f70658ce895e4bd334eff938bc248d5d25a71f1a15e906
4
- data.tar.gz: 7854344b1fdaee461d14f60f85dadf43045f6de6715f7e181c4e384b3823270c
3
+ metadata.gz: 1786ac8e9766be3749b2dba55abe2c5cfc670dca24968dd18c33993e8ee50456
4
+ data.tar.gz: a4c44a30a8da0b5a94e63c4b6cf9410c6b45a90db9dc5d4858d069634503a6e4
5
5
  SHA512:
6
- metadata.gz: 390450ffa4500ebefe7f027f7569f99306fdd6acf614f229e1788b45277d5fcdc5d8897498d875b88474b43384eb97dc8484cf37e793fa5188eccb64d3a8cdb0
7
- data.tar.gz: 0016eafe396d38cf3301ffbeb9c350eacdadbc941e1ec9ad774c8d5542a166d21b68003eb210314fe2d63dd2ff57e8e3eb45e8bc04ca46d575d3f45f2e7820a6
6
+ metadata.gz: 6de3ebc6949a1c2d83b751a99ffca5c646520df106e0ae8a76534aa245ace9e5751010b8b792a0a45a1ff713eb5b089aa3c438e75b1afa6ca1f1f8cf619eefce
7
+ data.tar.gz: 2bf8f847a73717162fda823ff2f12bc165d21eb182ae347d4006a7264e8a6eff8553863f8a116595b1c9ce6f3753a38c809561181c2b45d817e5155725346ea2
data/Gemfile CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
7
7
  # Specify your gem's dependencies in chap8_ex_gem_palindrome.gemspec
8
8
  gemspec
@@ -13,4 +13,4 @@ gem "minitest", "~> 5.0"
13
13
 
14
14
  gem "rubocop", "~> 1.21"
15
15
 
16
- gem 'minitest-reporters', '1.2.0'
16
+ gem "minitest-reporters", "1.2.0"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- chap8_ex_gem_palindrome (0.1.0)
4
+ chap8_ex_gem_palindrome (0.2.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -8,13 +8,11 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Xeniouska"]
9
9
  spec.email = ["115425494+Xeniouska@users.noreply.github.com"]
10
10
 
11
- spec.summary = %q{Palindrome detector}
12
- spec.description = %q{Learn Enough Ruby palindrome detector}
11
+ spec.summary = "Palindrome detector"
12
+ spec.description = "Learn Enough Ruby palindrome detector"
13
13
  spec.homepage = "https://github.com/mhartl/mhartl_palindrome"
14
14
  spec.required_ruby_version = ">= 2.6.0"
15
15
 
16
-
17
-
18
16
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the
19
17
  # 'allowed_push_host'
20
18
  # to allow pushing to a single host or delete this section to allow pushing to
@@ -32,8 +30,6 @@ Gem::Specification.new do |spec|
32
30
  # spec.metadata["source_code_uri"] = spec.homepage
33
31
  # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
34
32
 
35
-
36
-
37
33
  # Specify which files should be added to the gem when it is released.
38
34
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
39
35
  spec.files = Dir.chdir(__dir__) do
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Chap8ExGemPalindrome
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.1"
5
5
  end
@@ -1,70 +1,99 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "chap8_ex_gem_palindrome/version"
3
+ # Version 0.2.1
4
4
 
5
- class String
5
+ require_relative "chap8_ex_gem_palindrome/version"
6
6
 
7
+ # Test for palindroms
8
+ module Chap8ExGemPalindrome
7
9
  # Returns true for a palindrome, false otherwise.
8
10
  def palindrome?
9
- processed_content == processed_content.reverse
11
+ if processed_content.empty?
12
+ false
13
+ else
14
+ processed_content == processed_content.reverse
15
+ end
10
16
  end
11
17
 
12
- # Returns the letters of the string (made by myself).
13
- # def letters
14
- # self.scan(/[a-z*A-Z*]/).join
15
- # end
16
-
17
- # Longer version A (from Tutorial).
18
- # def letters
19
- # the_letters = []
20
- # for i in 0..(self.length - 1) do
21
- # if self[i].match(/[a-zA-Z]/)
22
- # the_letters << self[i]
23
- # end
24
- # end
25
- # the_letters.join
26
- # end
27
-
28
- # Longer version B (made by myself).
29
- # def letters
30
- # the_letters = []
31
- # regex_letters = /[a-z]/i # i for case incensitive
32
- # self.each_char do |letter|
33
- # if letter.match(regex_letters)
34
- # the_letters << letter
35
- # end
36
- # end
37
- # the_letters.join
38
- # end
39
-
40
- # Shorter version (following tutorial, from myself)
41
- # def letters
42
- # the_letters = self.chars.select { |char| char.match?(/[a-z]/i) }
43
- # the_letters.join
44
- # end
45
-
46
- # Shorter version (from tutorial)
47
- # def letters
48
- # chars.select { |char| char.match?(/[a-z]/i) }.join
49
- # end
50
-
51
- # Finally Hartl end ups with the same code as I.
52
- # def letters
53
- # self.scan(/[a-z*A-Z*]/).join
54
- # end
55
- # And he goes further by pasting this in the processed_content and
56
- # deleting the letters method !
57
-
58
18
  private
59
19
 
60
- # Returns content for palindrome testing.
61
- # FIRST version:
62
- # def processed_content
63
- # self.letters.downcase
64
- # end
20
+ # Returns content for palindrome testing.
21
+ def processed_content
22
+ scan(/[a-z0-9]/i).join.downcase
23
+ end
24
+ end
65
25
 
66
- # SECOND version, after joining to it the letters method:
67
- def processed_content
68
- self.scan(/[a-z*A-Z*]/).join.downcase
69
- end
26
+ class String
27
+ include Chap8ExGemPalindrome
28
+ end
29
+
30
+ class Integer
31
+ include Chap8ExGemPalindrome
70
32
  end
33
+
34
+ # class String
35
+
36
+ # # Returns true for a palindrome, false otherwise.
37
+ # def palindrome?
38
+ # processed_content == processed_content.reverse
39
+ # end
40
+
41
+ # # Returns the letters of the string (made by myself).
42
+ # # def letters
43
+ # # self.scan(/[a-z*A-Z*]/).join
44
+ # # end
45
+
46
+ # # Longer version A (from Tutorial).
47
+ # # def letters
48
+ # # the_letters = []
49
+ # # for i in 0..(self.length - 1) do
50
+ # # if self[i].match(/[a-zA-Z]/)
51
+ # # the_letters << self[i]
52
+ # # end
53
+ # # end
54
+ # # the_letters.join
55
+ # # end
56
+
57
+ # # Longer version B (made by myself).
58
+ # # def letters
59
+ # # the_letters = []
60
+ # # regex_letters = /[a-z]/i # i for case incensitive
61
+ # # self.each_char do |letter|
62
+ # # if letter.match(regex_letters)
63
+ # # the_letters << letter
64
+ # # end
65
+ # # end
66
+ # # the_letters.join
67
+ # # end
68
+
69
+ # # Shorter version (following tutorial, from myself)
70
+ # # def letters
71
+ # # the_letters = self.chars.select { |char| char.match?(/[a-z]/i) }
72
+ # # the_letters.join
73
+ # # end
74
+
75
+ # # Shorter version (from tutorial)
76
+ # # def letters
77
+ # # chars.select { |char| char.match?(/[a-z]/i) }.join
78
+ # # end
79
+
80
+ # # Finally Hartl end ups with the same code as I.
81
+ # # def letters
82
+ # # self.scan(/[a-z*A-Z*]/).join
83
+ # # end
84
+ # # And he goes further by pasting this in the processed_content and
85
+ # # deleting the letters method !
86
+
87
+ # private
88
+
89
+ # # Returns content for palindrome testing.
90
+ # # FIRST version:
91
+ # # def processed_content
92
+ # # self.letters.downcase
93
+ # # end
94
+
95
+ # # SECOND version, after joining to it the letters method:
96
+ # def processed_content
97
+ # self.scan(/[a-z*A-Z*]/).join.downcase
98
+ # end
99
+ # end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chap8_ex_gem_palindrome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xeniouska
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-23 00:00:00.000000000 Z
11
+ date: 2023-04-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Learn Enough Ruby palindrome detector
14
14
  email: