traceur-compiler 0.1.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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/traceur_compiler.rb +51 -0
  3. metadata +113 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 746bcca0842e1b0642cc46721b4dc8271b2d825f
4
+ data.tar.gz: e892b006f18d4a0a98d7adf4a2a5fd6e53981be5
5
+ SHA512:
6
+ metadata.gz: 0895f8f25b6817efb3f67801d46709cbbc6c4e9f4e30d769343d2fac4039dce6b895b11b19091d74aea57dc7905fb1e6359f26438487b21ada654d668196723a
7
+ data.tar.gz: 4117b6da78773a897bc0897ccb6bba572a5dd3e5d6d826889c80a17967a391273be140a5b09384ac153acdb04780ff2fcdd0bb54ba34156063e60ba35741094f
@@ -0,0 +1,51 @@
1
+ require 'execjs'
2
+ require 'traceur_compiler/source'
3
+
4
+ module TraceurCompiler
5
+ module Source
6
+ def self.path
7
+ @path ||= ENV['TRACEUR_COMPILER_SOURCE_PATH'] || bundled_path
8
+ end
9
+
10
+ def self.path=(path)
11
+ @contents = @context = nil
12
+ @path = path
13
+ end
14
+
15
+ def self.contents
16
+ @contents ||= File.read(path)
17
+ end
18
+
19
+ def self.context
20
+ return @context unless @context.nil?
21
+ @context = ExecJS.compile(contents)
22
+ @context.exec <<-stubs
23
+ console = {
24
+ error: function () { },
25
+ log: function () { }
26
+ };
27
+ stubs
28
+ @context.exec <<-compile
29
+ compile = function (contents) {
30
+ var project = new traceur.semantics.symbols.Project(''),
31
+ reporter = new traceur.util.ErrorReporter();
32
+ reporter.reportMessageInternal = function (location, format, args) {
33
+ throw new Error(traceur.util.ErrorReporter.format(location, format, args));
34
+ };
35
+
36
+ project.addFile(new traceur.syntax.SourceFile('unknown', contents));
37
+ var response = traceur.codegeneration.Compiler.compile(reporter, project, false);
38
+ return traceur.outputgeneration.ProjectWriter.write(response, {});
39
+ }
40
+ compile
41
+ @context
42
+ end
43
+ end
44
+
45
+ class << self
46
+ def compile(script)
47
+ script = script.read if script.respond_to?(:read)
48
+ Source.context.call("compile", script)
49
+ end
50
+ end
51
+ end
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: traceur-compiler
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jakub
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: execjs
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
+ - !ruby/object:Gem::Dependency
28
+ name: therubyracer
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: traceur-compiler-source
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-expectations
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 2.14.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 2.14.0
83
+ description:
84
+ email: jakub@jakub.cc
85
+ executables: []
86
+ extensions: []
87
+ extra_rdoc_files: []
88
+ files:
89
+ - lib/traceur_compiler.rb
90
+ homepage:
91
+ licenses: []
92
+ metadata: {}
93
+ post_install_message:
94
+ rdoc_options: []
95
+ require_paths:
96
+ - lib
97
+ required_ruby_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ requirements: []
108
+ rubyforge_project:
109
+ rubygems_version: 2.0.3
110
+ signing_key:
111
+ specification_version: 4
112
+ summary: Traceur compiler
113
+ test_files: []