youpy-newextension 0.1.0 → 0.1.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.
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 => [:create_chrome_jar, :create_chrome_manifest, :create_install_rdf] do
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 = 'default' unless 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>
@@ -2,7 +2,7 @@ module Newextension #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 0
5
+ TINY = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
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.0"
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-08-21}
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.0
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-08-21 00:00:00 -07:00
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