computering 0.1.1 → 0.2.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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -1
- data/README.md +1 -1
- data/computering.gemspec +5 -4
- data/example/middleware.rb +72 -0
- data/lib/computering.rb +1 -0
- data/lib/computering/cmd.rb +10 -3
- data/lib/computering/config.rb +13 -13
- data/lib/computering/dsl.rb +8 -4
- data/lib/computering/dsl/code.rb +19 -0
- data/lib/computering/dsl/headline.rb +4 -0
- data/lib/computering/dsl/text.rb +4 -4
- data/lib/computering/version.rb +1 -1
- data/test/config_test.rb +3 -3
- data/test/dsl/text_test.rb +1 -1
- metadata +41 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d13edc9482c52c1b00141f73e6ace9b3110de791
|
4
|
+
data.tar.gz: cc408c711fdeafb68511ce4d81ae9d608439f5d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b56fde80f029c0ebf9947c9289076c62e8f0c90da539ab9e26c1b47ae7480ea42e547705cdb806dcb53902e2746c03cb43f8176b7bd92e6b3ee65f9bfc08ed2
|
7
|
+
data.tar.gz: 951a7b2a5d3db91b742babb63148a43f60cbb3c13c1f137a2149c919599c2628622413cb647ed17389249426f4272400f3d48ece8cd085370177a03798492011
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
data/computering.gemspec
CHANGED
@@ -17,10 +17,11 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_dependency "rainbow", "
|
21
|
-
spec.add_dependency "sorcerer"
|
22
|
-
spec.add_dependency "minitest"
|
20
|
+
spec.add_dependency "rainbow", "~> 2.0"
|
21
|
+
spec.add_dependency "sorcerer", "~> 1.0"
|
22
|
+
spec.add_dependency "minitest", "~> 5.2"
|
23
|
+
spec.add_dependency "rouge", "~> 1.3"
|
23
24
|
|
24
25
|
spec.add_development_dependency "bundler", "~> 1.3"
|
25
|
-
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "rake", "~> 10.1"
|
26
27
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
headline 'Rails Middlewares for Fun (and Profit?)'
|
2
|
+
link 'Señor Developer Bacon', 'http://bit.ly/1maTrIt'
|
3
|
+
|
4
|
+
paragraph 'what can we do with a middleware?'
|
5
|
+
|
6
|
+
list [
|
7
|
+
"implement cross-cutting concerns (authorization, caching)",
|
8
|
+
"enrich request information (session-cookies)",
|
9
|
+
"modify the response (inject javascript)",
|
10
|
+
]
|
11
|
+
|
12
|
+
link 'rails is rack based', 'http://rack.github.io/'
|
13
|
+
|
14
|
+
code(%Q[
|
15
|
+
class HelloWorld
|
16
|
+
def call(env)
|
17
|
+
[200, {"Content-Type" => "text/plain"}, ["Hello world!"]]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# even simpler
|
22
|
+
proc {|env| [200, {"Content-Type" => "text/plain"}, ["Hello world!"]] }
|
23
|
+
])
|
24
|
+
|
25
|
+
headline 'Website Example'
|
26
|
+
|
27
|
+
command 'cd ~/o/ && git co 2c9846ce'
|
28
|
+
link 'veggie.onruby', 'http://hamburg.onruby.dev:5000/'
|
29
|
+
|
30
|
+
paragraph "let's write some code"
|
31
|
+
|
32
|
+
code(%Q[
|
33
|
+
# app/middlewares/bacon_infused.rb
|
34
|
+
class BaconInfused
|
35
|
+
def initialize(app)
|
36
|
+
@app = app
|
37
|
+
end
|
38
|
+
|
39
|
+
def call(env)
|
40
|
+
s, h, r = @app.call(env)
|
41
|
+
if r.content_type == 'text/html'
|
42
|
+
r.body = r.body.
|
43
|
+
gsub(/ruby|rails/i, 'BACON').
|
44
|
+
gsub(/src=('|")([^'|"]+).(png|jpg|jpeg|gif).*('|")/,
|
45
|
+
'src="http://bit.ly/1maTrIt"')
|
46
|
+
end
|
47
|
+
[s, h, r]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# config/application.rb
|
52
|
+
config.middleware.use "BaconInfused"
|
53
|
+
])
|
54
|
+
|
55
|
+
command 'cd ~/o/ && git co ba41abd30'
|
56
|
+
command 'cd ~/o/ && bundle exec rake middleware'
|
57
|
+
link 'bacon.onruby', 'http://hamburg.onruby.dev:5000/'
|
58
|
+
|
59
|
+
headline "Downsides"
|
60
|
+
list [
|
61
|
+
"out of sight",
|
62
|
+
"fragile",
|
63
|
+
"no live code reloading",
|
64
|
+
]
|
65
|
+
|
66
|
+
link "WHY U NO CMD+R?", 'http://stackoverflow.com/questions/20874222/reloading-rails-middleware-without-restarting-the-server-in-development/21323432'
|
67
|
+
|
68
|
+
link 'zazicki', 'http://bit.ly/Mqmwzz'
|
69
|
+
|
70
|
+
link 'github.com/phoet/zazicki', 'http://github.com/phoet/zazicki'
|
71
|
+
|
72
|
+
command 'cowsay KTHXBYE'
|
data/lib/computering.rb
CHANGED
@@ -9,6 +9,7 @@ require "computering/dsl/list"
|
|
9
9
|
require "computering/dsl/link"
|
10
10
|
require "computering/dsl/command"
|
11
11
|
require "computering/dsl/spec"
|
12
|
+
require "computering/dsl/code"
|
12
13
|
require "computering/code_parser"
|
13
14
|
require "computering/container"
|
14
15
|
require "computering/cmd"
|
data/lib/computering/cmd.rb
CHANGED
@@ -23,16 +23,23 @@ module Computering
|
|
23
23
|
def readchars(item)
|
24
24
|
i = 0
|
25
25
|
@stdin.noecho do |io|
|
26
|
+
@stdout.write item.padding if item.padding
|
26
27
|
while char = io.getch
|
27
28
|
raise Exit if char.ord == CONTROL_C
|
28
29
|
if char.ord == ENTER
|
29
30
|
@stdout.puts item[i..-1]
|
30
31
|
item.execute
|
31
|
-
@stdout.puts item.buffer
|
32
|
-
@stdout.puts
|
32
|
+
@stdout.puts "#{item.padding}#{item.buffer}" if item.buffer
|
33
|
+
@stdout.puts
|
33
34
|
break
|
34
35
|
else
|
35
|
-
|
36
|
+
if item[i]
|
37
|
+
while item[i] =~ /\s/
|
38
|
+
@stdout.write item[i]
|
39
|
+
i += 1
|
40
|
+
end
|
41
|
+
@stdout.write item[i]
|
42
|
+
end
|
36
43
|
i += 1
|
37
44
|
end
|
38
45
|
end
|
data/lib/computering/config.rb
CHANGED
@@ -7,27 +7,27 @@ module Computering
|
|
7
7
|
},
|
8
8
|
list: {
|
9
9
|
text: "-",
|
10
|
-
bullet: "-".color(:green),
|
10
|
+
bullet: Rainbow("-").color(:green),
|
11
11
|
},
|
12
12
|
headline: {
|
13
|
-
text: "-".background(:red),
|
14
|
-
buffer: "-".background(:red),
|
13
|
+
text: Rainbow("-").background(:red),
|
14
|
+
buffer: Rainbow("-").background(:red),
|
15
15
|
},
|
16
16
|
link: {
|
17
|
-
text: "-".color(:black).background(:cyan),
|
18
|
-
cursor: "-".color(:green),
|
19
|
-
error: "-".background(:red),
|
17
|
+
text: Rainbow("-").color(:black).background(:cyan),
|
18
|
+
cursor: Rainbow("-").color(:green),
|
19
|
+
error: Rainbow("-").background(:red),
|
20
20
|
},
|
21
21
|
command: {
|
22
|
-
text: "-".color(:black).background(:cyan),
|
23
|
-
cursor: "-".color(:green),
|
24
|
-
buffer: "-".bright,
|
25
|
-
error: "-".color(:red),
|
22
|
+
text: Rainbow("-").color(:black).background(:cyan),
|
23
|
+
cursor: Rainbow("-").color(:green),
|
24
|
+
buffer: Rainbow("-").bright,
|
25
|
+
error: Rainbow("-").color(:red),
|
26
26
|
},
|
27
27
|
spec: {
|
28
|
-
text: "-".foreground(:green),
|
29
|
-
buffer: "-".bright,
|
30
|
-
error: "-".color(:red),
|
28
|
+
text: Rainbow("-").foreground(:green),
|
29
|
+
buffer: Rainbow("-").bright,
|
30
|
+
error: Rainbow("-").color(:red),
|
31
31
|
},
|
32
32
|
}
|
33
33
|
@style = @style_defaults.dup
|
data/lib/computering/dsl.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
module Computering
|
2
2
|
module Dsl
|
3
|
-
def spec(name, &block)
|
4
|
-
self.items += Spec.from_block(name, block_source(name), &block)
|
5
|
-
end
|
6
|
-
|
7
3
|
def configure(&block)
|
8
4
|
Config.instance_eval(&block)
|
9
5
|
end
|
10
6
|
|
7
|
+
def spec(name, &block)
|
8
|
+
self.items += Spec.from_block(name, block_source(name), &block)
|
9
|
+
end
|
10
|
+
|
11
11
|
def list(*text)
|
12
12
|
self.items += List.from_text(text)
|
13
13
|
end
|
@@ -20,6 +20,10 @@ module Computering
|
|
20
20
|
self.items += Text.from_text(text)
|
21
21
|
end
|
22
22
|
|
23
|
+
def code(*text)
|
24
|
+
self.items += Code.from_text(text)
|
25
|
+
end
|
26
|
+
|
23
27
|
def command(*text)
|
24
28
|
self.items += Command.from_text(text)
|
25
29
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rouge'
|
2
|
+
|
3
|
+
module Computering::Dsl
|
4
|
+
class Code < Text
|
5
|
+
def self.from_text(*text)
|
6
|
+
text.flatten.map { |line| self.new(line) }
|
7
|
+
end
|
8
|
+
|
9
|
+
def padding
|
10
|
+
nil
|
11
|
+
end
|
12
|
+
|
13
|
+
protected
|
14
|
+
|
15
|
+
def text_with_style(text, index)
|
16
|
+
Rouge.highlight(text, 'ruby', 'terminal256')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/computering/dsl/text.rb
CHANGED
data/lib/computering/version.rb
CHANGED
data/test/config_test.rb
CHANGED
@@ -13,12 +13,12 @@ module Computering
|
|
13
13
|
|
14
14
|
it "applies styles to text" do
|
15
15
|
assert_equal "-", Config.style_defaults(:text, :text)
|
16
|
-
assert_equal "-".color(:green), Config.style_defaults(:command, :cursor)
|
16
|
+
assert_equal Rainbow("-").color(:green), Config.style_defaults(:command, :cursor)
|
17
17
|
end
|
18
18
|
|
19
19
|
it "can override styles" do
|
20
|
-
Config.style = {command: {cursor: "-".color(:blue)}}
|
21
|
-
assert_equal "-".color(:blue), Config.style_defaults(:command, :cursor)
|
20
|
+
Config.style = {command: {cursor: Rainbow("-").color(:blue)}}
|
21
|
+
assert_equal Rainbow("-").color(:blue), Config.style_defaults(:command, :cursor)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
data/test/dsl/text_test.rb
CHANGED
metadata
CHANGED
@@ -1,85 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: computering
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Schröder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rainbow
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sorcerer
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '1.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '1.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '5.2'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rouge
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
53
60
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
61
|
+
version: '1.3'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.3'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- - ~>
|
73
|
+
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
75
|
version: '1.3'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- - ~>
|
80
|
+
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '1.3'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rake
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- -
|
87
|
+
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
89
|
+
version: '10.1'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- -
|
94
|
+
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
96
|
+
version: '10.1'
|
83
97
|
description: pretends you could type really fast
|
84
98
|
email:
|
85
99
|
- phoetmail@googlemail.com
|
@@ -88,13 +102,14 @@ executables:
|
|
88
102
|
extensions: []
|
89
103
|
extra_rdoc_files: []
|
90
104
|
files:
|
91
|
-
- .gitignore
|
92
|
-
- .travis.yml
|
105
|
+
- ".gitignore"
|
106
|
+
- ".travis.yml"
|
93
107
|
- Gemfile
|
94
108
|
- README.md
|
95
109
|
- Rakefile
|
96
110
|
- bin/computering
|
97
111
|
- computering.gemspec
|
112
|
+
- example/middleware.rb
|
98
113
|
- example/preso.rb
|
99
114
|
- example/socoded.rb
|
100
115
|
- lib/computering.rb
|
@@ -103,6 +118,7 @@ files:
|
|
103
118
|
- lib/computering/config.rb
|
104
119
|
- lib/computering/container.rb
|
105
120
|
- lib/computering/dsl.rb
|
121
|
+
- lib/computering/dsl/code.rb
|
106
122
|
- lib/computering/dsl/command.rb
|
107
123
|
- lib/computering/dsl/headline.rb
|
108
124
|
- lib/computering/dsl/link.rb
|
@@ -123,17 +139,17 @@ require_paths:
|
|
123
139
|
- lib
|
124
140
|
required_ruby_version: !ruby/object:Gem::Requirement
|
125
141
|
requirements:
|
126
|
-
- -
|
142
|
+
- - ">="
|
127
143
|
- !ruby/object:Gem::Version
|
128
144
|
version: '0'
|
129
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
130
146
|
requirements:
|
131
|
-
- -
|
147
|
+
- - ">="
|
132
148
|
- !ruby/object:Gem::Version
|
133
149
|
version: '0'
|
134
150
|
requirements: []
|
135
151
|
rubyforge_project:
|
136
|
-
rubygems_version: 2.
|
152
|
+
rubygems_version: 2.2.0
|
137
153
|
signing_key:
|
138
154
|
specification_version: 4
|
139
155
|
summary: pretends you could type really fast
|