testRubyWorkGem 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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