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 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: