crystal-repl 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 71fdaa961aa1dec52b5c7b271351ce547869c0f3
4
+ data.tar.gz: 81639e27c994c1a99639d7b325e93f46d0405c09
5
+ SHA512:
6
+ metadata.gz: 34bc222a2dbf3f9ebf2b07479bcbba64ebbfc65df81528017cfeff7f175e55303b80d516a344fe304b2a7c0a522f09c02118dd76b2eaac2e9e4a0ffd8e41a200
7
+ data.tar.gz: dbfdac99eda912d7b23cf678ff332c41c4f748f4cb6a93fe4f473868e69768a3eed125e4a731e63c7b633d3c8065342b1fa6b4f53beabd6e6f67b606a6bd2a80
data/.gitignore ADDED
@@ -0,0 +1,80 @@
1
+ #----------------------------------------------------------------------------
2
+ # Ignore these files when commiting to a git repository.
3
+ #
4
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
5
+ #
6
+ # The original version of this file is found here:
7
+ # https://github.com/RailsApps/rails-composer/blob/master/files/gitignore.txt
8
+ #
9
+ # Corrections? Improvements? Create a GitHub issue:
10
+ # http://github.com/RailsApps/rails-composer/issues
11
+ #----------------------------------------------------------------------------
12
+
13
+ # bundler state
14
+ /.bundle
15
+ /vendor/bundle/
16
+ /vendor/ruby/
17
+
18
+ # minimal Rails specific artifacts
19
+ db/*.sqlite3
20
+ /log/*
21
+ /tmp/*
22
+ public/uploads/*
23
+
24
+ # various artifacts
25
+ **.war
26
+ *.rbc
27
+ *.sassc
28
+ .rspec
29
+ .redcar/
30
+ .sass-cache
31
+ /coverage.data
32
+ /coverage/
33
+ /db/*.javadb/
34
+ /db/*.sqlite3
35
+ /doc/api/
36
+ /doc/app/
37
+ /doc/features.html
38
+ /doc/specs.html
39
+ /public/cache
40
+ /public/stylesheets/compiled
41
+ /public/system/*
42
+ /spec/tmp/*
43
+ /cache
44
+ /capybara*
45
+ /capybara-*.html
46
+ /gems
47
+ /spec/requests
48
+ /spec/routing
49
+ /spec/views
50
+ /specifications
51
+ rerun.txt
52
+ pickle-email-*.html
53
+
54
+ # If you find yourself ignoring temporary files generated by your text editor
55
+ # or operating system, you probably want to add a global ignore instead:
56
+ # git config --global core.excludesfile ~/.gitignore_global
57
+ #
58
+ # Here are some files you may want to ignore globally:
59
+
60
+ # scm revert files
61
+ **.orig
62
+
63
+ # Mac finder artifacts
64
+ .DS_Store
65
+
66
+ # Netbeans project directory
67
+ /nbproject/
68
+
69
+ # RubyMine project files
70
+ .idea
71
+
72
+ # Textmate project files
73
+ /*.tmproj
74
+
75
+ # vim artifacts
76
+ **.swp
77
+ >>>>>>> development
78
+ .crystal
79
+ pkg
80
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in crystal-repl.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Karthik T
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,6 @@
1
+ ## Simple Crystal REPL
2
+
3
+ Forked version of "Simple Ruby repl" to make an even simpler crystal repl :D
4
+
5
+ > Read the associated blog post for more information:
6
+ > http://jpsilvashy.com/posts/build-a-simple-ruby-repl.html
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
data/bin/crepl ADDED
@@ -0,0 +1,41 @@
1
+ #!env ruby
2
+ puts "Crystal REPL"
3
+ # require "pry"
4
+ require "readline"
5
+ require "tempfile"
6
+ require "open3"
7
+ PRINT_WARNINGS = false
8
+
9
+ def crystal_eval(crystal, scratch)
10
+ scratch.write("p(#{crystal})")
11
+ scratch.flush
12
+ Open3.popen3("crystal #{scratch.path}") do |stdin, stdout, stderr, wait_thr|
13
+ begin
14
+ err = stderr.read
15
+ if !err.empty?
16
+ if wait_thr.value.exitstatus == 0
17
+ puts err if PRINT_WARNINGS
18
+ else
19
+ raise err
20
+ end
21
+ end
22
+ return stdout.read
23
+ end
24
+ end
25
+ end
26
+
27
+ def handle_input(input, scratch)
28
+ if input == "exit"
29
+ exit
30
+ end
31
+ scratch.truncate(0)
32
+ scratch.rewind
33
+ result = crystal_eval(input, scratch)
34
+ puts("=> #{result}")
35
+ end
36
+
37
+ Tempfile.open("crystal") do |scratch|
38
+ loop do
39
+ handle_input(Readline.readline(">> ", true), scratch)
40
+ end
41
+ end
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'crystal/repl/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "crystal-repl"
8
+ spec.version = Crystal::Repl::VERSION
9
+ spec.authors = ["Karthik T"]
10
+ spec.email = ["karthikt.holmes+github@gmail.com"]
11
+ spec.summary = %q{A very simple REPL for crystal (crystal-lang.org)}
12
+ spec.description = %q{Crystal's design does not allow for a full traditional REPL. This one treats each line as indepentant crystal programs}
13
+ spec.homepage = "https://github.com/ktaragorn/crepl"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.6"
22
+ spec.add_development_dependency "rake"
23
+ end
@@ -0,0 +1,7 @@
1
+ require "crystal/repl/version"
2
+
3
+ module Crystal
4
+ module Repl
5
+ # Your code goes here...
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ module Crystal
2
+ module Repl
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: crystal-repl
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Karthik T
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Crystal's design does not allow for a full traditional REPL. This one
42
+ treats each line as indepentant crystal programs
43
+ email:
44
+ - karthikt.holmes+github@gmail.com
45
+ executables:
46
+ - crepl
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - ".gitignore"
51
+ - Gemfile
52
+ - LICENSE.txt
53
+ - README.md
54
+ - Rakefile
55
+ - bin/crepl
56
+ - crystal-repl.gemspec
57
+ - lib/crystal/repl.rb
58
+ - lib/crystal/repl/version.rb
59
+ homepage: https://github.com/ktaragorn/crepl
60
+ licenses:
61
+ - MIT
62
+ metadata: {}
63
+ post_install_message:
64
+ rdoc_options: []
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ requirements: []
78
+ rubyforge_project:
79
+ rubygems_version: 2.2.2
80
+ signing_key:
81
+ specification_version: 4
82
+ summary: A very simple REPL for crystal (crystal-lang.org)
83
+ test_files: []