snack_roulette 0.1.2

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 364a97d35c60c0619191b110b4620213bd48eb98
4
+ data.tar.gz: 8572005414f77ee2cf354bf4b488bbd3b056a0f7
5
+ SHA512:
6
+ metadata.gz: 3e85a3be7e34d028ea30d106471a50f47029ac805b01721ca7b4d829c4a547a15aa81f49bba92400877a98bce8a1838ca4bffeaa7ecb044d7a65c2db32c8f723
7
+ data.tar.gz: cd928c0e5ea95510f0ca7e58d0879c2f61812fb1e7017b96bcc5fbcc3978ac8871fddaf1508c16bf103965d082f60a4121e05eaa9fe33554affb2fd6524d960a
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+ require 'snack_roulette'
6
+
7
+ SnackRoulette::Wheel.new.spin!
@@ -0,0 +1,6 @@
1
+ module SnackRoulette
2
+ end
3
+
4
+ require 'snack_roulette/spinner'
5
+ require 'snack_roulette/wheel'
6
+
@@ -0,0 +1,19 @@
1
+ module SnackRoulette
2
+
3
+ class Spinner < Enumerator
4
+ CHARS = %w{ | / - \\ }
5
+
6
+ def initialize
7
+ @count = 0
8
+ end
9
+
10
+ def countup
11
+ @count += 1
12
+ end
13
+
14
+ def next
15
+ "\b#{CHARS[countup % 4]}"
16
+ end
17
+ end
18
+
19
+ end
@@ -0,0 +1,3 @@
1
+ module SnackRoulette
2
+ VERSION = '0.1.2'
3
+ end
@@ -0,0 +1,54 @@
1
+ module SnackRoulette
2
+
3
+ class Wheel
4
+ SHELVES = 4
5
+ PRODUCTS = 20
6
+ LOW_SPIN = 50
7
+ HIGH_SPIN = 250
8
+
9
+ def initialize
10
+ @rnd = Random.new
11
+ end
12
+
13
+ def spin!
14
+ puts header
15
+ result(randomize)
16
+ end
17
+
18
+ def spinner
19
+ spinner = SnackRoulette::Spinner.new
20
+ count = @rnd.rand(LOW_SPIN..HIGH_SPIN)
21
+ (0..count).each do |i|
22
+ print spinner.next
23
+ sleep 0.01
24
+ end
25
+ print "\b"
26
+ end
27
+
28
+ def header
29
+ <<EOF
30
+ Amazing Snack Roulette!
31
+ =======================
32
+
33
+ Spinning the Amazing Snack Roulette wheel of awesome fortune!
34
+
35
+ EOF
36
+ end
37
+
38
+ def result(values)
39
+ values.each do |key, value|
40
+ spinner
41
+ puts " #{key.capitalize}: #{value}"
42
+ end
43
+ end
44
+
45
+ def randomize
46
+ {
47
+ shelf: @rnd.rand(1..SHELVES),
48
+ product: @rnd.rand(1..PRODUCTS)
49
+ }
50
+ end
51
+
52
+ end
53
+
54
+ end
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: snack_roulette
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Olle Johansson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.2'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.4'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.4'
41
+ description: When you want a snack but can't be bothered to choose one yourself.
42
+ email: Olle@Johansson.com
43
+ executables:
44
+ - snack_roulette
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - bin/snack_roulette
49
+ - lib/snack_roulette.rb
50
+ - lib/snack_roulette/spinner.rb
51
+ - lib/snack_roulette/version.rb
52
+ - lib/snack_roulette/wheel.rb
53
+ homepage: https://github.com/ollej/snack_roulette
54
+ licenses:
55
+ - MIT
56
+ metadata: {}
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 2.1.3
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ requirements: []
72
+ rubyforge_project:
73
+ rubygems_version: 2.2.2
74
+ signing_key:
75
+ specification_version: 4
76
+ summary: The amazing snack roulette wheel of awesome fortune!
77
+ test_files: []