ropenlaszlo 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/doc/CHANGES +13 -0
- data/doc/MIT-LICENSE +21 -0
- data/doc/README +37 -0
- data/doc/TODO +18 -0
- data/lib/compiler.rb +217 -0
- data/lib/ropenlaszlo.rb +5 -0
- data/test/compiler_test.rb +131 -0
- data/test/test.lzx +1 -0
- metadata +58 -0
data/doc/CHANGES
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
= Change Log
|
2
|
+
|
3
|
+
== Version 0.2.0 (2006/01/11)
|
4
|
+
* Released as gem
|
5
|
+
* Published to rubyforge
|
6
|
+
* Added doc directory
|
7
|
+
* Added test directory
|
8
|
+
* Added examples directory
|
9
|
+
|
10
|
+
== Version 0.1.0 (2006/01/04)
|
11
|
+
* Initial release
|
12
|
+
* Published to osteele.com
|
13
|
+
* Announced on weblog.openlaszlo.org
|
data/doc/MIT-LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Copyright (c) 2003, 2004 Jim Weirich
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
data/doc/README
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
= ROpenLaszlo Interface to the OpenLaszlo Platform
|
2
|
+
|
3
|
+
ROpenLaszo is a Ruby interface to the OpenLaszlo[http://openlaszlo.org] platform for creating rich internet applicatons. It allows you to compile OpenLaszlo[http://openlaszlo.org] programs from within Ruby, in order to integrate OpenLaszlo[http://openlaszlo.org] development into Rake or Rails applications.
|
4
|
+
|
5
|
+
OpenLaszlo[http://openlaszlo.org] programs are written in XML with embedded JavaScript, and compiled into Flash (swf) binary files, or DHTML. (As of this writing, the DHTML target is in pre-beta form.) The APIs in this library make it easy for Ruby code to invoke the OpenLaszlo[http://openlaszlo.org] compiler. For example, if hello.lzx contains the following text:
|
6
|
+
<canvas>
|
7
|
+
<window>
|
8
|
+
<button>Hello, World!</button>
|
9
|
+
</window>
|
10
|
+
</canvas>
|
11
|
+
then the following Ruby code can be used to create a file 'hello.swf' which can be executed in a browser or placed on a web site:
|
12
|
+
require 'rubygems'
|
13
|
+
require 'ropenlaszlo'
|
14
|
+
OpenLaszlo::compile 'hello.lzx'
|
15
|
+
|
16
|
+
== Requirements
|
17
|
+
|
18
|
+
* {OpenLaszlo 3.1}[http://openlaszlo.org]
|
19
|
+
* Ruby -v 1.8.2 or later (untested in earlier versions)
|
20
|
+
|
21
|
+
== Downloading and Installation
|
22
|
+
|
23
|
+
ROpenLaszlo is distributed as a RubyGem. You may download it from ROpenLaszlo's {RubyForge project}[http://rubyforge.org/projects/ropenlaszlo].
|
24
|
+
|
25
|
+
Installation of ROpenLaszlo requires that you have RubyGems[http://rubygems.rubyforge.org] installed. In that case, you can download the ROpenLaszlo .gem to your local file system, and execute:
|
26
|
+
|
27
|
+
gem install ropenlaszlo
|
28
|
+
|
29
|
+
== Documentation
|
30
|
+
|
31
|
+
{This OpenLaszlo Blog entry}[http://weblog.openlaszlo.org/archives/2006/01/deploying-openlaszlo-applications-with-rake/] has additional information and some examples of using ROpenLaszlo in a Rakefile. Where that entry says to download +openlaszlo.rb+ and require +openlaszlo+, you should instead install this ropenlaszlo gem and require +ropenlaszlo+.)
|
32
|
+
|
33
|
+
== License
|
34
|
+
|
35
|
+
ROpenLaszlo is copyright (c) 2006 Oliver Steele. It is open-source software, and may be redistributed
|
36
|
+
under the terms of the MIT license. The text of this licences is included in the
|
37
|
+
ROpenLaszlo distribution, under the +doc+ subdirectory.
|
data/doc/TODO
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
= ROpenLaszlo Project -- To Do List
|
2
|
+
|
3
|
+
== Compiler
|
4
|
+
* Dependency tracking
|
5
|
+
* Detect when file is not present
|
6
|
+
* Class for compiler configuration errors
|
7
|
+
|
8
|
+
== Unit Tests
|
9
|
+
* Compiler parameters
|
10
|
+
* Missing source file
|
11
|
+
* Syntax error
|
12
|
+
* Unreachable server
|
13
|
+
* Invalid OPENLASZLO_HOME
|
14
|
+
|
15
|
+
== Packaging
|
16
|
+
* Add rake task file
|
17
|
+
* Add unit testing, doc generation to rakefile
|
18
|
+
|
data/lib/compiler.rb
ADDED
@@ -0,0 +1,217 @@
|
|
1
|
+
# Author:: Oliver Steele
|
2
|
+
# Copyright:: Copyright (c) 2005-2006 Oliver Steele. All rights reserved.
|
3
|
+
# License:: Ruby License.
|
4
|
+
#
|
5
|
+
# This module contains utility methods for compiling OpenLaszlo[http://openlaszlo.org] programs. See the OpenLaszlo module documentation for usage information.
|
6
|
+
#
|
7
|
+
#--
|
8
|
+
# Bugs:
|
9
|
+
# - syntax error compiles swf anyway
|
10
|
+
#
|
11
|
+
# Todo:
|
12
|
+
# - unit tests
|
13
|
+
# - doc :profile
|
14
|
+
#
|
15
|
+
# Wishlist:
|
16
|
+
# - compile_string
|
17
|
+
# - detect compiler version
|
18
|
+
# - select compiler based on file location; or, copy files
|
19
|
+
# - retrieve dependencies
|
20
|
+
# - retrieve compiler warnings
|
21
|
+
#
|
22
|
+
# Corners:
|
23
|
+
# - detect invalid parameters
|
24
|
+
# - server isn't running
|
25
|
+
# - lps-dev/foo isn't inside lps
|
26
|
+
|
27
|
+
|
28
|
+
# == module OpenLaszlo
|
29
|
+
#
|
30
|
+
# This module contains utility methods for compiling OpenLaszlo[http://openlaszlo.org] programs.
|
31
|
+
#
|
32
|
+
# Example:
|
33
|
+
# # Set up the environment to use the compile server. The OpenLaszlo server
|
34
|
+
# # must be running in order at this location in order for this to work.
|
35
|
+
# ENV['OPENLASZLO_HOME'] = '/Applications/OpenLaszlo Server 3.1'
|
36
|
+
# ENV['OPENLASZLO_URL'] = 'http://localhost:8080/lps-3.1'
|
37
|
+
#
|
38
|
+
# require 'openlaszlo'
|
39
|
+
# # Create a file 'hello.swf' in the current directory:
|
40
|
+
# OpenLaszlo::compile 'hello.lzx'
|
41
|
+
#
|
42
|
+
# See OpenLaszlo.compile for additional documentation.
|
43
|
+
#
|
44
|
+
module OpenLaszlo
|
45
|
+
# This class implements a bridge to the compile server.
|
46
|
+
#
|
47
|
+
# If you don't need multiple compilers, you can use the methods in
|
48
|
+
# the OpenLaszlo module instead.
|
49
|
+
#
|
50
|
+
# The compile server is faster than CommandLineCompiler, but can only compile
|
51
|
+
# files in the same directory as the {OpenLaszlo SDK}[http://openlaszlo.org].
|
52
|
+
class CompileServer
|
53
|
+
# Options:
|
54
|
+
# * <tt>:openlaszlo_home</tt> - filesystem location of the OpenLaszlo SDK. Defaults to EVN['OPENLASZLO_HOME']
|
55
|
+
# * <tt>:server_uri</tt> - the URI of the server. Defaults to ENV['OPENLASZLO_URL'] if this is specified, otherwise to 'http://localhost:8080/lps-dev'.
|
56
|
+
def initialize params={}
|
57
|
+
@home = params[:home] || ENV['OPENLASZLO_HOME']
|
58
|
+
@base_url = params[:server_uri] || ENV['OPENLASZLO_URL'] || 'http://localhost:8080/lps-dev'
|
59
|
+
end
|
60
|
+
|
61
|
+
# Invokes the OpenLaszlo server-based compiler on +source_file+.
|
62
|
+
# +source_file+ must be inside the home directory of the server.
|
63
|
+
# See OpenLaszlo.compile for a description of the +params+.
|
64
|
+
#
|
65
|
+
# Additional options:
|
66
|
+
# * <tt>:format</tt> - request type (default 'swf')
|
67
|
+
def compile source_file, params={}
|
68
|
+
require 'net/http'
|
69
|
+
require 'uri'
|
70
|
+
# assert that pathname is relative to LPS home:
|
71
|
+
absolute_path = File.expand_path source_file
|
72
|
+
raise "#{absolute_path} isn't inside #{@home}" unless absolute_path.index(@home) == 0
|
73
|
+
server_relative_path = absolute_path[@home.length..-1]
|
74
|
+
# FIXME: this doesn't handle quoting; use recursive File.split instead
|
75
|
+
# FIXME: should encode the url, for filenames that include '/'
|
76
|
+
server_relative_path.gsub(File::Separator, '/')
|
77
|
+
output = params[:output] || "#{File.basename source_file, '.lzx'}.swf"
|
78
|
+
options = {
|
79
|
+
:lzr => params[:runtime],
|
80
|
+
:debug => params[:debug],
|
81
|
+
:lzproxied => params[:proxied] == nil ? params[:proxied] : false,
|
82
|
+
:lzt => params[:format] || 'swf'}
|
83
|
+
query = options.map{|k,v|"#{k}=#{v}" unless v.nil?}.compact.join('&')
|
84
|
+
url = "#{@base_url}#{server_relative_path}"
|
85
|
+
url += "?#{query}" unless query.empty?
|
86
|
+
Net::HTTP.get_response URI.parse(url) do |response|
|
87
|
+
case response
|
88
|
+
when Net::HTTPOK
|
89
|
+
File.open(output, 'w') do |f|
|
90
|
+
response.read_body do |segment|
|
91
|
+
f << segment
|
92
|
+
end
|
93
|
+
end
|
94
|
+
else
|
95
|
+
response.value # raises error
|
96
|
+
end
|
97
|
+
end
|
98
|
+
return output
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
# This class implements a bridge to the command-line compiler.
|
103
|
+
#
|
104
|
+
# If you don't need multiple compilers, you can use the methods in
|
105
|
+
# the OpenLaszlo module instead.
|
106
|
+
#
|
107
|
+
# The command-line compiler is slower than CompileServer, but,
|
108
|
+
# unlike the server, it can compile files in any location.
|
109
|
+
class CommandLineCompiler
|
110
|
+
# Creates a new compiler.
|
111
|
+
#
|
112
|
+
# Options are:
|
113
|
+
# * <tt>:compiler_script</tt> - the path to the shell script that
|
114
|
+
# invokes the compiler. This defaults to a standard location inside
|
115
|
+
# the value specified by :home.
|
116
|
+
# * <tt>:openlaszlo_home</tt> - the home directory of the OpenLaszlo SDK.
|
117
|
+
# This defaults to ENV['OPENLASZLO_HOME'].
|
118
|
+
def initialize params={}
|
119
|
+
@lzc = params[:compiler_script]
|
120
|
+
unless @lzc
|
121
|
+
home = params[:openlaszlo_home] || ENV['OPENLASZLO_HOME']
|
122
|
+
raise ":compiler_script or :openlaszlo_home must be specified" unless home
|
123
|
+
search = lzc_directories.map{|f| File.join(home, f, 'lzc')}
|
124
|
+
found = search.select{|f| File.exists? f}
|
125
|
+
raise "couldn't find bin/lzc in #{search.join(' or ')}" if found.empty?
|
126
|
+
@lzc = found.first
|
127
|
+
# Adjust the name for Windows
|
128
|
+
@lzc += '.bat' if windows?
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
# Invokes the OpenLaszlo command-line compiler on +source_file+.
|
133
|
+
#
|
134
|
+
# See OpenLaszlo.compile for a description of the +params+.
|
135
|
+
def compile source_file, params={}
|
136
|
+
default_output = File.basename(source_file, '.lzx') + '.swf'
|
137
|
+
output = params[:output] || default_output
|
138
|
+
# TODO: could handle this case by compiling to a temporary directory and
|
139
|
+
# renaming from there
|
140
|
+
raise "#{source_file} and #{output} do not have the same basename." unless File.basename(source_file, '.lzx') == File.basename(output, '.swf')
|
141
|
+
args = []
|
142
|
+
args << '--runtime=#{params[:runtime]}' if params[:runtime]
|
143
|
+
args << '--debug' if params[:debug]
|
144
|
+
args << '--profile' if params[:profile]
|
145
|
+
args << "--output '#{File.basename output}'" unless File.dirname(source_file) == File.dirname(output)
|
146
|
+
`#{@lzc} #{args.join(' ')} '#{source_file}'`
|
147
|
+
end
|
148
|
+
|
149
|
+
private
|
150
|
+
|
151
|
+
# Locations in which to look for the lzc script, relative to OPENLASZLO_HOME
|
152
|
+
def lzc_directories
|
153
|
+
[# binary distro location
|
154
|
+
'bin',
|
155
|
+
# binary distro location
|
156
|
+
'WEB-INF/lps/server/bin'
|
157
|
+
]
|
158
|
+
end
|
159
|
+
|
160
|
+
def windows?
|
161
|
+
RUBY_PLATFORM =~ /win/ and not RUBY_PLATFORM =~ /darwin/
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
# Returns the default compiler. Use the server-based compiler if it's
|
166
|
+
# available, since it's so much faster.
|
167
|
+
def self.compiler
|
168
|
+
return @compiler if @compiler
|
169
|
+
return @compiler = CompileServer.new if ENV['OPENLASZLO_URL'] and ENV['OPENLASZLO_HOME']
|
170
|
+
return @compiler = CommandLineCompiler.new if ENV['OPENLASZLO_HOME']
|
171
|
+
raise <<EOF
|
172
|
+
Couldn't find an OpenLaszlo compiler.
|
173
|
+
|
174
|
+
To use the compile server (recommended), set ENV['OPENLASZLO_URL'] and ENV['OPENLASZLO_HOME'].
|
175
|
+
|
176
|
+
To use the command-line compiler, set ENV['OPENLASZLO_HOME'].
|
177
|
+
EOF
|
178
|
+
end
|
179
|
+
|
180
|
+
# Sets the default compiler for future invocations of OpenLaszlo.compile.
|
181
|
+
def self.compiler= compiler
|
182
|
+
@compiler = compiler
|
183
|
+
end
|
184
|
+
|
185
|
+
# Compile an OpenLaszlo[http://openlaszlo.org] source file.
|
186
|
+
#
|
187
|
+
# Examples:
|
188
|
+
# require 'openlaszlo'
|
189
|
+
# OpenLaszlo::compile 'hello.lzx'
|
190
|
+
# OpenLaszlo::compile 'hello.lzx', :debug => true
|
191
|
+
# OpenLaszlo::compile 'hello.lzx', :runtime => 'swf8'
|
192
|
+
# OpenLaszlo::compile 'hello.lzx', {:runtime => 'swf8', :debug => true}
|
193
|
+
# OpenLaszlo::compile 'hello.lzx', :output => 'hello-world.swf' # server only
|
194
|
+
#
|
195
|
+
# Options are:
|
196
|
+
# * <tt>:debug</tt> - debug mode (default false)
|
197
|
+
# * <tt>:output</tt> - specify the name and location for the output file (default = input_file.sub(/\.lzx$/, '.swf'))
|
198
|
+
# * <tt>:proxied</tt> - is application proxied (default true)
|
199
|
+
# * <tt>:runtime</tt> - runtime (default swf7)
|
200
|
+
#
|
201
|
+
# See CompileServer.compile and CommandLineCompiler.compile for additional options
|
202
|
+
# that are specific to these compilers.
|
203
|
+
def self.compile source_file, params={}
|
204
|
+
compiler.compile source_file, params
|
205
|
+
end
|
206
|
+
|
207
|
+
def self.make_html source_file, params={} #:nodoc:
|
208
|
+
raise 'not really supported, for now'
|
209
|
+
params = {
|
210
|
+
:format => 'html-object',
|
211
|
+
:output => File.basename(source_file, '.lzx')+'.html'}.update(params)
|
212
|
+
compiler.compile source_file, params
|
213
|
+
source_file = params[:output]
|
214
|
+
s = open(source_file).read
|
215
|
+
open(source_file, 'w') {|f| f.write s.gsub!(/\.lzx\?lzt=swf&/, '.lzx.swf?')}
|
216
|
+
end
|
217
|
+
end
|
data/lib/ropenlaszlo.rb
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
# Author:: Oliver Steele
|
2
|
+
# Copyright:: Copyright (c) 2005-2006 Oliver Steele. All rights reserved.
|
3
|
+
# License:: Ruby License.
|
4
|
+
|
5
|
+
$:.unshift File.dirname(__FILE__) + "/../lib"
|
6
|
+
|
7
|
+
require 'test/unit'
|
8
|
+
require 'ropenlaszlo'
|
9
|
+
require 'fileutils'
|
10
|
+
|
11
|
+
include FileUtils
|
12
|
+
|
13
|
+
REQUIRED_ENV_VALUES = %w{OPENLASZLO_HOME OPENLASZLO_HOME}
|
14
|
+
unless REQUIRED_ENV_VALUES.reject {|w| ENV[w]}.empty?
|
15
|
+
raise "These environment variables must be set: #{REQUIRED_ENV_VALUES}.join(', ')"
|
16
|
+
end
|
17
|
+
|
18
|
+
class << ENV
|
19
|
+
# Execute a block, restoring the bindings for +keys+ at the end.
|
20
|
+
# NOT thread-safe!
|
21
|
+
def with_saved_bindings keys, &block
|
22
|
+
saved_bindings = Hash[*keys.map {|k| [k, ENV[k]]}.flatten]
|
23
|
+
begin
|
24
|
+
block.call
|
25
|
+
ensure
|
26
|
+
ENV.update saved_bindings
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Execute a block with the temporary bindings in +bindings+.
|
31
|
+
# Doesn't remove keys; simply sets them to nil.
|
32
|
+
def with_bindings bindings, &block
|
33
|
+
with_saved_bindings bindings.keys do
|
34
|
+
ENV.update bindings
|
35
|
+
return block.call
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
module CompilerTestHelper
|
41
|
+
def super_setup
|
42
|
+
OpenLaszlo::compiler = nil
|
43
|
+
cd File.dirname(__FILE__)
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
def compile file, output=nil, options={}
|
48
|
+
output = File.basename(file, '.lzx')+'.swf'
|
49
|
+
rm_f output
|
50
|
+
begin
|
51
|
+
OpenLaszlo::compile file, *options
|
52
|
+
assert File.exists?(output), "#{output} does not exist"
|
53
|
+
ensure
|
54
|
+
rm_f output
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
class CompileServerTest < Test::Unit::TestCase
|
60
|
+
include CompilerTestHelper
|
61
|
+
|
62
|
+
def setup
|
63
|
+
@test_dir = File.join(ENV['OPENLASZLO_HOME'], 'ropenlaszlo-tests')
|
64
|
+
mkdir @test_dir
|
65
|
+
super_setup
|
66
|
+
end
|
67
|
+
|
68
|
+
def teardown
|
69
|
+
rm_rf @test_dir
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_compilation
|
73
|
+
compile 'test.lzx'
|
74
|
+
end
|
75
|
+
|
76
|
+
private
|
77
|
+
alias :saved_compile :compile
|
78
|
+
|
79
|
+
def compile file, output=nil, options={}
|
80
|
+
server_local_file = File.join @test_dir, File.basename(file)
|
81
|
+
cp file, server_local_file
|
82
|
+
begin
|
83
|
+
saved_compile server_local_file, output, options
|
84
|
+
ensure
|
85
|
+
rm_f server_local_file
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
class CommandLineCompilerTest < Test::Unit::TestCase
|
91
|
+
include CompilerTestHelper
|
92
|
+
|
93
|
+
def setup
|
94
|
+
bindings = {'OPENLASZLO_URL' => nil}
|
95
|
+
@saved_bindings = Hash[*bindings.keys.map{|k|[k,ENV[k]]}.flatten]
|
96
|
+
ENV.update bindings
|
97
|
+
super_setup
|
98
|
+
end
|
99
|
+
|
100
|
+
def teardown
|
101
|
+
ENV.update @saved_bindings
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_compilation
|
105
|
+
compile 'test.lzx'
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
class CompilerFacadeTest < Test::Unit::TestCase
|
110
|
+
def setup
|
111
|
+
raise "ENV['OPENLASZLO_URL'] must be set" unless ENV['OPENLASZLO_URL']
|
112
|
+
raise "ENV['OPENLASZLO_HOME'] must be set" unless ENV['OPENLASZLO_HOME']
|
113
|
+
OpenLaszlo::compiler = nil
|
114
|
+
end
|
115
|
+
|
116
|
+
def test_select_server
|
117
|
+
assert_instance_of OpenLaszlo::CompileServer, OpenLaszlo::compiler
|
118
|
+
end
|
119
|
+
|
120
|
+
def test_select_commandline
|
121
|
+
ENV.with_bindings 'OPENLASZLO_URL' => nil do
|
122
|
+
assert_instance_of OpenLaszlo::CommandLineCompiler, OpenLaszlo::compiler
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_missing_home
|
127
|
+
ENV.with_bindings 'OPENLASZLO_HOME' => nil do
|
128
|
+
assert_raise(RuntimeError) do OpenLaszlo::compiler end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
data/test/test.lzx
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
<canvas/>
|
metadata
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.11
|
3
|
+
specification_version: 1
|
4
|
+
name: ropenlaszlo
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.2.0
|
7
|
+
date: 2006-01-11 00:00:00 -05:00
|
8
|
+
summary: Ruby interface to OpenLaszlo.
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: steele@osteele.com
|
12
|
+
homepage: http://ropenlaszlo.rubyforge.org
|
13
|
+
rubyforge_project: ropenlaszlo
|
14
|
+
description: ROpenLaszlo is an interface to the OpenLaszlo compiler.
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
authors:
|
29
|
+
- Oliver Steele
|
30
|
+
files:
|
31
|
+
- lib/compiler.rb
|
32
|
+
- lib/ropenlaszlo.rb
|
33
|
+
- doc/CHANGES
|
34
|
+
- doc/MIT-LICENSE
|
35
|
+
- doc/README
|
36
|
+
- doc/TODO
|
37
|
+
- test/compiler_test.rb
|
38
|
+
- test/test.lzx
|
39
|
+
test_files: []
|
40
|
+
|
41
|
+
rdoc_options:
|
42
|
+
- --title
|
43
|
+
- ROpenLaszlo -- Ruby interface to OpenLaszlo
|
44
|
+
- --main
|
45
|
+
- doc/README
|
46
|
+
extra_rdoc_files:
|
47
|
+
- doc/CHANGES
|
48
|
+
- doc/MIT-LICENSE
|
49
|
+
- doc/README
|
50
|
+
- doc/TODO
|
51
|
+
executables: []
|
52
|
+
|
53
|
+
extensions: []
|
54
|
+
|
55
|
+
requirements: []
|
56
|
+
|
57
|
+
dependencies: []
|
58
|
+
|