heyruby 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/bin/heyruby ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $0 = "heyruby"
4
+ require "heyruby"
5
+ Heyruby::Console.start
6
+
7
+ # vim: ft=ruby
8
+
data/lib/heyruby.rb ADDED
@@ -0,0 +1,6 @@
1
+ require "pry"
2
+ require "heyruby/console"
3
+ require "heyruby/version"
4
+
5
+ module Heyruby
6
+ end
@@ -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
+
@@ -0,0 +1,3 @@
1
+ module Heyruby
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,6 @@
1
+ require "minitest/spec"
2
+ require "minitest/autorun"
3
+ require "heyruby/console"
4
+
5
+ describe Heyruby::Console do
6
+ end
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: