youpy-newextension 0.0.1

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.
@@ -0,0 +1,27 @@
1
+ desc 'Release the website and new gem version'
2
+ task :deploy => [:check_version, :website, :release] do
3
+ puts "Remember to create SVN tag:"
4
+ puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
5
+ "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
6
+ puts "Suggested comment:"
7
+ puts "Tagging release #{CHANGES}"
8
+ end
9
+
10
+ desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
+ task :local_deploy => [:website_generate, :install_gem]
12
+
13
+ task :check_version do
14
+ unless ENV['VERSION']
15
+ puts 'Must pass a VERSION=x.y.z release version'
16
+ exit
17
+ end
18
+ unless ENV['VERSION'] == VERS
19
+ puts "Please update your version.rb to match the release version, currently #{VERS}"
20
+ exit
21
+ end
22
+ end
23
+
24
+ desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
+ task :install_gem_no_doc => [:clean, :package] do
26
+ sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
+ end
@@ -0,0 +1,7 @@
1
+ task :ruby_env do
2
+ RUBY_APP = if RUBY_PLATFORM =~ /java/
3
+ "jruby"
4
+ else
5
+ "ruby"
6
+ end unless defined? RUBY_APP
7
+ end
@@ -0,0 +1,9 @@
1
+ # stubs for the website generation
2
+ # To install the website framework:
3
+ # script/generate website
4
+
5
+ task :website_generate
6
+
7
+ task :website_upload
8
+
9
+ task :website => :publish_docs
@@ -0,0 +1,88 @@
1
+ # based on: http://gravelog.blogspot.com/2007/03/using-rake-to-build-firefox-extensions_04.html
2
+ require 'rexml/document'
3
+ include REXML
4
+
5
+ EXTENSION_NAME="<%=extension_name%>"
6
+ BUILD_DIR="build/#{EXTENSION_NAME}"
7
+
8
+ directory "#{BUILD_DIR}/chrome"
9
+ task :create_buildchrome_dir => ["#{BUILD_DIR}/chrome"]
10
+
11
+ desc "prepare the chrome.manifest file"
12
+ file "#{BUILD_DIR}/chrome.manifest" => [:create_buildchrome_dir] do
13
+ open("#{BUILD_DIR}/chrome.manifest",'w') do |infile|
14
+ open("chrome.manifest", "r") do |outfile|
15
+ while line = outfile.gets
16
+ infile.puts line.gsub(/chrome\//, "jar:chrome/#{EXTENSION_NAME}.jar!/")
17
+ end
18
+ end
19
+ end
20
+ end
21
+ task :create_chrome_manifest => ["#{BUILD_DIR}/chrome.manifest"]
22
+
23
+ desc "prepare the install.rdf file"
24
+ file "#{BUILD_DIR}/install.rdf" => [:create_buildchrome_dir] do
25
+ cp 'install.rdf', "#{BUILD_DIR}/install.rdf"
26
+ end
27
+ task :create_install_rdf => ["#{BUILD_DIR}/install.rdf"]
28
+
29
+ desc "create the chrome jar file"
30
+ task :create_chrome_jar => [:create_buildchrome_dir] do
31
+ sh "cd chrome && zip -qr -0 ../#{BUILD_DIR}/chrome/#{EXTENSION_NAME}.jar * -x \*.svn\*"
32
+ end
33
+
34
+ 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
36
+ install_rdf_file = File.new('install.rdf','r')
37
+ install_rdf_xmldoc = Document.new(install_rdf_file)
38
+ version_number = ""
39
+ install_rdf_xmldoc.elements.each('RDF/Description/em:version') do |element|
40
+ version_number = element.text
41
+ end
42
+
43
+ sh "cd #{BUILD_DIR} && zip -qr -9 ../../#{EXTENSION_NAME}-#{version_number}-fx.xpi *"
44
+ rm_rf "build"
45
+ end
46
+
47
+ desc "install to local profile directory"
48
+ task :install do
49
+ File.open("#{firefox_profile_dir}/extensions/#{extension_id}", 'w') do |f|
50
+ f.puts(Dir.pwd)
51
+ end
52
+ end
53
+
54
+ desc "uninstall from local profile directory"
55
+ task :uninstall do
56
+ File.unlink("#{firefox_profile_dir}/extensions/#{extension_id}")
57
+ end
58
+
59
+ def firefox_profile_dir(name = nil)
60
+ name = 'default' unless name
61
+
62
+ base =
63
+ case RUBY_PLATFORM
64
+ when /darwin/
65
+ '~/Library/Application Support/Firefox/profiles'
66
+ when /win/
67
+ '~/Application Data/Mozilla/Firefox/Profiles'
68
+ else
69
+ '~/.mozilla/firefox'
70
+ end
71
+
72
+ path = Dir.glob("#{File.expand_path(base)}/*.#{name}")
73
+
74
+ if path.length == 1
75
+ path.first
76
+ else
77
+ raise
78
+ end
79
+ end
80
+
81
+ def extension_id
82
+ open('install.rdf','r') do |file|
83
+ install_rdf_xmldoc = Document.new(file)
84
+ install_rdf_xmldoc.elements.each('RDF/Description/em:id') do |element|
85
+ return element.text
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,2 @@
1
+ var <%=camelize(extension_name)%> = function() {};
2
+ <%=camelize(extension_name)%>.prototype = {};
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" ?>
2
+ <overlay id="<%=camelize(extension_name)%>Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
3
+ <script type="application/x-javascript"
4
+ src="chrome://<%=package_name%>/content/<%=camelize(extension_name)%>.js" />
5
+ <menupopup id="menu_ToolsPopup">
6
+ <menuitem label='<%=extension_name%>' oncommand='alert("hello. this is <%=extension_name%>")'/>
7
+ </menupopup>
8
+ </overlay>
@@ -0,0 +1,3 @@
1
+ content <%=package_name%> chrome/content/
2
+ overlay chrome://browser/content/browser.xul chrome://<%=package_name%>/content/overlay.xul
3
+ skin <%=package_name%> classic/1.0 chrome/skin/
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0"?>
2
+ <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3
+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
4
+ <Description about="urn:mozilla:install-manifest">
5
+ <em:id>{<%=uuid%>}</em:id>
6
+ <em:name><%=camelize(extension_name)%></em:name>
7
+ <em:version><%=version%></em:version>
8
+ <em:type>2</em:type>
9
+ <em:description>Description about this extension</em:description>
10
+ <em:creator><%=author%></em:creator>
11
+ <em:targetApplication>
12
+ <Description>
13
+ <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
14
+ <em:minVersion>1.5</em:minVersion>
15
+ <em:maxVersion>3.0.*</em:maxVersion>
16
+ </Description>
17
+ </em:targetApplication>
18
+ </Description>
19
+ </RDF>
@@ -0,0 +1,17 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/newextension'
3
+
4
+ module Test::Unit::Assertions
5
+ def assert_file_contains(pattern, filename, message = '')
6
+ _wrap_assertion do
7
+ pattern = case(pattern)
8
+ when String
9
+ Regexp.new(Regexp.escape(pattern))
10
+ else
11
+ pattern
12
+ end
13
+ full_message = build_message(message, "content of file <?> expected to be =~\n<?>.", filename, pattern)
14
+ assert_block(full_message) { File.open(filename).read =~ pattern }
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,43 @@
1
+ require 'fileutils'
2
+ require 'pathname'
3
+
4
+ include FileUtils
5
+
6
+ class TestNewextension < Test::Unit::TestCase
7
+ def setup
8
+ @testdir = Pathname.new(File.dirname(__FILE__) + '/foo_extension')
9
+ system(Pathname.new(File.dirname(__FILE__)).realpath + '../bin/newextension',
10
+ '-a youpy',
11
+ '-V 0.11',
12
+ @testdir)
13
+ end
14
+
15
+ def teardown
16
+ rm_rf @testdir
17
+ end
18
+
19
+ def test_create
20
+ assert File.directory?(@testdir)
21
+ cd @testdir do
22
+ assert_equal([
23
+ 'chrome',
24
+ 'chrome/content',
25
+ 'chrome/content/FooExtension.js',
26
+ 'chrome/content/overlay.xul',
27
+ 'chrome/skin',
28
+ 'chrome.manifest',
29
+ 'install.rdf',
30
+ 'Rakefile',
31
+ ].sort, Dir['**/*'].sort)
32
+
33
+ assert_file_contains(/FooExtension/, 'chrome/content/FooExtension.js')
34
+ assert_file_contains(/FooExtension/, 'chrome/content/FooExtension.js')
35
+ assert_file_contains(/chrome:\/\/fooextension/, 'chrome/content/overlay.xul')
36
+ assert_file_contains(/FooExtensionOverlay/, 'chrome/content/overlay.xul')
37
+ assert_file_contains(/chrome:\/\/fooextension/, 'chrome.manifest')
38
+ assert_file_contains(/youpy/, 'install.rdf')
39
+ assert_file_contains(/0\.11/, 'install.rdf')
40
+ assert_file_contains(/EXTENSION_NAME="foo_extension"/, 'Rakefile')
41
+ end
42
+ end
43
+ end
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: youpy-newextension
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - youpy
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-07-17 00:00:00 -07:00
13
+ default_executable: newextension
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: uuidtools
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ version:
24
+ description: Create a Firefox extension skeleton
25
+ email: youpy@buycheapviagraonlinenow.com
26
+ executables:
27
+ - newextension
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - History.txt
32
+ - License.txt
33
+ - Manifest.txt
34
+ - README.txt
35
+ files:
36
+ - History.txt
37
+ - License.txt
38
+ - Manifest.txt
39
+ - README.txt
40
+ - Rakefile
41
+ - bin/newextension
42
+ - config/hoe.rb
43
+ - config/requirements.rb
44
+ - lib/newextension.rb
45
+ - lib/newextension/version.rb
46
+ - script/destroy
47
+ - script/generate
48
+ - setup.rb
49
+ - tasks/deployment.rake
50
+ - tasks/environment.rake
51
+ - tasks/website.rake
52
+ - templates/chrome/content/__extension__.js
53
+ - templates/chrome/content/overlay.xul
54
+ - templates/chrome/skin
55
+ - templates/chrome.manifest
56
+ - templates/install.rdf
57
+ - templates/Rakefile
58
+ - test/test_helper.rb
59
+ - test/test_newextension.rb
60
+ has_rdoc: true
61
+ homepage: http://newextension.rubyforge.org
62
+ post_install_message:
63
+ rdoc_options:
64
+ - --main
65
+ - README.txt
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: "0"
73
+ version:
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: "0"
79
+ version:
80
+ requirements: []
81
+
82
+ rubyforge_project: newextension
83
+ rubygems_version: 1.2.0
84
+ signing_key:
85
+ specification_version: 2
86
+ summary: Create a Firefox extension skeleton
87
+ test_files:
88
+ - test/test_helper.rb
89
+ - test/test_newextension.rb