runch 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25ba2a15d3ca17b5723e0e387b2c689222f4b566
4
- data.tar.gz: 7ab46e97b2f97f3108d57e6a086627a6c336380c
3
+ metadata.gz: 9442b5886d11aec6f51dd01cb13d352bdf1f57d2
4
+ data.tar.gz: a6212bb16c16effa9468b97faad1089b937ee941
5
5
  SHA512:
6
- metadata.gz: 38f77486e02040657c9a2ea943ea9ce853c8693df3180d6e6ebba1c0975681e653b700a1606a2376256fad569829333c1100da1539c973b20beac17d41e98c93
7
- data.tar.gz: cbb192e942964650cb3186c4cf8ddbe134c721e92b7f6104de4f2e2042ecfaa1adb11c29cfee057518afcf3b81bc0e5437844db8600406e02f0fcec24d8eacff
6
+ metadata.gz: 9af738a8a6db99a6e2e9bb95f0f61f948fb33d5ecec1596338a7500677540971f403fba1c44bc13b4e0bc415517c95ff42be6ff2d2abcd7ab3680431959bcdab
7
+ data.tar.gz: b0abbccf2d26edfc0c8f0804a297fa5eeb755b67219bf9eae465e39618f1cc6730a81ca347d75c07b4655b7479745b51fad8af2fca0f6b6913c813d87d713d24
data/NEWS.md ADDED
@@ -0,0 +1,15 @@
1
+ # NEWS
2
+
3
+ ## 0.0.2: 2013-07-22
4
+
5
+ Java supported release!
6
+
7
+ ### Changes
8
+
9
+ * Improvements
10
+ * Supported Java.
11
+ * Supported copy of dependent files.
12
+
13
+ ## 0.0.1: 2013-07-20
14
+
15
+ Initial release!
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Runch
2
2
 
3
- A launcher as interpreter.
3
+ A launcher for source code as interpreter.
4
4
 
5
5
  ## Installation
6
6
 
@@ -9,11 +9,18 @@ A launcher as interpreter.
9
9
  ## Support Languages
10
10
 
11
11
  * C
12
+ * Java
12
13
 
13
14
  ## Usage
14
15
 
16
+ ### C
17
+
15
18
  runch hello.c
16
19
 
20
+ ### Java
21
+
22
+ runch Hello.java
23
+
17
24
  ## Contributing
18
25
 
19
26
  1. Fork it
@@ -1,4 +1,4 @@
1
- require "tmpdir"
1
+ require "runch/language"
2
2
 
3
3
  module Runch
4
4
  class Command
@@ -12,14 +12,7 @@ module Runch
12
12
  end
13
13
 
14
14
  def run(arguments)
15
- Dir.mktmpdir("runch") do |dir|
16
- arguments.each do |file|
17
- FileUtils.cp(file, dir)
18
- basename = File.basename(file, ".*")
19
- system("gcc", "-o", "#{dir}/#{basename}", file)
20
- system("#{dir}/#{basename}")
21
- end
22
- end
15
+ Language.create(arguments[0], arguments[1..-1]).run
23
16
  end
24
17
  end
25
18
  end
