youpy-newextension 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +1 -0
- data/app_generators/newextension/newextension_generator.rb +1 -1
- data/app_generators/newextension/templates/Rakefile +66 -4
- data/app_generators/newextension/templates/update.rdf +13 -0
- data/lib/newextension/version.rb +1 -1
- data/newextension.gemspec +3 -3
- data/test/test_newextension_generator.rb +1 -0
- metadata +3 -2
data/Manifest.txt
CHANGED
@@ -11,6 +11,7 @@ app_generators/newextension/templates/chrome.manifest
|
|
11
11
|
app_generators/newextension/templates/chrome/content/__extension__.js
|
12
12
|
app_generators/newextension/templates/chrome/content/overlay.xul
|
13
13
|
app_generators/newextension/templates/install.rdf
|
14
|
+
app_generators/newextension/templates/update.rdf
|
14
15
|
bin/newextension
|
15
16
|
bin/newextension.orig
|
16
17
|
config/hoe.rb
|
@@ -34,7 +34,7 @@ class NewextensionGenerator < RubiGen::Base
|
|
34
34
|
BASEDIRS.each { |path| m.directory path }
|
35
35
|
|
36
36
|
# Create stubs
|
37
|
-
m.template_copy_each %w[chrome.manifest Rakefile install.rdf]
|
37
|
+
m.template_copy_each %w[chrome.manifest Rakefile install.rdf update.rdf]
|
38
38
|
m.template_copy_each %w[overlay.xul], "chrome/content"
|
39
39
|
m.template "chrome/content/__extension__.js", "chrome/content/#{package_name.camelize}.js"
|
40
40
|
|
@@ -1,9 +1,13 @@
|
|
1
1
|
# based on: http://gravelog.blogspot.com/2007/03/using-rake-to-build-firefox-extensions_04.html
|
2
2
|
require 'rexml/document'
|
3
|
+
require 'digest/sha1'
|
4
|
+
|
3
5
|
include REXML
|
6
|
+
include FileUtils::Verbose
|
4
7
|
|
5
|
-
EXTENSION_NAME="<%=extension_name%>"
|
8
|
+
EXTENSION_NAME="<%= extension_name %>"
|
6
9
|
BUILD_DIR="build/#{EXTENSION_NAME}"
|
10
|
+
UPDATE_LINK="" # URL for updated xpi
|
7
11
|
|
8
12
|
directory "#{BUILD_DIR}/chrome"
|
9
13
|
task :create_buildchrome_dir => ["#{BUILD_DIR}/chrome"]
|
@@ -26,13 +30,29 @@ file "#{BUILD_DIR}/install.rdf" => [:create_buildchrome_dir] do
|
|
26
30
|
end
|
27
31
|
task :create_install_rdf => ["#{BUILD_DIR}/install.rdf"]
|
28
32
|
|
33
|
+
%w(defaults components modules).each do |dir|
|
34
|
+
if File.directory?(dir)
|
35
|
+
dst_dir = "#{BUILD_DIR}/#{dir}"
|
36
|
+
|
37
|
+
desc "prepare the #{dir} directory"
|
38
|
+
file "#{BUILD_DIR}/#{dir}" => [:create_buildchrome_dir] do
|
39
|
+
cp_r dir, dst_dir
|
40
|
+
end
|
41
|
+
task :create_extra_directories => dst_dir
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
29
45
|
desc "create the chrome jar file"
|
30
46
|
task :create_chrome_jar => [:create_buildchrome_dir] do
|
31
47
|
sh "cd chrome && zip -qr -0 ../#{BUILD_DIR}/chrome/#{EXTENSION_NAME}.jar * -x \*.svn\*"
|
32
48
|
end
|
33
49
|
|
34
50
|
desc "create the xpi file and use the version number in the file name"
|
35
|
-
task :create_extension_xpi => [
|
51
|
+
task :create_extension_xpi => [
|
52
|
+
:create_install_rdf,
|
53
|
+
:create_chrome_manifest,
|
54
|
+
:create_extra_directories,
|
55
|
+
:create_chrome_jar] do
|
36
56
|
install_rdf_file = File.new('install.rdf','r')
|
37
57
|
install_rdf_xmldoc = Document.new(install_rdf_file)
|
38
58
|
version_number = ""
|
@@ -44,9 +64,36 @@ task :create_extension_xpi => [:create_chrome_jar, :create_chrome_manifest, :cre
|
|
44
64
|
rm_rf "build"
|
45
65
|
end
|
46
66
|
|
67
|
+
desc "update update.rdf"
|
68
|
+
task :update_update_manifest => [:create_extension_xpi] do
|
69
|
+
update_rdf_xmldoc = nil
|
70
|
+
|
71
|
+
File.open('update.rdf','r') do |f|
|
72
|
+
update_rdf_xmldoc = Document.new(f.read)
|
73
|
+
|
74
|
+
update_rdf_xmldoc.elements.each('//RDF:Description') do |element|
|
75
|
+
if element.attributes['em:version']
|
76
|
+
element.attributes['em:version'] = version_number
|
77
|
+
end
|
78
|
+
|
79
|
+
if element.attributes['em:updateHash']
|
80
|
+
element.attributes['em:updateHash'] = 'sha1:' + Digest::SHA1.hexdigest(open(xpi_filename).read)
|
81
|
+
end
|
82
|
+
|
83
|
+
if element.attributes['em:updateLink']
|
84
|
+
element.attributes['em:updateLink'] = UPDATE_LINK
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
File.open('update.rdf','w') do |f|
|
89
|
+
update_rdf_xmldoc.write(f)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
47
94
|
desc "install to local profile directory"
|
48
95
|
task :install do
|
49
|
-
File.open("#{firefox_profile_dir}/extensions/#{extension_id}", 'w') do |f|
|
96
|
+
File.open("#{firefox_profile_dir(ENV['NAME'])}/extensions/#{extension_id}", 'w') do |f|
|
50
97
|
f.puts(Dir.pwd)
|
51
98
|
end
|
52
99
|
end
|
@@ -56,8 +103,10 @@ task :uninstall do
|
|
56
103
|
File.unlink("#{firefox_profile_dir}/extensions/#{extension_id}")
|
57
104
|
end
|
58
105
|
|
106
|
+
task :default => :create_extension_xpi
|
107
|
+
|
59
108
|
def firefox_profile_dir(name = nil)
|
60
|
-
name
|
109
|
+
name ||= 'default'
|
61
110
|
|
62
111
|
base =
|
63
112
|
case RUBY_PLATFORM
|
@@ -86,3 +135,16 @@ def extension_id
|
|
86
135
|
end
|
87
136
|
end
|
88
137
|
end
|
138
|
+
|
139
|
+
def version_number
|
140
|
+
open('install.rdf') do |f|
|
141
|
+
install_rdf_xmldoc = Document.new(f.read)
|
142
|
+
install_rdf_xmldoc.elements.each('RDF/Description/em:version') do |element|
|
143
|
+
return element.text
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
def xpi_filename
|
149
|
+
"#{EXTENSION_NAME}-#{version_number}-fx.xpi"
|
150
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version='1.0'?>
|
2
|
+
<RDF:RDF xmlns:em='http://www.mozilla.org/2004/em-rdf#' xmlns:RDF='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:NC='http://home.netscape.com/NC-rdf#'>
|
3
|
+
<RDF:Seq RDF:about='rdf:#$KMQtH3'>
|
4
|
+
<RDF:li RDF:resource='rdf:#$LMQtH3'/>
|
5
|
+
</RDF:Seq>
|
6
|
+
<RDF:Description em:version='<%= version %>' RDF:about='rdf:#$LMQtH3'>
|
7
|
+
<em:targetApplication RDF:resource='rdf:#$OMQtH3'/>
|
8
|
+
</RDF:Description>
|
9
|
+
<RDF:Description RDF:about='urn:mozilla:extension:{<%= uuid %>}'>
|
10
|
+
<em:updates RDF:resource='rdf:#$KMQtH3'/>
|
11
|
+
</RDF:Description>
|
12
|
+
<RDF:Description em:updateHash='' em:maxVersion='3.0.*' em:updateLink='' em:id='{ec8030f7-c20a-464f-9b0e-13a3a9e97384}' RDF:about='rdf:#$OMQtH3' em:minVersion='2.0'/>
|
13
|
+
</RDF:RDF>
|
data/lib/newextension/version.rb
CHANGED
data/newextension.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{newextension}
|
3
|
-
s.version = "0.1.
|
3
|
+
s.version = "0.1.2"
|
4
4
|
|
5
5
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
6
|
s.authors = ["youpy"]
|
7
|
-
s.date = %q{2008-
|
7
|
+
s.date = %q{2008-11-05}
|
8
8
|
s.description = %q{Create a Firefox extension skeleton}
|
9
9
|
s.email = ["youpy@buycheapviagraonlinenow.com"]
|
10
10
|
s.executables = ["newextension", "newextension.orig"]
|
11
11
|
s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt"]
|
12
|
-
s.files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "app_generators/newextension/USAGE", "app_generators/newextension/newextension_generator.rb", "app_generators/newextension/templates/Rakefile", "app_generators/newextension/templates/chrome.manifest", "app_generators/newextension/templates/chrome/content/__extension__.js", "app_generators/newextension/templates/chrome/content/overlay.xul", "app_generators/newextension/templates/install.rdf", "bin/newextension", "bin/newextension.orig", "config/hoe.rb", "config/requirements.rb", "lib/newextension.rb", "lib/newextension/version.rb", "newextension.gemspec", "script/console", "script/destroy", "script/generate", "setup.rb", "tasks/deployment.rake", "tasks/environment.rake", "tasks/website.rake", "test/test_generator_helper.rb", "test/test_helper.rb", "test/test_newextension.rb", "test/test_newextension_generator.rb"]
|
12
|
+
s.files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "app_generators/newextension/USAGE", "app_generators/newextension/newextension_generator.rb", "app_generators/newextension/templates/Rakefile", "app_generators/newextension/templates/chrome.manifest", "app_generators/newextension/templates/chrome/content/__extension__.js", "app_generators/newextension/templates/chrome/content/overlay.xul", "app_generators/newextension/templates/install.rdf", "app_generators/newextension/templates/update.rdf", "bin/newextension", "bin/newextension.orig", "config/hoe.rb", "config/requirements.rb", "lib/newextension.rb", "lib/newextension/version.rb", "newextension.gemspec", "script/console", "script/destroy", "script/generate", "setup.rb", "tasks/deployment.rake", "tasks/environment.rake", "tasks/website.rake", "test/test_generator_helper.rb", "test/test_helper.rb", "test/test_newextension.rb", "test/test_newextension_generator.rb"]
|
13
13
|
s.has_rdoc = true
|
14
14
|
s.homepage = %q{http://newextension.rubyforge.org}
|
15
15
|
s.post_install_message = %q{}
|
@@ -31,6 +31,7 @@ class TestNewextensionGenerator < Test::Unit::TestCase
|
|
31
31
|
assert_generated_file "chrome.manifest"
|
32
32
|
assert_generated_file "Rakefile"
|
33
33
|
assert_generated_file "install.rdf"
|
34
|
+
assert_generated_file "update.rdf"
|
34
35
|
assert_generated_file "chrome.manifest"
|
35
36
|
assert_generated_file "chrome/content/overlay.xul"
|
36
37
|
assert_generated_file "chrome/content/#{PROJECT_NAME.camelize}.js"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: youpy-newextension
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- youpy
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-11-05 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- app_generators/newextension/templates/chrome/content/__extension__.js
|
67
67
|
- app_generators/newextension/templates/chrome/content/overlay.xul
|
68
68
|
- app_generators/newextension/templates/install.rdf
|
69
|
+
- app_generators/newextension/templates/update.rdf
|
69
70
|
- bin/newextension
|
70
71
|
- bin/newextension.orig
|
71
72
|
- config/hoe.rb
|