RpgTools 0.1.0 → 0.2.0

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
  SHA1:
3
- metadata.gz: 8a7843afed9e8fe1def780bd2b2ed4c48a877ee7
4
- data.tar.gz: 831e1fa94274024aa0e7dda4af1d60184a479df6
3
+ metadata.gz: e72bdc2ab301bc360b174d27c1ce2b22ed44b135
4
+ data.tar.gz: 6c3f36a0c7c460733b9e7eb3bb340843032b0e5c
5
5
  SHA512:
6
- metadata.gz: a96c3dfd1fa6b5e367abb58eb4d58f9d3d6801919513cdf15b15ca6237148df35c796452cc909f83cec15a81a993a7e03fb7ceed7f842e57929e5ec61304b0c5
7
- data.tar.gz: f46ea1cb1a86bbe6a4d16c69bf7d176129339b01588c26ef291a35f0a78d8ebc1d95d367292c75a84f71694628c0b349a9970e895b78e39038506be9744a31c9
6
+ metadata.gz: 67c945260be17a4e607431d0dea36add3789aa32a3cf17aa1a6152d9260918d011125df9d000a390a1c1a9304e40ace94cf78313b6d62d48b2ddde4265dcbf20
7
+ data.tar.gz: 4a2b45e6b52ed24102e20b6dc843368a2dcc4d13ce73b8f4c6925e44b0e4acce17473dcf4a6f14fe0c896639543ee41dcd59aa2d923139a3c114124b820c5cc1
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Yohan Piron
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,18 @@
1
+ RpgTools
2
+ =======
3
+
4
+ A gem that gives you tools for your RPGs : dices, coins, cards !
5
+
6
+ # Usage
7
+
8
+ * <tt>RpgTools::Coin.flip</tt> returns a "heads" or "tails" string.
9
+ * <tt>RpgTools::Dice.rool(arg)</tt> returns an array of dices of your choice (arg format : "1d6" or "4D10" for example).
10
+ * <tt>RpgTools::Card.pick</tt> returns a card of a 52 cards deck + 2 jokers.
11
+
12
+ ## Contributing
13
+
14
+ 1. Fork it
15
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
16
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
17
+ 4. Push to the branch (`git push origin my-new-feature`)
18
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,3 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ RSpec::Core::RakeTask.new('spec')
@@ -0,0 +1,17 @@
1
+ module RpgTools
2
+ class Card
3
+ def self.pick
4
+ joker_pick_check == true ? 'Joker' : standard_card
5
+ end
6
+
7
+ def self.joker_pick_check
8
+ [0, 1].include?((0..54).to_a.sample(1).first)
9
+ end
10
+
11
+ def self.standard_card
12
+ number = [(1..10).to_a, 'Jack', 'Queen', 'King'].flatten.sample(1)
13
+ color = ['clubs', 'hearts', 'diamonds', 'spades'].sample(1)
14
+ [number, color].join(' of ')
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ module RpgTools
2
+ class Coin
3
+ class << self
4
+ def flip
5
+ rand(2) == 1 ? 'heads' : 'tails'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,22 @@
1
+ module RpgTools
2
+ class Dice
3
+ class << self
4
+ def roll(arg)
5
+ dices_num = arg.split(/d/i).first.to_i
6
+ max_value = arg.split(/d/i).last.to_i
7
+
8
+ # I mean, seriously ?
9
+ return true if dices_num.zero?
10
+
11
+ # We don't roll d0 and d1 for obvious reasons.
12
+ return true if [0, 1].include?(max_value)
13
+
14
+ [].tap do |dice_set|
15
+ dices_num.times do
16
+ dice_set << rand(1..max_value)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
data/rpg_tools.gemspec ADDED
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = %q{RpgTools}
3
+ s.version = '0.2.0'
4
+ s.author = 'Yohan Piron'
5
+ s.email = 'yinfei84@gmail.com'
6
+ s.date = %q{2014-12-18}
7
+ s.summary = %q{RpgTools is a toolbox for tabletop games and RPGs}
8
+ s.description = 'RpgTools gives you tools for your RPGs : dices, coins, cards...'
9
+ s.homepage = 'https://github.com/Yinfei/rpg_tools.git'
10
+ s.license = 'MIT'
11
+ s.files = `git ls-files`.split("\n")
12
+ s.test_files = s.files.grep(%r{^(spec)/})
13
+ s.require_paths = ['lib']
14
+ s.add_development_dependency 'rake', '~> 3.1'
15
+ s.add_development_dependency 'rspec', '~> 3.0'
16
+ end
data/spec/card_spec.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'rpg_tools'
2
+ require 'spec_helper'
3
+
4
+ describe RpgTools::Card do
5
+ it 'must return a card name' do
6
+ expect(described_class.pick).not_to eq(true)
7
+ expect(described_class.pick).not_to eq(false)
8
+ expect(described_class.pick).not_to eq(nil)
9
+ end
10
+ end
data/spec/coin_spec.rb ADDED
@@ -0,0 +1,8 @@
1
+ require 'rpg_tools'
2
+ require 'spec_helper'
3
+
4
+ describe RpgTools::Coin do
5
+ it "can't return anything else than 'heads' or 'tails'" do
6
+ expect(['heads', 'tails'].include?(described_class.flip)).to eq(true)
7
+ end
8
+ end
data/spec/dice_spec.rb ADDED
@@ -0,0 +1,25 @@
1
+ require 'rpg_tools'
2
+ require 'spec_helper'
3
+
4
+ describe RpgTools::Dice do
5
+ it "doesn't roll a '0d' dice" do
6
+ expect(described_class.roll('0d6')).to eq(true)
7
+ end
8
+
9
+ it "doesn't roll a 'd0' dice" do
10
+ expect(described_class.roll('1d0')).to eq(true)
11
+ end
12
+
13
+ it "doesn't roll a 'd1' dice" do
14
+ expect(described_class.roll('1d1')).to eq(true)
15
+ end
16
+
17
+ it 'returns the right number of dices' do
18
+ expect(described_class.roll('2d6').count).to eq(2)
19
+ end
20
+
21
+ it "rolls a dice may the 'd' char be capitalized or not" do
22
+ expect(described_class.roll('1d6').count).to eq(1)
23
+ expect(described_class.roll('1D6').count).to eq(1)
24
+ end
25
+ end
@@ -0,0 +1,13 @@
1
+ RSpec.configure do |config|
2
+ config.color = true
3
+ config.tty = true
4
+ config.formatter = :documentation
5
+
6
+ config.mock_with :rspec do |c|
7
+ c.syntax = [:should, :expect]
8
+ end
9
+
10
+ config.expect_with :rspec do |c|
11
+ c.syntax = [:should, :expect]
12
+ end
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: RpgTools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yohan Piron
@@ -9,14 +9,53 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2014-12-18 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
13
41
  description: 'RpgTools gives you tools for your RPGs : dices, coins, cards...'
14
42
  email: yinfei84@gmail.com
15
43
  executables: []
16
44
  extensions: []
17
45
  extra_rdoc_files: []
18
46
  files:
47
+ - LICENSE
48
+ - README.md
49
+ - Rakefile
19
50
  - lib/rpg_tools.rb
51
+ - lib/rpg_tools/card.rb
52
+ - lib/rpg_tools/coin.rb
53
+ - lib/rpg_tools/dice.rb
54
+ - rpg_tools.gemspec
55
+ - spec/card_spec.rb
56
+ - spec/coin_spec.rb
57
+ - spec/dice_spec.rb
58
+ - spec/spec_helper.rb
20
59
  homepage: https://github.com/Yinfei/rpg_tools.git
21
60
  licenses:
22
61
  - MIT
@@ -41,4 +80,8 @@ rubygems_version: 2.4.2
41
80
  signing_key:
42
81
  specification_version: 4
43
82
  summary: RpgTools is a toolbox for tabletop games and RPGs
44
- test_files: []
83
+ test_files:
84
+ - spec/card_spec.rb
85
+ - spec/coin_spec.rb
86
+ - spec/dice_spec.rb
87
+ - spec/spec_helper.rb