heyruby 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.
- data/bin/heyruby +8 -0
- data/lib/heyruby.rb +6 -0
- data/lib/heyruby/console.rb +51 -0
- data/lib/heyruby/version.rb +3 -0
- data/spec/console_spec.rb +6 -0
- metadata +132 -0
data/bin/heyruby
ADDED
data/lib/heyruby.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "pry"
|
3
|
+
|
4
|
+
module Heyruby
|
5
|
+
class Console
|
6
|
+
def initialize
|
7
|
+
Pry.config.should_load_rc = false
|
8
|
+
Pry.config.prompt = [method(:normal_prompt), method(:wait_prompt)]
|
9
|
+
Pry.hooks.add_hook :after_read, :prompt_for_hypothesis do |line, pry|
|
10
|
+
prompt_for_hypothesis line, pry
|
11
|
+
end
|
12
|
+
@pry = Pry
|
13
|
+
end
|
14
|
+
|
15
|
+
def normal_prompt obj, nest_level, pry
|
16
|
+
if @hypothesis
|
17
|
+
@hypothesis = nil
|
18
|
+
"Were you right?\nTry somthing else> "
|
19
|
+
else
|
20
|
+
"Hey Ruby‽> "
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def wait_prompt obj, nest_level, pry
|
25
|
+
"Hey Ruby‽* "
|
26
|
+
end
|
27
|
+
|
28
|
+
def prompt_for_hypothesis line, pry
|
29
|
+
print %Q<What do you think the result of
|
30
|
+
```
|
31
|
+
#{CodeRay.scan(line, :ruby).term}
|
32
|
+
```
|
33
|
+
will be? (Type . on a line by itself when done)
|
34
|
+
| >
|
35
|
+
@hypothesis = []
|
36
|
+
while (str = readline.chomp!) != "."
|
37
|
+
print "| "
|
38
|
+
@hypothesis << str
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def start
|
43
|
+
@pry.start
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.start
|
47
|
+
new.start
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
metadata
ADDED
@@ -0,0 +1,132 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: heyruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Steven! Ragnarök
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-04-12 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: &19580740 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.9.2
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *19580740
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: minitest
|
27
|
+
requirement: &19580040 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *19580040
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: mustache
|
38
|
+
requirement: &19579360 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *19579360
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bundler
|
49
|
+
requirement: &19578640 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *19578640
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: aruba
|
60
|
+
requirement: &19578020 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *19578020
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: &19577420 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *19577420
|
80
|
+
description: ! 'Hey Ruby‽ Good programmers are like scientists. When they want to
|
81
|
+
answer a
|
82
|
+
|
83
|
+
question They form a hypothesis, then verify it with an experiment. Rubyists
|
84
|
+
|
85
|
+
have the experimentation phase down, but we tend not to hypothesize fully.
|
86
|
+
|
87
|
+
This gem helps people new to Ruby by prompting them for a hypothesis before
|
88
|
+
|
89
|
+
returning the result of their experiment.
|
90
|
+
|
91
|
+
'
|
92
|
+
email:
|
93
|
+
- steven@nuclearsandwich.com
|
94
|
+
executables:
|
95
|
+
- heyruby
|
96
|
+
extensions: []
|
97
|
+
extra_rdoc_files: []
|
98
|
+
files:
|
99
|
+
- lib/heyruby/console.rb
|
100
|
+
- lib/heyruby/version.rb
|
101
|
+
- lib/heyruby.rb
|
102
|
+
- spec/console_spec.rb
|
103
|
+
- !binary |-
|
104
|
+
YmluL2hleXJ1Ynk=
|
105
|
+
homepage: https://nuclearsandwich.com/pheromone
|
106
|
+
licenses:
|
107
|
+
- Apache-2.0
|
108
|
+
post_install_message:
|
109
|
+
rdoc_options: []
|
110
|
+
require_paths:
|
111
|
+
- lib
|
112
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ! '>='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
requirements: []
|
125
|
+
rubyforge_project:
|
126
|
+
rubygems_version: 1.8.17
|
127
|
+
signing_key:
|
128
|
+
specification_version: 3
|
129
|
+
summary: Encourage scientific hypothesizing and experimentation in IRB
|
130
|
+
test_files:
|
131
|
+
- spec/console_spec.rb
|
132
|
+
has_rdoc:
|