printrun 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YjM3YjI5MTVhZGI1ZGI1NjMyMzQ0OTJkNjkyMmE0Y2VmMzExNTQ0MQ==
5
+ data.tar.gz: !binary |-
6
+ ZDE0NGQ4ZDk3NzBlZmQwZTcxZjU2ZWUzZDU2ODVmZWQwNDgyZDI4Yw==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ YWQxYjFjZDdiNjQ3MDI1ZjYyNmI4NzY3ZDQ3MGJlMGFlMzgwZTBiZjczM2Ew
10
+ ZWM4Y2JmNDRkZTk5OWEwYzZkZTM4NDU1M2U4ZmM0MzVkMzIyMTFlNWE0YmZi
11
+ YzM5MjJhYjdhYzIzNmNmODAyZWE0ZDI0MzM1YjcyZTc1ODIyNGI=
12
+ data.tar.gz: !binary |-
13
+ ZjA3OTQ3YjNiZWYyMzZkMjM2NTljNzY2ODU1YTRlNzhhOGVmNDE1ZTMyNDcz
14
+ YTU4ODA2NTMxYjc4MWZmNDI5M2VjNGYwYTQyM2E0YWQ1MjFlYTIzNGVmMGY2
15
+ OWE5NzFmNGFiZTlhNTlhZjM2MmFlOWVhOWVhMzdiZjQwNjk3NTM=
data/README.md ADDED
@@ -0,0 +1,4 @@
1
+ printrun
2
+ ========
3
+
4
+ quick dirty gem to print and run ruby code
@@ -0,0 +1,25 @@
1
+ require 'ripper'
2
+ require 'sourcify'
3
+
4
+ module Printrun
5
+ module Core
6
+
7
+ def lines(source)
8
+ Enumerator.new do |out|
9
+ source.split("\n")[1..-2].reduce("") do |buffer, line|
10
+ buffer << "\n#{line}"
11
+ Ripper.sexp_raw(buffer) ? (out << buffer) && "" : buffer
12
+ end
13
+ end
14
+ end
15
+
16
+ # @param [Binding] world Binding to use for evaluation of statements
17
+ # @param [Proc] line2ansp Proc that takes the line to process as parameter and returns
18
+ # a Proc taking the result of previous line's evaluation as parameter
19
+ # @yield [block] Block of code to process (line-eval~~~).
20
+ def line_eval(world, line2ansp, &block)
21
+ lines(block.to_source).each { |line| line2ansp[line][eval(line, world)] }
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,3 @@
1
+ module Printrun
2
+ VERSION = "0.0.0"
3
+ end # module Printrun
data/lib/printrun.rb ADDED
@@ -0,0 +1,22 @@
1
+ require 'printrun/core'
2
+
3
+ module Printrun
4
+ include Core
5
+ extend self
6
+
7
+ # careful of the bug of sourcify with double quotes (if still there at time of reading)...
8
+ # @example
9
+ # Printrun.on do
10
+ # a = 3
11
+ # puts a
12
+ # end
13
+ def on(world = proc { binding }[], &block)
14
+ i = 0
15
+ line_eval(world,
16
+ proc { |line|
17
+ puts "#{i += 1} >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#{line}\n --- "
18
+ proc { |ans| puts "#{ans}\ndone!" }
19
+ }, &block)
20
+ end
21
+ end
22
+
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: printrun
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Johan Gall
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sourcify
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Quick and dirty print and run of ruby code because I was tired of copying
28
+ my gist
29
+ email: johan.gall+github_printrun@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/printrun/core.rb
35
+ - lib/printrun/version.rb
36
+ - lib/printrun.rb
37
+ - README.md
38
+ homepage: https://github.com/freakhill/printrun
39
+ licenses: []
40
+ metadata: {}
41
+ post_install_message:
42
+ rdoc_options: []
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: 1.9.1
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.3.6
55
+ requirements: []
56
+ rubyforge_project:
57
+ rubygems_version: 2.0.3
58
+ signing_key:
59
+ specification_version: 4
60
+ summary: Print and execute ruby code
61
+ test_files: []
62
+ has_rdoc: