runch 0.0.1 → 0.0.2

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