@@ -0,0 +1,12 @@
1
+ require "runch/language/c"
2
+ require "runch/language/java"
3
+
4
+ module Runch
5
+ module Language
6
+ module_function
7
+ def create(main_source, *files)
8
+ extname = File.extname(main_source)[1..-1]
9
+ const_get(extname.capitalize).new(main_source, files)
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,36 @@
1
+ require "tmpdir"
2
+
3
+ module Runch
4
+ module Language
5
+ module Base
6
+ def initialize(main_source, files)
7
+ @main_source = main_source
8
+ @files = files
9
+ end
10
+
11
+ def run
12
+ Dir.mktmpdir("runch") do |tmpdir|
13
+ copy(tmpdir)
14
+ executable = compile(tmpdir)
15
+ execute(executable)
16
+ end
17
+ end
18
+
19
+ private
20
+ def copy(tmpdir)
21
+ FileUtils.cp(@main_source, tmpdir)
22
+ @files.each do |file|
23
+ FileUtils.cp_r(file, tmpdir)
24
+ end
25
+ end
26
+
27
+ def compile(tmpdir)
28
+ @main_source
29
+ end
30
+
31
+ def execute(executable)
32
+ system(executable)
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,18 @@
1
+ require "runch/language/base"
2
+
3
+ module Runch
4
+ module Language
5
+ class C
6
+ include Base
7
+
8
+ def compile(tmpdir)
9
+ basename = File.basename(@main_source, ".*")
10
+ filename = File.basename(@main_source)
11
+ main_source = File.join(tmpdir, filename)
12
+ executable = File.join(tmpdir, basename)
13
+ system("gcc", "-o", executable, main_source)
14
+ executable
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,24 @@
1
+ require "runch/language/base"
2
+
3
+ module Runch
4
+ module Language
5
+ class Java
6
+ include Base
7
+
8
+ def compile(tmpdir)
9
+ basename = File.basename(@main_source, ".*")
10
+ filename = File.basename(@main_source)
11
+ main_source = File.join(tmpdir, filename)
12
+ executable = File.join(tmpdir, basename)
13
+ system("javac", main_source)
14
+ executable
15
+ end
16
+
17
+ def execute(executable)
18
+ dirname = File.dirname(executable)
19
+ classname = File.basename(executable)
20
+ system("java", "-classpath", dirname, classname)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module Runch
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Runch::VERSION
9
9
  spec.authors = ["Masafumi Yokoyama"]
10
10
  spec.email = ["myokoym@gmail.com"]
11
- spec.description = %q{A launcher as interpreter.}
12
- spec.summary = %q{A launcher as interpreter.}
11
+ spec.description = %q{A launcher for source code as interpreter.}
12
+ spec.summary = %q{A launcher for source code as interpreter.}
13
13
  spec.homepage = "https://github.com/myokoym/runch"
14
14
  spec.license = "MIT"
15
15
 
@@ -0,0 +1,5 @@
1
+ class Hello {
2
+ public static void main(String[] args) {
3
+ System.out.println("Hello, World!");
4
+ }
5
+ }
@@ -1,6 +1,7 @@
1
1
  #include <stdio.h>
2
2
 
3
- void
3
+ int
4
4
  main() {
5
5
  printf("Hello World!\n");
6
+ return 0;
6
7
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masafumi Yokoyama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-20 00:00:00.000000000 Z
11
+ date: 2013-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description: A launcher as interpreter.
41
+ description: A launcher for source code as interpreter.
42
42
  email:
43
43
  - myokoym@gmail.com
44
44
  executables:
@@ -49,13 +49,19 @@ files:
49
49
  - .gitignore
50
50
  - Gemfile
51
51
  - LICENSE.txt
52
+ - NEWS.md
52
53
  - README.md
53
54
  - Rakefile
54
55
  - bin/runch
55
56
  - lib/runch.rb
56
57
  - lib/runch/command.rb
58
+ - lib/runch/language.rb
59
+ - lib/runch/language/base.rb
60
+ - lib/runch/language/c.rb
61
+ - lib/runch/language/java.rb
57
62
  - lib/runch/version.rb
58
63
  - runch.gemspec
64
+ - sample/Hello.java
59
65
  - sample/hello.c
60
66
  homepage: https://github.com/myokoym/runch
61
67
  licenses:
@@ -80,5 +86,6 @@ rubyforge_project:
80
86
  rubygems_version: 2.0.3
81
87
  signing_key:
82
88
  specification_version: 4
83
- summary: A launcher as interpreter.
89
+ summary: A launcher for source code as interpreter.
84
90
  test_files: []
91
+ has_rdoc: