hazard 1.0.3 → 1.0.4

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: d28f43d4e9f1a73abe89da77c643f3c9a1cb14f6
4
- data.tar.gz: af78c25a0727d93da1215ce37e64432d1b7f219d
3
+ metadata.gz: d73a6ac407a313337a1309b8f85680c2acdf9a36
4
+ data.tar.gz: f26d0073ed98e7d10483815e6b16f6456e582142
5
5
  SHA512:
6
- metadata.gz: 7179aae07893c8d84ee89f4f0804bd3f0e8d997a84454b43fccf043016371f19b341a1cabd3d595664352e87be43e31c85c19e9d259a6ad915fd39397e4a6235
7
- data.tar.gz: 42719dfc8336d02060838ece2fbf064e7d7d01361acd00f468bc9c10f0a1dc28ddf1d2de983e4d496c1f051c734156ace8e7052be2b8873320c9acda6b1f00e9
6
+ metadata.gz: 9b6aa19cf68606574fca81bbb5c3242fbabc44833806078de8a883de43fba72c16df8a10f42b163a0c18e829d70d873bb3e3450634cf30115c08254e43fe4fa4
7
+ data.tar.gz: 4decd66c91587ad5a1eba94d94d575432c874589801fd9a087e7ba88c50930e6feb1ca1d11a8dfe8d40bdf7cbb221393d0dcc531b6785febcb02f915bbbcd960
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.4.2
data/.travis.yml CHANGED
@@ -1,5 +1,27 @@
1
- sudo: false
1
+ #sudo: false
2
+
3
+ #before_install: gem install bundler -v 1.13.6
4
+
5
+ env:
6
+ global:
7
+ - CC_TEST_REPORTER_ID=909815ccc68b9e9eea2388daa1b7d8edfa32a4dc013c367ea2ca3442d1742964
8
+
2
9
  language: ruby
3
10
  rvm:
4
- - 2.0.0
5
- before_install: gem install bundler -v 1.13.6
11
+ - 2.5
12
+ - 2.4
13
+ - 2.3
14
+ - 2.2
15
+ - 2.1
16
+ - 2.0
17
+
18
+ before_script:
19
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
20
+ - chmod +x ./cc-test-reporter
21
+ - ./cc-test-reporter before-build
22
+
23
+ script:
24
+ - bundle exec rake
25
+
26
+ after_script:
27
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
data/README.md CHANGED
@@ -39,10 +39,10 @@ Examples :
39
39
  >> Hazard.d6
40
40
  => 2
41
41
 
42
- Hazard.d8
42
+ >> Hazard.d8
43
43
  => 4
44
44
 
45
- Hazard.d42
45
+ >> Hazard.d42
46
46
  => 38
47
47
 
48
48
 
@@ -50,19 +50,29 @@ Examples :
50
50
 
51
51
  >> Hazard.r<m>d<n> # where m and n are numbers
52
52
  => Roll m n-sided dice and return the sum
53
+
54
+ # You can also use
55
+ >> Hazard.m<m>d<n> # where m and n are numbers
56
+ >> Hazard.d<m>d<n> # where m and n are numbers
53
57
 
54
58
  Examples :
55
59
 
56
- Hazard.r2d6
57
- => 4
60
+ >> Hazard.r2d6
61
+ => 4
58
62
 
59
- Hazard.r4d8
60
- => 12
63
+ >> Hazard.r4d8
64
+ => 12
61
65
 
62
- Hazard.r48d42
63
- => 356
64
-
65
-
66
+ >> Hazard.r48d42
67
+ => 356
68
+
69
+ >> Hazard.m2d6
70
+ => 6
71
+
72
+ >> Hazard.d2d6
73
+ => 8
74
+
75
+
66
76
  **Roll dice and get the details**
67
77
 
68
78
  >> Hazard.s<m>d<n> # where m and n are numbers
@@ -96,32 +106,21 @@ Examples :
96
106
 
97
107
  # You may want to roll 2 d20 dice with advantage (take the greatest)
98
108
  # This will rolls 2 d20, get the rolls and get the best of them
99
-
100
109
  >> Hazard.s2d20.rolls.max
101
110
  => 19
102
111
 
103
112
  # Obviously a disadvantage is
104
-
105
113
  >> Hazard.s2d20.rolls.min
106
114
  => 13
107
115
 
108
116
  # Maybe you want to roll with an advantage and make the check (because you are as lazy as me)
109
-
110
117
  >> Hazard.s2d20.rolls.max > 12
111
118
  => true or false
112
119
 
113
120
  # Should you have the Elemental Adept feat, which mean that you treat all 1 as 2
