xpcomcore-rubygem 0.5.3 → 0.6.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.
- data/Rakefile +2 -0
- data/VERSION +1 -1
- data/ext/stub_runners/darwin/StubApp.app/Contents/Info.plist +32 -0
- data/ext/stub_runners/darwin/StubApp.app/Contents/MacOS/stub_runner +0 -0
- data/ext/stub_runners/darwin/StubApp.app/Contents/PkgInfo +1 -0
- data/ext/stub_runners/darwin/StubApp.app/Contents/Resources/.gitignore +0 -0
- data/ext/stub_runners/darwin/src/Makefile +7 -0
- data/ext/stub_runners/darwin/src/stub_runner.c +19 -0
- data/lib/xpcomcore-rubygem/building/stub_app_helpers.rb +61 -0
- data/lib/xpcomcore-rubygem/commands/generate/application.rb +17 -1
- data/lib/xpcomcore-rubygem/commands/launch.rb +98 -49
- data/lib/xpcomcore-rubygem/tasks/application_task.rb +13 -3
- data/templates/application/chrome/content/xul/main_window.xul.erb +1 -1
- data/templates/application/chrome/icons/default/default.png +0 -0
- data/templates/shared/xultestrunner_test_task.erb +7 -7
- data/xpcomcore/Rakefile +3 -3
- data/xpcomcore/build_properties.yml +1 -1
- data/xpcomcore/components/XPCOMCore.js +1 -1
- data/xpcomcore/components/XPCOMCoreCLH.js +28 -0
- data/xpcomcore/doc/files.html +1 -1
- data/xpcomcore/doc/index.html +1 -1
- data/xpcomcore/doc/symbols/_global_.html +1 -1
- data/xpcomcore/doc/symbols/error.html +1 -1
- data/xpcomcore/doc/symbols/file.html +1 -1
- data/xpcomcore/doc/symbols/file.nosuchfileerror.html +1 -1
- data/xpcomcore/doc/symbols/kernel.html +44 -1
- data/xpcomcore/doc/symbols/loaderror.html +1 -1
- data/xpcomcore/doc/symbols/selfconcepterror.html +1 -1
- data/xpcomcore/doc/symbols/src/lib_kernel.js.html +159 -149
- data/xpcomcore/doc/symbols/sys.html +1 -1
- data/xpcomcore/doc/symbols/xpcbuiltins.html +1 -1
- data/xpcomcore/lib/kernel.js +11 -1
- data/xpcomcore-rubygem.gemspec +17 -2
- metadata +31 -2
data/Rakefile
CHANGED
@@ -29,6 +29,8 @@ begin
|
|
29
29
|
|
30
30
|
gem.add_dependency "sys-uname"
|
31
31
|
gem.add_dependency "cmdparse"
|
32
|
+
gem.add_dependency "plist"
|
33
|
+
gem.add_dependency "iniparse"
|
32
34
|
gem.add_dependency "uuidtools", ">=2.0.0"
|
33
35
|
gem.add_dependency "jeweler", "=1.2.1"
|
34
36
|
gem.add_development_dependency "colored"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
6
|
+
<string>English</string>
|
7
|
+
<key>CFBundleExecutable</key>
|
8
|
+
<string>stub_runner</string>
|
9
|
+
<key>CFBundleGetInfoString</key>
|
10
|
+
<string>StubApp 1.0.0, © 1998-2009 Contributors</string>
|
11
|
+
<key>CFBundleIconFile</key>
|
12
|
+
<string>stubapp</string>
|
13
|
+
<key>CFBundleIdentifier</key>
|
14
|
+
<string>org.conflagrationjs.stubapp</string>
|
15
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
16
|
+
<string>6.0</string>
|
17
|
+
<key>CFBundleName</key>
|
18
|
+
<string>StubApp</string>
|
19
|
+
<key>CFBundlePackageType</key>
|
20
|
+
<string>APPL</string>
|
21
|
+
<key>CFBundleShortVersionString</key>
|
22
|
+
<string>1.0.0</string>
|
23
|
+
<key>CFBundleSignature</key>
|
24
|
+
<string>XPCC</string>
|
25
|
+
<key>CFBundleVersion</key>
|
26
|
+
<string>1.0.0</string>
|
27
|
+
<key>NSAppleScriptEnabled</key>
|
28
|
+
<true/>
|
29
|
+
<key>CGDisableCoalescedUpdates</key>
|
30
|
+
<true/>
|
31
|
+
</dict>
|
32
|
+
</plist>
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
APPL????
|
File without changes
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#include <stdlib.h>
|
2
|
+
#include <stdio.h>
|
3
|
+
#include <unistd.h>
|
4
|
+
|
5
|
+
int main (int argc, const char * argv[]) {
|
6
|
+
char *executable = NULL;
|
7
|
+
char *exec_args[argc + 1];
|
8
|
+
int i;
|
9
|
+
|
10
|
+
executable = getenv("REAL_EXECUTABLE");
|
11
|
+
exec_args[0] = executable;
|
12
|
+
|
13
|
+
for (i = 1; i < argc; i++) {
|
14
|
+
exec_args[i] = (char *) argv[i];
|
15
|
+
}
|
16
|
+
|
17
|
+
exec_args[argc] = NULL;
|
18
|
+
return execv(executable, exec_args);
|
19
|
+
}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'iniparse'
|
2
|
+
require 'plist'
|
3
|
+
|
4
|
+
module XPCOMCore
|
5
|
+
module Building
|
6
|
+
module StubAppHelpers
|
7
|
+
class AppUpdater
|
8
|
+
IconPath = "chrome/icons/default/default.png"
|
9
|
+
IconConverter = "png2icns"
|
10
|
+
|
11
|
+
def initialize(options)
|
12
|
+
@xul_app_path = options[:xul_app_path]
|
13
|
+
@stub_dir = options[:stub_dir]
|
14
|
+
end
|
15
|
+
|
16
|
+
def update
|
17
|
+
app_ini = IniParse.parse((@xul_app_path + "application.ini").read)
|
18
|
+
app_section = app_ini['App']
|
19
|
+
check_for_and_set_app_dir(app_section['Name'])
|
20
|
+
rewrite_plist(:name => app_section['Name'], :version => app_section['Version'], :id => app_section['ID'], :vendor => app_section['Vendor'])
|
21
|
+
generate_icon(:name => app_section['Name'])
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def check_for_and_set_app_dir(app_name)
|
27
|
+
app_dir = (@stub_dir + "#{app_name}.app")
|
28
|
+
raise "Stub App dir for #{app_name} does not exist." unless app_dir.exist?
|
29
|
+
@app_dir = app_dir
|
30
|
+
end
|
31
|
+
|
32
|
+
def rewrite_plist(options)
|
33
|
+
existing_plist = Plist::parse_xml((@app_dir + "Contents/Info.plist").to_s)
|
34
|
+
existing_plist['CFBundleGetInfoString'] = "%s %s © #{Date.today.year} %s" % options.values_at(:name, :version, :vendor)
|
35
|
+
existing_plist['CFBundleIconFile'] = options[:name].downcase
|
36
|
+
existing_plist['CFBundleIdentifier'] = appleize_id(options[:id])
|
37
|
+
existing_plist['CFBundleName'] = options[:name]
|
38
|
+
existing_plist['CFBundleShortVersionString'] = options[:version]
|
39
|
+
existing_plist['CFBundleVersion'] = options[:version]
|
40
|
+
existing_plist.save_plist((@app_dir + "Contents/Info.plist").to_s)
|
41
|
+
end
|
42
|
+
|
43
|
+
def appleize_id(mozilla_vendor)
|
44
|
+
mozilla_vendor.sub('@', '.').split('.').reverse.collect {|p| p.downcase}.join('.')
|
45
|
+
end
|
46
|
+
|
47
|
+
def generate_icon(options)
|
48
|
+
converter_installed = system("which", IconConverter)
|
49
|
+
if converter_installed
|
50
|
+
icon_file = @xul_app_path + IconPath
|
51
|
+
return nil unless icon_file.exist?
|
52
|
+
system(IconConverter, (@app_dir + "Contents/Resources" + "#{options[:name].downcase}.icns").expand_path.to_s, icon_file.expand_path.to_s)
|
53
|
+
else
|
54
|
+
puts "#{IconConverter} is not installed - install it to auto generate icons for Mac users."
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end # AppUpdater
|
59
|
+
end # StubAppHelpers
|
60
|
+
end # Building
|
61
|
+
end # XPCOMCore
|
@@ -1,12 +1,16 @@
|
|
1
1
|
require "xpcomcore-rubygem/commands/generate/jeweler_builder_command"
|
2
2
|
require 'uuidtools'
|
3
|
+
require 'fileutils'
|
3
4
|
|
4
5
|
module XPCOMCore
|
5
6
|
class CommandParser
|
6
7
|
class GenerateCommand
|
7
|
-
|
8
|
+
# TODO - move a bunch of stuff like gem_name and project_path to instance vars.
|
9
|
+
# Also move out the stub application copying stuff.
|
10
|
+
# Really, just clean this up in general.
|
8
11
|
class ApplicationCommand < JewelerBuilderCommand
|
9
12
|
BuilderTaskCode = "require 'xpcomcore-rubygem/tasks/application_task.rb'\nXPCOMCore::Tasks::ApplicationTask.new"
|
13
|
+
StubRoot = XPCOMCore::GemRoot + "ext/stub_runners"
|
10
14
|
|
11
15
|
def initialize
|
12
16
|
super('application', false) # Doesn't take subcommands
|
@@ -23,6 +27,18 @@ module XPCOMCore
|
|
23
27
|
add_xpcomcore_application_build_task(rakefile)
|
24
28
|
end
|
25
29
|
copy_template_application(gem_name, project_path)
|
30
|
+
copy_stub_application(gem_name, project_path)
|
31
|
+
end
|
32
|
+
|
33
|
+
# FIXME / TODO - we only know how to deal with Darwin stub apps for now.
|
34
|
+
# Also, this code is messy and crap.
|
35
|
+
def copy_stub_application(gem_name, project_path)
|
36
|
+
stub_app_name = gem_name.capitalize
|
37
|
+
dest_app = (project_path + "xpcomcore/stub_runners/#{stub_app_name}.app").expand_path
|
38
|
+
dest_app.mkpath
|
39
|
+
stub_app = (StubRoot + "darwin/StubApp.app").expand_path
|
40
|
+
FileUtils.cp_r(stub_app.to_s + "/.", dest_app.expand_path.to_s)
|
41
|
+
system(%Q[cd "#{project_path}" && rake version:write && rake xpcomcore:update_app])
|
26
42
|
end
|
27
43
|
|
28
44
|
def add_xpcomcore_application_build_task(rakefile)
|
@@ -2,6 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'xpcomcore-rubygem/commands'
|
3
3
|
require 'sys/uname'
|
4
4
|
require 'pathname'
|
5
|
+
require 'iniparse'
|
5
6
|
|
6
7
|
module XPCOMCore
|
7
8
|
class CommandParser
|
@@ -12,39 +13,102 @@ module XPCOMCore
|
|
12
13
|
reason 'Application not found'
|
13
14
|
end
|
14
15
|
|
15
|
-
class
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
16
|
+
class BaseLauncher
|
17
|
+
class XULRunnerNotFoundError < CmdParse::ParseError
|
18
|
+
reason 'XULRunner not found'
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(options)
|
22
|
+
@options = options
|
23
|
+
end
|
24
|
+
|
25
|
+
def launch
|
26
|
+
ENV['XPCOMCORE'] = ENV['XPCOMCORE'] || XPCOMCore::BootstrapperLocation.to_s
|
27
|
+
XPCOMCore::CommandParser.log("Using XPCOMCore bootstrapper at '#{ENV['XPCOMCORE']}'")
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def launch_xre(xre_location)
|
33
|
+
XPCOMCore::CommandParser.log("Launching XUL application using XULRunner '#{xre_location}' from '#{@options[:ini_path].expand_path}'")
|
34
|
+
exec(xre_location, *["-app", @options[:ini_path].expand_path.to_s, "-no-remote", *@options[:args]])
|
35
|
+
end
|
36
|
+
|
37
|
+
def raise_xulrunner_not_found(search_location, runner_type)
|
38
|
+
raise(XULRunnerNotFoundError, "Sorry, we couldn't find #{runner_type}. We checked in #{search_location} but it didn't seem to be there.")
|
39
|
+
end
|
40
|
+
|
41
|
+
end # BaseLauncher
|
30
42
|
|
31
|
-
|
32
|
-
|
33
|
-
|
43
|
+
class DarwinLauncher < BaseLauncher
|
44
|
+
StubLocationRelativeToIni = "../../stub_runners/%s.app"
|
45
|
+
|
46
|
+
def launch
|
47
|
+
super
|
48
|
+
xre_location = send(:"locate_#{@options[:runner_type]}")
|
49
|
+
if stub_location = find_stub
|
50
|
+
launch_from_stub(xre_location, stub_location)
|
51
|
+
else
|
52
|
+
launch_xre(xre_location)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def launch_from_stub(xre_location, stub_location)
|
59
|
+
ENV['REAL_EXECUTABLE'] = xre_location.to_s
|
60
|
+
XPCOMCore::CommandParser.log("Launching XUL application using stub '#{stub_location}' and XULRunner '#{xre_location}' from '#{@options[:ini_path].expand_path}'")
|
61
|
+
exec("open", stub_location.to_s, "-W", "--args", *["-app", @options[:ini_path].expand_path.to_s, "-no-remote", *@options[:args]])
|
62
|
+
end
|
63
|
+
|
64
|
+
def find_stub
|
65
|
+
parsed_ini = IniParse.parse(@options[:ini_path].read)
|
66
|
+
app_name = parsed_ini['App']['Name']
|
67
|
+
stub_path = (@options[:ini_path] + (StubLocationRelativeToIni % app_name)).expand_path
|
68
|
+
stub_path.exist? ? stub_path : nil
|
69
|
+
end
|
70
|
+
|
71
|
+
def locate_firefox
|
34
72
|
applications = `osascript -e 'POSIX path of (path to applications folder)'`.strip
|
35
|
-
firefox_bin = Pathname(applications) + "Firefox.app/Contents/MacOS/firefox-bin"
|
36
|
-
firefox_bin.exist? ? firefox_bin.
|
73
|
+
firefox_bin = (Pathname(applications) + "Firefox.app/Contents/MacOS/firefox-bin").expand_path
|
74
|
+
firefox_bin.exist? ? firefox_bin.to_s : raise_xulrunner_not_found(firefox_bin, "Firefox")
|
37
75
|
end
|
38
|
-
|
39
|
-
|
40
|
-
XULRunnerLocators[:xulrunner][:darwin] = XULRunnerLocators[:xulrunner][:unix] + [
|
41
|
-
lambda do
|
76
|
+
|
77
|
+
def locate_xulrunner
|
42
78
|
library = `osascript -e 'POSIX path of (path to library folder)'`.strip
|
43
|
-
xulrunner_bin = Pathname(library) + "Frameworks/XUL.framework/xulrunner-bin"
|
44
|
-
xulrunner_bin.exist? ? xulrunner_bin.
|
79
|
+
xulrunner_bin = (Pathname(library) + "Frameworks/XUL.framework/xulrunner-bin").expand_path
|
80
|
+
xulrunner_bin.exist? ? xulrunner_bin.to_s : raise_xulrunner_not_found(xulrunner_bin, "XULRunner")
|
45
81
|
end
|
46
|
-
]
|
47
82
|
|
83
|
+
end # DarwinLauncher
|
84
|
+
|
85
|
+
class LinuxLauncher < BaseLauncher
|
86
|
+
|
87
|
+
def launch
|
88
|
+
xre_location = send(:"locate_#{@options[:runner_type]}")
|
89
|
+
launch_xre(xre_location)
|
90
|
+
end
|
91
|
+
|
92
|
+
private
|
93
|
+
|
94
|
+
def locate_firefox
|
95
|
+
firefox_bin = [`which firefox-bin`, `which firefox`].detect do |path|
|
96
|
+
!path.strip.empty?
|
97
|
+
end
|
98
|
+
firefox_bin ? firefox_bin.strip : raise_xulrunner_not_found("$PATH", "Firefox")
|
99
|
+
end
|
100
|
+
|
101
|
+
def locate_xulrunner
|
102
|
+
xulrunner_bin = [`which xulrunner-bin`, `which xulrunner`].detect do |path|
|
103
|
+
!path.strip.empty?
|
104
|
+
end
|
105
|
+
xulrunner_bin ? xulrunner_bin.strip : raise_xulrunner_not_found("$PATH", "XULRunner")
|
106
|
+
end
|
107
|
+
|
108
|
+
end # LinuxLauncher
|
109
|
+
|
110
|
+
GemAppRelativePath = "xpcomcore/app/application.ini"
|
111
|
+
CurrentPlatform = Sys::Uname.sysname.downcase.to_sym
|
48
112
|
|
49
113
|
def initialize
|
50
114
|
super('launch', false, # Doesn't take subcommands
|
@@ -69,34 +133,19 @@ module XPCOMCore
|
|
69
133
|
end
|
70
134
|
|
71
135
|
def runner_type
|
72
|
-
use_xulrunner ? :xulrunner : :firefox
|
136
|
+
use_xulrunner? ? :xulrunner : :firefox
|
73
137
|
end
|
74
138
|
|
75
139
|
private
|
76
140
|
|
77
141
|
def launch_app(application_ini_path, args)
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
raise(XULRunnerNotFoundError, "A valid XULRunner executable could not be found.")
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
def set_env_and_launch(xulrunner_bin, application_ini, args)
|
88
|
-
ENV['XPCOMCORE'] = ENV['XPCOMCORE'] || XPCOMCore::BootstrapperLocation.to_s
|
89
|
-
XPCOMCore::CommandParser.log("Using XPCOMCore bootstrapper at '#{ENV['XPCOMCORE']}'")
|
90
|
-
exec(xulrunner_bin, *["-app", application_ini, *args])
|
142
|
+
launcher_class = self.class.const_get(:"#{CurrentPlatform.to_s.capitalize}Launcher")
|
143
|
+
launcher = launcher_class.new(:ini_path => application_ini_path, :runner_type => runner_type, :args => args)
|
144
|
+
launcher.launch
|
145
|
+
rescue NameError => e
|
146
|
+
puts "Probably couldn't get a launcher for your platform. Sorry. #{e}"
|
91
147
|
end
|
92
|
-
|
93
|
-
def find_xulrunner
|
94
|
-
XULRunnerLocators[runner_type][CurrentPlatform].any? do |locator|
|
95
|
-
location = locator.call.strip
|
96
|
-
location.empty? ? nil : (break(location))
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
148
|
+
|
100
149
|
def find_app(app_path)
|
101
150
|
fs_path = Pathname(Dir.pwd) + app_path + "application.ini"
|
102
151
|
if fs_path.exist?
|
@@ -1,14 +1,17 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'xpcomcore-rubygem'
|
3
3
|
require 'uuidtools'
|
4
|
+
require 'xpcomcore-rubygem/building/stub_app_helpers'
|
4
5
|
|
6
|
+
# TODO - update this to use iniparse.
|
5
7
|
module XPCOMCore
|
6
8
|
module Tasks
|
7
9
|
class ApplicationTask
|
8
|
-
|
10
|
+
AppLocation = "xpcomcore/app"
|
11
|
+
IniLocation = "#{AppLocation}/application.ini"
|
9
12
|
|
10
|
-
def initialize(task_name = "xpcomcore:
|
11
|
-
desc("Updates the embedded XUL application's application.ini file for release.")
|
13
|
+
def initialize(task_name = "xpcomcore:update_app")
|
14
|
+
desc("Updates the embedded XUL application's application.ini file for release and generates any stub apps necessary.")
|
12
15
|
task(task_name) { self.invoke }
|
13
16
|
# Adds this as a dependency to gemspec so it updates along with it.
|
14
17
|
task(:gemspec => task_name)
|
@@ -21,10 +24,17 @@ module XPCOMCore
|
|
21
24
|
write_build_id(f)
|
22
25
|
write_version(f)
|
23
26
|
end
|
27
|
+
update_stub_app
|
24
28
|
end
|
25
29
|
|
26
30
|
private
|
27
31
|
|
32
|
+
def update_stub_app
|
33
|
+
updater = XPCOMCore::Building::StubAppHelpers::AppUpdater.new(:xul_app_path => Pathname(AppLocation).expand_path,
|
34
|
+
:stub_dir => Pathname("xpcomcore/stub_runners").expand_path)
|
35
|
+
updater.update
|
36
|
+
end
|
37
|
+
|
28
38
|
def write_build_id(file)
|
29
39
|
file.rewind
|
30
40
|
contents = file.read
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
2
|
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
3
3
|
|
4
|
-
<window id="
|
4
|
+
<window id="main_window" title="My App" width="300" height="300" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
5
5
|
<caption label="Hello World from <%=@app_name%>"/>
|
6
6
|
</window>
|
Binary file
|
@@ -1,7 +1,7 @@
|
|
1
|
-
gem 'xultestrunner'
|
2
|
-
require 'xultestrunner/test_task'
|
3
|
-
XULTestRunner::TestTask.new(<%=@task_name.inspect%>) do |test|
|
4
|
-
<% @test_libs.each do |test_lib|%>test.libs << <%=test_lib.inspect%>
|
5
|
-
<% end %>
|
6
|
-
test.pattern = <%= @test_pattern.inspect %>
|
7
|
-
end
|
1
|
+
#gem 'xultestrunner'
|
2
|
+
#require 'xultestrunner/test_task'
|
3
|
+
#XULTestRunner::TestTask.new(<%=@task_name.inspect%>) do |test|
|
4
|
+
# <% @test_libs.each do |test_lib|%>test.libs << <%=test_lib.inspect%>
|
5
|
+
# <% end %>
|
6
|
+
# test.pattern = <%= @test_pattern.inspect %>
|
7
|
+
#end
|
data/xpcomcore/Rakefile
CHANGED
@@ -8,8 +8,8 @@ require 'english'
|
|
8
8
|
here = (Pathname(__FILE__).parent.expand_path)
|
9
9
|
|
10
10
|
task :test do
|
11
|
-
ENV['XPCOMCORE'] = Pathname(__FILE__).parent.expand_path.to_s
|
12
|
-
exec(ENV['XULTEST'] || "xultest", "-testDir", (Pathname(__FILE__).parent + "test/").expand_path.to_s)
|
11
|
+
ENV['XPCOMCORE'] = (Pathname(__FILE__).parent.expand_path + "bootstrapper.js").to_s
|
12
|
+
exec(ENV['XULTEST'] || "xultest", "--", "-testDir", (Pathname(__FILE__).parent + "test/").expand_path.to_s)
|
13
13
|
end
|
14
14
|
|
15
15
|
task :default => :test
|
@@ -20,7 +20,7 @@ namespace :docs do
|
|
20
20
|
|
21
21
|
JsDocToolkit::DocTask.new(:build) do |doc|
|
22
22
|
doc.jsdoc_dir = 'doc'
|
23
|
-
doc.jsdoc_files
|
23
|
+
doc.jsdoc_files << 'lib'
|
24
24
|
end
|
25
25
|
|
26
26
|
task :clean do
|
@@ -1,5 +1,5 @@
|
|
1
1
|
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
2
|
-
var XPCOMCoreVersion = '0.5.
|
2
|
+
var XPCOMCoreVersion = '0.5.2'; // DO NOT REMOVE THIS COMMENT OR MOVE THIS LINE. THIS LINE IS AUTO-GENERATED FROM A RAKE TASK. @XPCOMCORE_VERSION@
|
3
3
|
const $Cc = Components.classes;
|
4
4
|
const $Ci = Components.interfaces;
|
5
5
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
2
|
+
const Cc = Components.classes;
|
3
|
+
const Ci = Components.interfaces;
|
4
|
+
|
5
|
+
var XPCOMCoreCommandLineHandler = function() {
|
6
|
+
if (arguments.callee.__singletonInstance__) { return arguments.callee.__singletonInstance__; };
|
7
|
+
this.wrappedJSObject = this;
|
8
|
+
arguments.callee.__singletonInstance__ = this;
|
9
|
+
};
|
10
|
+
|
11
|
+
XPCOMCoreCommandLineHandler.prototype = {
|
12
|
+
args: [],
|
13
|
+
classDescription: "XPCOMCore Command Line Handler",
|
14
|
+
contractID: "@conflagrationjs.org/xpcomcore/generic-command-line-handler-clh;1",
|
15
|
+
classID: Components.ID("{b5730df0-b859-11de-8a39-0800200c9a66}"),
|
16
|
+
helpInfo: "",
|
17
|
+
QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsICommandLineHandler]),
|
18
|
+
_xpcom_categories: [{category: "command-line-handler", entry: "a-xpcomcore"}],
|
19
|
+
|
20
|
+
handle: function(cmdLine) {
|
21
|
+
for (var i = 0; i < cmdLine.length; i++) { this.args.push(cmdLine.getArgument(i)); }
|
22
|
+
}
|
23
|
+
|
24
|
+
};
|
25
|
+
|
26
|
+
NSGetModule = function(compMgr, fileSpec) {
|
27
|
+
return XPCOMUtils.generateModule([XPCOMCoreCommandLineHandler]);
|
28
|
+
};
|
data/xpcomcore/doc/files.html
CHANGED
@@ -269,7 +269,7 @@ This file defines the implementation of our File object.
|
|
269
269
|
</div>
|
270
270
|
<div class="fineprint" style="clear:both">
|
271
271
|
|
272
|
-
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.3.2 on
|
272
|
+
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.3.2 on Tue Oct 13 2009 19:57:08 GMT-0500 (CDT)
|
273
273
|
</div>
|
274
274
|
</body>
|
275
275
|
</html>
|
data/xpcomcore/doc/index.html
CHANGED
@@ -269,7 +269,7 @@ build the rest of XPCOMCore on top of.
|
|
269
269
|
</div>
|
270
270
|
<div class="fineprint" style="clear:both">
|
271
271
|
|
272
|
-
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.3.2 on
|
272
|
+
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.3.2 on Tue Oct 13 2009 19:57:08 GMT-0500 (CDT)
|
273
273
|
</div>
|
274
274
|
</body>
|
275
275
|
</html>
|
@@ -259,7 +259,7 @@ ul.inheritsList
|
|
259
259
|
<!-- ============================== footer ================================= -->
|
260
260
|
<div class="fineprint" style="clear:both">
|
261
261
|
|
262
|
-
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on
|
262
|
+
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on Tue Oct 13 2009 19:57:08 GMT-0500 (CDT)
|
263
263
|
</div>
|
264
264
|
</body>
|
265
265
|
</html>
|
@@ -259,7 +259,7 @@ ul.inheritsList
|
|
259
259
|
<!-- ============================== footer ================================= -->
|
260
260
|
<div class="fineprint" style="clear:both">
|
261
261
|
|
262
|
-
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on
|
262
|
+
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on Tue Oct 13 2009 19:57:08 GMT-0500 (CDT)
|
263
263
|
</div>
|
264
264
|
</body>
|
265
265
|
</html>
|
@@ -446,7 +446,7 @@ from the specified file
|
|
446
446
|
<!-- ============================== footer ================================= -->
|
447
447
|
<div class="fineprint" style="clear:both">
|
448
448
|
|
449
|
-
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on
|
449
|
+
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on Tue Oct 13 2009 19:57:08 GMT-0500 (CDT)
|
450
450
|
</div>
|
451
451
|
</body>
|
452
452
|
</html>
|
@@ -329,7 +329,7 @@ ul.inheritsList
|
|
329
329
|
<!-- ============================== footer ================================= -->
|
330
330
|
<div class="fineprint" style="clear:both">
|
331
331
|
|
332
|
-
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on
|
332
|
+
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on Tue Oct 13 2009 19:57:08 GMT-0500 (CDT)
|
333
333
|
</div>
|
334
334
|
</body>
|
335
335
|
</html>
|
@@ -363,6 +363,15 @@ have been loaded through <a href="../symbols/kernel.html#require">Kernel#require
|
|
363
363
|
</thead>
|
364
364
|
<tbody>
|
365
365
|
|
366
|
+
<tr>
|
367
|
+
<td class="attributes"> </td>
|
368
|
+
<td class="nameDescription">
|
369
|
+
<div class="fixedFont"><b><a href="../symbols/kernel.html#$ARGV">$ARGV</a></b>()
|
370
|
+
</div>
|
371
|
+
<div class="description">Returns the command line arguments this instance of the GRE was started with.</div>
|
372
|
+
</td>
|
373
|
+
</tr>
|
374
|
+
|
366
375
|
<tr>
|
367
376
|
<td class="attributes"> </td>
|
368
377
|
<td class="nameDescription">
|
@@ -676,6 +685,40 @@ have been loaded through <a href="../symbols/kernel.html#require">Kernel#require
|
|
676
685
|
Method Detail
|
677
686
|
</div>
|
678
687
|
|
688
|
+
<a name="$ARGV"> </a>
|
689
|
+
<div class="fixedFont">
|
690
|
+
|
691
|
+
<span class="light">{Array}</span>
|
692
|
+
<b>$ARGV</b>()
|
693
|
+
|
694
|
+
</div>
|
695
|
+
<div class="description">
|
696
|
+
Returns the command line arguments this instance of the GRE was started with.
|
697
|
+
NOTE: This doesn't play nicely with remoting to existing instances, but for now,
|
698
|
+
we don't really care about that.
|
699
|
+
|
700
|
+
|
701
|
+
</div>
|
702
|
+
|
703
|
+
|
704
|
+
|
705
|
+
|
706
|
+
|
707
|
+
|
708
|
+
|
709
|
+
|
710
|
+
<dl class="detailList">
|
711
|
+
<dt class="heading">Returns:</dt>
|
712
|
+
|
713
|
+
<dd><span class="light fixedFont">{Array}</span> </dd>
|
714
|
+
|
715
|
+
</dl>
|
716
|
+
|
717
|
+
|
718
|
+
|
719
|
+
|
720
|
+
<hr />
|
721
|
+
|
679
722
|
<a name="$CURRENT_DIRECTORY"> </a>
|
680
723
|
<div class="fixedFont">
|
681
724
|
|
@@ -1093,7 +1136,7 @@ in <a href="../symbols/kernel.html#$LOAD_PATH">Kernel#$LOAD_PATH</a>.</dd>
|
|
1093
1136
|
<!-- ============================== footer ================================= -->
|
1094
1137
|
<div class="fineprint" style="clear:both">
|
1095
1138
|
|
1096
|
-
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on
|
1139
|
+
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on Tue Oct 13 2009 19:57:08 GMT-0500 (CDT)
|
1097
1140
|
</div>
|
1098
1141
|
</body>
|
1099
1142
|
</html>
|
@@ -329,7 +329,7 @@ ul.inheritsList
|
|
329
329
|
<!-- ============================== footer ================================= -->
|
330
330
|
<div class="fineprint" style="clear:both">
|
331
331
|
|
332
|
-
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on
|
332
|
+
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on Tue Oct 13 2009 19:57:08 GMT-0500 (CDT)
|
333
333
|
</div>
|
334
334
|
</body>
|
335
335
|
</html>
|
@@ -329,7 +329,7 @@ ul.inheritsList
|
|
329
329
|
<!-- ============================== footer ================================= -->
|
330
330
|
<div class="fineprint" style="clear:both">
|
331
331
|
|
332
|
-
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on
|
332
|
+
Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.3.2 on Tue Oct 13 2009 19:57:08 GMT-0500 (CDT)
|
333
333
|
</div>
|
334
334
|
</body>
|
335
335
|
</html>
|