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 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