114
121
  # If you cast a fireball, this will do the trick :
115
-
116
- >> Hazard.s6d6.rolls.map{ |d| d == 1 ? 2 : d }.reduce(:+)
117
- => 13
118
-
119
-
120
- ## Development
121
-
122
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
123
-
124
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
122
+ >> Hazard.s8d6.rolls.map{ |d| d == 1 ? 2 : d }.reduce(:+)
123
+ => 24
125
124
 
126
125
  ## Contributing
127
126
 
@@ -1,3 +1,3 @@
1
1
  class Hazard
2
- VERSION = '1.0.3'
2
+ VERSION = '1.0.4'
3
3
  end
data/lib/hazard.rb CHANGED
@@ -7,34 +7,31 @@ class Hazard
7
7
  # Transform the method_name to string
8
8
  method_name = method_name.to_s
9
9
 
10
- # If first character is 's'
11
- if method_name[0] == 's'
12
- method_name = method_name[1..-1]
13
- # Then we will return a splitted result
14
- splitted_result = true
15
- end
16
-
17
10
  # Parse the method name to get how many dice and what size of dice was required
18
- dice_match = method_name.to_s.match( /(\d*)d(\d+)/ )
11
+ dice_match = method_name.to_s.match( /(d|r|m|s)?(\d*)d(\d+)/ )
19
12
  # Raise an error if match fail
20
13
  raise "Method mising : #{method_name}" unless dice_match
21
14
 
15
+ # Get the roll type
16
+ roll_type = dice_match[1]
17
+ splited_result = true if roll_type == 's'
18
+
22
19
  # Get the dice amount
23
- dice_amount = dice_match[1].to_i
20
+ dice_amount = dice_match[2].to_i
24
21
  # If no amount is given then the amount is 1
25
22
  dice_amount = 1 if dice_amount == 0
26
23
  # Get the type of dice
27
- dice_type = dice_match[2].to_i
24
+ dice_type = dice_match[3].to_i
28
25
 
29
26
  # Rolls the dice
30
- rolls = (1..dice_amount).map{ Kernel.rand( 1..dice_type ) }
27
+ rolls = ( 1..dice_amount ).map{ Kernel.rand( 1..dice_type ) }
31
28
 
32
29
  # Unless splitted_result was requested, return the sum of the rolled dice
33
- return rolls.reduce(:+) unless splitted_result
30
+ return rolls.reduce(:+) unless splited_result
34
31
 
35
32
  # Return a RolledDice otherwise
36
- RolledDice.new(rolls )
33
+ RolledDice.new( rolls )
37
34
 
38
35
  end
39
36
 
40
- end
37
+ end
data/test/hazard_test.rb CHANGED
@@ -10,6 +10,9 @@ class HazardTest < Minitest::Test
10
10
 
11
11
  assert_equal 12, Hazard.r2d6
12
12
  assert_equal 12, Hazard._2d6
13
+ assert_equal 12, Hazard.m2d6
14
+ assert_equal 12, Hazard.d2d6
15
+ assert_equal 18, Hazard.d3d6
13
16
 
14
17
  assert_equal RolledDice.new([6, 6 ] ), Hazard.s2d6
15
18
 
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hazard
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cédric ZUGER
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-19 00:00:00.000000000 Z
11
+ date: 2018-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.13'
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
26
  version: '1.13'
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
33
  version: '10.0'
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
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '5.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
54
  version: '5.0'
55
55
  description: A very simple dice library for ruby
@@ -59,8 +59,9 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - .gitignore
63
- - .travis.yml
62
+ - ".gitignore"
63
+ - ".ruby-version"
64
+ - ".travis.yml"
64
65
  - CODE_OF_CONDUCT.md
65
66
  - Gemfile
66
67
  - LICENSE.txt
@@ -82,17 +83,17 @@ require_paths:
82
83
  - lib
83
84
  required_ruby_version: !ruby/object:Gem::Requirement
84
85
  requirements:
85
- - - '>='
86
+ - - ">="
86
87
  - !ruby/object:Gem::Version
87
88
  version: '0'
88
89
  required_rubygems_version: !ruby/object:Gem::Requirement
89
90
  requirements:
90
- - - '>='
91
+ - - ">="
91
92
  - !ruby/object:Gem::Version
92
93
  version: '0'
93
94
  requirements: []
94
95
  rubyforge_project:
95
- rubygems_version: 2.4.8
96
+ rubygems_version: 2.6.13
96
97
  signing_key:
97
98
  specification_version: 4
98
99
  summary: Dice library for ruby