ro_sham_bo 0.0.2 → 0.1.0

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
  SHA256:
3
- metadata.gz: b6d7272df4c4bb07d3cb42f6f8f8c53cab4df3c90de0845eb114f33324d6776f
4
- data.tar.gz: a2d1afeea2ea0dc7dcc5a59081a2bd1a68d68055b759a06bd37b5ee89654deb8
3
+ metadata.gz: ce77bcab61a9ae0943e2c524ce9db8549f2f655fe0c94b232459af086332416e
4
+ data.tar.gz: '0692f563d97e79eedbf2e52d9d06c5b26cafbe7cb4c8f1472b2325ffe2066f69'
5
5
  SHA512:
6
- metadata.gz: 4a3c15a28d03029167282ce16bb04b57da8507ec7e957dc88c95c5a70dec2fbb69dc9a75d531d722f3a0043e386a82c37907e249fa243a24135aab11afc197d2
7
- data.tar.gz: 48737233a2a9ed372df508dda9b4086d83eebaa9ee2a94ac4d77b3671bc0c1975b502a9c1a8b04e6b4c02fc76eba05f084e8560264c2d0a9c64ee5a7bb30e829
6
+ metadata.gz: d777b31737a483305adc350b97a5fd3983b15f1ba64905c667bbe3862c60ef2f72e458b3cccea258b36e904dccbd956fbecbbe1b3f5720fcdb30e1329a837d7f
7
+ data.tar.gz: 3598e5ce1fbbbea18391fa235994b7e364eeccdd7780465c0f27386baa60e0953e471b605fe6fa608ccf01477fca70254698fb819e7735584541347e283c29b8
@@ -0,0 +1,24 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ test:
11
+
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@v2
16
+ - name: Set up Ruby 2.6
17
+ uses: actions/setup-ruby@v1
18
+ with:
19
+ ruby-version: 2.6.x
20
+ - name: Build and test with Rake
21
+ run: |
22
+ gem install bundler
23
+ bundle install
24
+ bundle exec rake test
data/Gemfile.lock CHANGED
@@ -1,12 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ro_sham_bo (0.0.1)
4
+ ro_sham_bo (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
+ docile (1.3.5)
10
+ power_assert (2.0.0)
9
11
  rake (13.0.3)
12
+ simplecov (0.21.2)
13
+ docile (~> 1.1)
14
+ simplecov-html (~> 0.11)
15
+ simplecov_json_formatter (~> 0.1)
16
+ simplecov-html (0.12.3)
17
+ simplecov_json_formatter (0.1.3)
18
+ test-unit (3.4.1)
19
+ power_assert
10
20
 
11
21
  PLATFORMS
12
22
  x86_64-darwin-20
@@ -14,6 +24,8 @@ PLATFORMS
14
24
  DEPENDENCIES
15
25
  rake (~> 13.0, >= 13.0.1)
16
26
  ro_sham_bo!
27
+ simplecov
28
+ test-unit (~> 3.3, >= 3.3.5)
17
29
 
18
30
  BUNDLED WITH
19
31
  2.2.16
data/README.md CHANGED
@@ -1,4 +1,8 @@
1
1
  # RoShamBo
2
+ [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fevanthegrayt%2Fro_sham_bo%2Fbadge%3Fref%3Dmaster&style=flat)](https://actions-badge.atrox.dev/evanthegrayt/ro_sham_bo/goto?ref=master)
3
+ [![Gem Version](https://badge.fury.io/rb/ro_sham_bo.svg)](https://badge.fury.io/rb/ro_sham_bo)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
2
6
  Simple Rock, Paper, Scissors game for the command-line, implemented in ruby.
3
7
 
4
8
  ## Installation
data/Rakefile CHANGED
@@ -2,16 +2,15 @@
2
2
 
3
3
  require_relative 'lib/ro_sham_bo'
4
4
  require 'bundler/gem_tasks'
5
+ require 'rake/testtask'
5
6
  # require 'rdoc/task'
6
- # require 'rake/testtask'
7
7
 
8
- # TODO: Add tests.
9
- # Rake::TestTask.new do |t|
10
- # t.libs = ['lib']
11
- # t.warning = true
12
- # t.verbose = true
13
- # t.test_files = FileList['test/**/*_test.rb']
14
- # end
8
+ Rake::TestTask.new do |t|
9
+ t.libs = ['lib']
10
+ t.warning = true
11
+ t.verbose = true
12
+ t.test_files = FileList['test/**/*_test.rb']
13
+ end
15
14
 
16
15
  # TODO: Add documentation.
17
16
  # RDoc::Task.new do |rdoc|
@@ -20,4 +19,4 @@ require 'bundler/gem_tasks'
20
19
  # rdoc.rdoc_files.include('README.md', 'lib/**/*.rb')
21
20
  # end
22
21
 
23
- # task default: :test
22
+ task default: :test
data/lib/ro_sham_bo.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require_relative 'ro_sham_bo/version'
2
+
1
3
  class RoShamBo
2
4
  RULES = {
3
5
  rock: {rock: :draw, paper: :lose, scissors: :win}.freeze,
@@ -15,6 +17,12 @@ class RoShamBo
15
17
  attr_reader :winner
16
18
 
17
19
  def initialize(cheater: nil, rounds: 3)
20
+ if rounds.even?
21
+ raise ArgumentError, 'rounds must be odd'
22
+ elsif ![nil, :user, :computer].include?(cheater)
23
+ raise ArgumentError, 'cheater must be :computer or :user'
24
+ end
25
+
18
26
  @cheater = cheater
19
27
  @rounds = rounds
20
28
  @score = {user: 0, computer: 0}
@@ -22,7 +30,7 @@ class RoShamBo
22
30
  end
23
31
 
24
32
  def play(input)
25
- raise 'Game Over!' if over?
33
+ raise RuntimeError, 'Game Over!' if over?
26
34
 
27
35
  @user_choice = sanitized_choice(input)
28
36
  @computer_choice = computer_turn(user_choice)
@@ -62,7 +70,7 @@ class RoShamBo
62
70
  if cheater == :user && about_to_win?(:computer)
63
71
  cheat(input, :win)
64
72
  elsif cheater == :computer && about_to_win?(:user)
65
- cheat(input, :win)
73
+ cheat(input, :lose)
66
74
  else
67
75
  RULES.keys.sample
68
76
  end
@@ -12,11 +12,11 @@ class RoShamBo
12
12
 
13
13
  ##
14
14
  # Minor version.
15
- MINOR = 0
15
+ MINOR = 1
16
16
 
17
17
  ##
18
18
  # Patch version.
19
- PATCH = 2
19
+ PATCH = 0
20
20
 
21
21
  ##
22
22
  # Version as +MAJOR.MINOR.PATCH+
data/ro_sham_bo.gemspec CHANGED
@@ -29,4 +29,6 @@ Gem::Specification.new do |spec|
29
29
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
30
30
  spec.require_paths = ['lib']
31
31
  spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
32
+ spec.add_development_dependency 'test-unit', '~> 3.3', '>= 3.3.5'
33
+ spec.add_development_dependency 'simplecov'
32
34
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ro_sham_bo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Gray
@@ -30,6 +30,40 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 13.0.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: test-unit
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '3.3'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 3.3.5
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '3.3'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 3.3.5
53
+ - !ruby/object:Gem::Dependency
54
+ name: simplecov
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
33
67
  description: Play rock paper scissors from the command line
34
68
  email: evanthegrayt@vivaldi.net
35
69
  executables:
@@ -37,6 +71,7 @@ executables:
37
71
  extensions: []
38
72
  extra_rdoc_files: []
39
73
  files:
74
+ - ".github/workflows/ruby.yml"
40
75
  - ".gitignore"
41
76
  - Gemfile
42
77
  - Gemfile.lock