testRubyWorkGem 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: db34a0b45836358cd7ab386a772e465afa271726a3a651a216923321f1297e15
4
+ data.tar.gz: fbab957956a846a03e765722a23a963fc5322835fb2981fbbe0e29c7eb181503
5
+ SHA512:
6
+ metadata.gz: bab7eebf661f3dd540767269bc9306d813cdeb165adc1f3ae13f384ab0ee1a409e31f7b29433b78f0944944d761df37a5256a4624de500e90884dc7221d8970c
7
+ data.tar.gz: 455603ecd3a12b3ad1c2ec48dbadb29d21b340eb846f050edaf6a341e973d31a2a6046867be2ed3336d8ffda14a7896d28033600bbe5f5c9a3253ce2b340da74
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'testRubyWorkGem'
4
+
5
+ puts ARGV[0].valid_brackets?
6
+ puts ARGV[1].palindrome?
@@ -0,0 +1,53 @@
1
+ class String
2
+
3
+ def palindrome?
4
+ str = self.dup
5
+ str.gsub!(/\W/, '')
6
+ str.downcase!
7
+ correct = true
8
+ len = str.length - 1
9
+ str.split(//).each do |i|
10
+ if !correct
11
+ break
12
+ end
13
+ if str[i] == str[len]
14
+ len -= 1
15
+ else
16
+ correct = false
17
+ break
18
+ end
19
+ end
20
+ correct
21
+ end
22
+
23
+ def check_len(str)
24
+ str.length == 0
25
+ end
26
+
27
+ def valid_brackets?
28
+ stack = []
29
+ self.split(//).each do |i|
30
+ if i == '('
31
+ stack.append(i)
32
+ else
33
+ if i == ')' && !check_len(stack)
34
+ stack.pop()
35
+ elsif i == ')' && check_len(stack)
36
+ stack.append(i)
37
+ break
38
+ end
39
+ end
40
+ end
41
+ check_len(stack)
42
+ end
43
+
44
+ end
45
+
46
+ #puts("Checking brackets...")
47
+ #puts("()(()())".valid_brackets?) #=>true
48
+ #puts(")())".valid_brackets?) #=>false
49
+ #puts("qwerty()".valid_brackets?) #=>true
50
+ #puts("Checking palindrome...")
51
+ #puts("taco cat".palindrome?) #=>true
52
+ #puts("A man, a plan, a canal, Panama!".palindrome?) #=>true
53
+ #puts("abcdcba".palindrome?) #=>true
@@ -0,0 +1,27 @@
1
+ require "./lib/testRubyWorkGem.rb"
2
+ require 'rspec'
3
+
4
+ describe '.string' do
5
+ describe '#valid_brackets?' do
6
+ context 'when valid' do
7
+ it { expect('()(()())'.valid_brackets?).to eq(true) }
8
+ end
9
+ context 'when valid' do
10
+ it { expect('qwerty()'.valid_brackets?).to eq(true) }
11
+ end
12
+ context 'when not valid' do
13
+ it { expect(')())'.valid_brackets?).to eq(false) }
14
+ end
15
+ end
16
+ describe '#palindrome?' do
17
+ context 'when valid' do
18
+ it { expect("taco cat".palindrome?).to eq(true) }
19
+ end
20
+ context 'when valid' do
21
+ it { expect("A man, a plan, a canal, Panama!".palindrome?).to eq(true) }
22
+ end
23
+ context 'when valid' do
24
+ it { expect("abcdcba".palindrome?).to eq(true) }
25
+ end
26
+ end
27
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: testRubyWorkGem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dima-A
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-12-03 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: This gem only for testing and nothing else
14
+ email:
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - bin/testRubyWorkGem
20
+ - lib/testRubyWorkGem.rb
21
+ - spec/testRubyWorkGem_spec.rb
22
+ homepage: http://github.com/Dima-A/RubyWork
23
+ licenses: []
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubygems_version: 3.0.3
41
+ signing_key:
42
+ specification_version: 3
43
+ summary: testRubyWorkGem!
44
+ test_files:
45
+ - spec/testRubyWorkGem_spec.rb