youpy-newextension 0.0.2 → 0.1.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/Manifest.txt CHANGED
@@ -1,24 +1,31 @@
1
1
  History.txt
2
2
  License.txt
3
3
  Manifest.txt
4
- README.txt
4
+ PostInstall.txt
5
+ README.rdoc
5
6
  Rakefile
7
+ app_generators/newextension/USAGE
8
+ app_generators/newextension/newextension_generator.rb
9
+ app_generators/newextension/templates/Rakefile
10
+ app_generators/newextension/templates/chrome.manifest
11
+ app_generators/newextension/templates/chrome/content/__extension__.js
12
+ app_generators/newextension/templates/chrome/content/overlay.xul
13
+ app_generators/newextension/templates/install.rdf
6
14
  bin/newextension
15
+ bin/newextension.orig
7
16
  config/hoe.rb
8
17
  config/requirements.rb
9
18
  lib/newextension.rb
10
19
  lib/newextension/version.rb
20
+ newextension.gemspec
21
+ script/console
11
22
  script/destroy
12
23
  script/generate
13
24
  setup.rb
14
25
  tasks/deployment.rake
15
26
  tasks/environment.rake
16
27
  tasks/website.rake
17
- templates/chrome/content/__extension__.js
18
- templates/chrome/content/overlay.xul
19
- templates/chrome/skin
20
- templates/chrome.manifest
21
- templates/install.rdf
22
- templates/Rakefile
28
+ test/test_generator_helper.rb
23
29
  test/test_helper.rb
24
30
  test/test_newextension.rb
31
+ test/test_newextension_generator.rb
data/PostInstall.txt ADDED
File without changes
File without changes
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
1
  require 'config/requirements'
2
2
  require 'config/hoe' # setup Hoe + all gem configuration
3
3
 
4
- Dir['tasks/**/*.rake'].each { |rake| load rake }
4
+ Dir['tasks/**/*.rake'].each { |rake| load rake }
@@ -0,0 +1,5 @@
1
+ Description:
2
+
3
+
4
+ Usage:
5
+
@@ -0,0 +1,83 @@
1
+ begin
2
+ require 'rubygems'
3
+ rescue LoadError
4
+ # no rubygems to load, so we fail silently
5
+ end
6
+ require 'uuidtools'
7
+
8
+ class NewextensionGenerator < RubiGen::Base
9
+
10
+ DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
11
+ Config::CONFIG['ruby_install_name'])
12
+
13
+ default_options :author => "FIXME author",
14
+ :description => "FIXME Description about this extension",
15
+ :version => "0.0.1"
16
+
17
+ attr_reader :name, :author, :package_name, :description, :extension_name, :uuid, :version
18
+
19
+ def initialize(runtime_args, runtime_options = {})
20
+ super
21
+ usage if args.empty?
22
+ @destination_root = File.expand_path(args.shift)
23
+ @name = base_name
24
+ @extension_name = @name
25
+ @package_name = @extension_name.downcase.gsub(/[^a-z]/, '')
26
+ @uuid = UUID.random_create.to_s
27
+ extract_options
28
+ end
29
+
30
+ def manifest
31
+ record do |m|
32
+ # Ensure appropriate folder(s) exists
33
+ m.directory ''
34
+ BASEDIRS.each { |path| m.directory path }
35
+
36
+ # Create stubs
37
+ m.template_copy_each %w[chrome.manifest Rakefile install.rdf]
38
+ m.template_copy_each %w[overlay.xul], "chrome/content"
39
+ m.template "chrome/content/__extension__.js", "chrome/content/#{package_name.camelize}.js"
40
+
41
+ m.dependency "install_rubigen_scripts", [destination_root, 'newextension'],
42
+ :shebang => options[:shebang], :collision => :force
43
+ end
44
+ end
45
+
46
+ protected
47
+ def banner
48
+ <<-EOS
49
+ Creates a ...
50
+
51
+ USAGE: #{spec.name} name
52
+ EOS
53
+ end
54
+
55
+ def add_options!(opts)
56
+ opts.separator ''
57
+ opts.separator 'Options:'
58
+ # For each option below, place the default
59
+ # at the top of the file next to "default_options"
60
+ opts.on("-a", "--author=\"Your Name\"", String,
61
+ "The extension author's name",
62
+ "Default: none") { |x| options[:author] = x }
63
+ opts.on("-d", "--description=\"This extension does...\"", String,
64
+ "The description of the extension",
65
+ "Default: none") { |x| options[:description] = x }
66
+ opts.on("-v", "Show the #{File.basename($0)} version number and quit.")
67
+ opts.on("-V", "--version=VERSION", String,
68
+ "The version of new extension",
69
+ "Default: #{options[:version]}") { |x| options[:version] = x }
70
+ end
71
+
72
+ def extract_options
73
+ @author = options[:author]
74
+ @version = options[:version]
75
+ @description = options[:description]
76
+ end
77
+
78
+ # Installation skeleton. Intermediate directories are automatically
79
+ # created so don't sweat their absence here.
80
+ BASEDIRS = %w(
81
+ chrome/content
82
+ )
83
+ end
@@ -0,0 +1,2 @@
1
+ var <%= extension_name.camelize%> = function() {};
2
+ <%=extension_name.camelize%>.prototype = {};
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" ?>
2
+ <overlay id="<%= extension_name.camelize %>Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
3
+ <script type="application/x-javascript"
4
+ src="chrome://<%= package_name %>/content/<%= extension_name.camelize %>.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/
@@ -2,12 +2,12 @@
2
2
  <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3
3
  xmlns:em="http://www.mozilla.org/2004/em-rdf#">
4
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>
5
+ <em:id>{<%= uuid %>}</em:id>
6
+ <em:name><%= extension_name.camelize %></em:name>
7
+ <em:version><%= version %></em:version>
8
8
  <em:type>2</em:type>
9
- <em:description>Description about this extension</em:description>
10
- <em:creator><%=author%></em:creator>
9
+ <em:description><%= description %></em:description>
10
+ <em:creator><%= author %></em:creator>
11
11
  <em:targetApplication>
12
12
  <Description>
13
13
  <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
data/bin/newextension CHANGED
@@ -1,80 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
- #
3
- # Created on 2007-9-27.
4
- # Copyright (c) 2007. All rights reserved.
5
2
 
6
- begin
7
- require 'rubygems'
8
- rescue LoadError
9
- # no rubygems to load, so we fail silently
10
- end
11
-
12
- require 'optparse'
13
- require 'pathname'
14
- require 'fileutils'
15
- require 'uuidtools'
16
- require 'erb'
3
+ require 'rubygems'
4
+ require 'rubigen'
17
5
 
18
- include FileUtils
19
-
20
- def camelize(lower_case_and_underscored_word)
21
- lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
6
+ if %w(-v --version).include? ARGV.first
7
+ require 'newextension/version'
8
+ puts "#{File.basename($0)} #{Newextension::VERSION::STRING}"
9
+ exit(0)
22
10
  end
23
11
 
24
- OPTIONS = {
25
- :author => 'somebody',
26
- :version => '0.1',
27
- }
28
- MANDATORY_OPTIONS = %w( )
29
-
30
- extension_dir = nil
31
-
32
- parser = OptionParser.new do |opts|
33
- opts.banner = <<BANNER
34
- #{File.basename($0)}: create a Firefox extension skeleton
35
-
36
- Usage: #{File.basename($0)} [options] extension_dir
37
-
38
- Options are:
39
- BANNER
40
- opts.separator ""
41
- opts.on("-a", "--author=AUTHOR", String,
42
- "The author of new extension",
43
- "Default: #{OPTIONS[:author]}") { |OPTIONS[:author]| }
44
- opts.on("-V", "--version=VERSION", String,
45
- "The version of new extension",
46
- "Default: #{OPTIONS[:version]}") { |OPTIONS[:version]| }
47
- opts.on("-h", "--help",
48
- "Show this help message.") { puts opts; exit }
49
- opts.parse!(ARGV)
50
-
51
- extension_dir = Pathname.new(ARGV.shift).expand_path
52
-
53
- if MANDATORY_OPTIONS && MANDATORY_OPTIONS.find { |option| OPTIONS[option.to_sym].nil? }
54
- puts opts; exit
55
- end
56
- end
57
-
58
- author = OPTIONS[:author]
59
- version = OPTIONS[:version]
60
- uuid = UUID.random_create.to_s
61
-
62
- templates = Pathname.new(File.dirname(__FILE__)).realpath + '../templates'
63
- extension_name = extension_dir.basename.to_s
64
- package_name = extension_name.downcase.gsub(/[^a-z]/, '')
65
-
66
- cd templates do
67
- Pathname.glob('**/*').each do |filename|
68
- target = Pathname.new([extension_dir, filename].join('/')).expand_path
69
-
70
- if File.directory?(filename)
71
- mkdir_p target
72
- puts "create directory:\n\t#{target}"
73
- else
74
- open(target.to_s.gsub(/__extension__/, camelize(extension_name)), 'w') do |dst|
75
- dst.write(ERB.new(filename.read, $SAFE, '-').result(binding))
76
- puts "create: #{dst.path}"
77
- end
78
- end
79
- end
80
- end
12
+ require 'rubigen/scripts/generate'
13
+ source = RubiGen::PathSource.new(:application,
14
+ File.join(File.dirname(__FILE__), "../app_generators"))
15
+ RubiGen::Base.reset_sources
16
+ RubiGen::Base.append_sources source
17
+ RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'newextension')
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created on 2007-9-27.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ begin
7
+ require 'rubygems'
8
+ rescue LoadError
9
+ # no rubygems to load, so we fail silently
10
+ end
11
+
12
+ require 'optparse'
13
+ require 'pathname'
14
+ require 'fileutils'
15
+ require 'uuidtools'
16
+ require 'erb'
17
+
18
+ include FileUtils
19
+
20
+ def camelize(lower_case_and_underscored_word)
21
+ lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
22
+ end
23
+
24
+ OPTIONS = {
25
+ :author => 'somebody',
26
+ :version => '0.1',
27
+ }
28
+ MANDATORY_OPTIONS = %w( )
29
+
30
+ extension_dir = nil
31
+
32
+ parser = OptionParser.new do |opts|
33
+ opts.banner = <<BANNER
34
+ #{File.basename($0)}: create a Firefox extension skeleton
35
+
36
+ Usage: #{File.basename($0)} [options] extension_dir
37
+
38
+ Options are:
39
+ BANNER
40
+ opts.separator ""
41
+ opts.on("-a", "--author=AUTHOR", String,
42
+ "The author of new extension",
43
+ "Default: #{OPTIONS[:author]}") { |OPTIONS[:author]| }
44
+ opts.on("-V", "--version=VERSION", String,
45
+ "The version of new extension",
46
+ "Default: #{OPTIONS[:version]}") { |OPTIONS[:version]| }
47
+ opts.on("-h", "--help",
48
+ "Show this help message.") { puts opts; exit }
49
+ opts.parse!(ARGV)
50
+
51
+ extension_dir = Pathname.new(ARGV.shift).expand_path
52
+
53
+ if MANDATORY_OPTIONS && MANDATORY_OPTIONS.find { |option| OPTIONS[option.to_sym].nil? }
54
+ puts opts; exit
55
+ end
56
+ end
57
+
58
+ author = OPTIONS[:author]
59
+ version = OPTIONS[:version]
60
+ uuid = UUID.random_create.to_s
61
+
62
+ templates = Pathname.new(File.dirname(__FILE__)).realpath + '../templates'
63
+ extension_name = extension_dir.basename.to_s
64
+ package_name = extension_name.downcase.gsub(/[^a-z]/, '')
65
+
66
+ cd templates do
67
+ Pathname.glob('**/*').each do |filename|
68
+ target = Pathname.new([extension_dir, filename].join('/')).expand_path
69
+
70
+ if File.directory?(filename)
71
+ mkdir_p target
72
+ puts "create directory:\n\t#{target}"
73
+ else
74
+ open(target.to_s.gsub(/__extension__/, camelize(extension_name)), 'w') do |dst|
75
+ dst.write(ERB.new(filename.read, $SAFE, '-').result(binding))
76
+ puts "create: #{dst.path}"
77
+ end
78
+ end
79
+ end
80
+ end
data/config/hoe.rb CHANGED
@@ -7,6 +7,10 @@ GEM_NAME = 'newextension' # what ppl will type to install your gem
7
7
  RUBYFORGE_PROJECT = 'newextension' # The unix name for your project
8
8
  HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
9
9
  DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
10
+ EXTRA_DEPENDENCIES = [
11
+ ['uuidtools', '>= 1.0.3'],
12
+ ['rubigen', '>= 1.3.2']
13
+ ] # An array of rubygem dependencies [name, version]
10
14
 
11
15
  @config_file = "~/.rubyforge/user-config.yml"
12
16
  @config = nil
@@ -28,10 +32,7 @@ Run 'rubyforge setup' to prepare your env for access to Rubyforge
28
32
  end
29
33
 
30
34
 
31
- REV = nil
32
- # UNCOMMENT IF REQUIRED:
33
- # REV = `svn info`.each {|line| if line =~ /^Revision:/ then k,v = line.split(': '); break v.chomp; else next; end} rescue nil
34
- VERS = Newextension::VERSION::STRING + (REV ? ".#{REV}" : "")
35
+ VERS = Newextension::VERSION::STRING
35
36
  RDOC_OPTS = ['--quiet', '--title', 'newextension documentation',
36
37
  "--opname", "index.html",
37
38
  "--line-numbers",
@@ -47,25 +48,24 @@ end
47
48
 
48
49
  # Generate all the Rake tasks
49
50
  # Run 'rake -T' to see list of generated tasks (from gem root directory)
50
- hoe = Hoe.new(GEM_NAME, VERS) do |p|
51
- p.author = AUTHOR
51
+ $hoe = Hoe.new(GEM_NAME, VERS) do |p|
52
+ p.developer(AUTHOR, EMAIL)
52
53
  p.description = DESCRIPTION
53
- p.email = EMAIL
54
54
  p.summary = DESCRIPTION
55
55
  p.url = HOMEPATH
56
56
  p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
57
- p.extra_deps << ['uuidtools']
58
57
  p.test_globs = ["test/**/test_*.rb"]
59
58
  p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean.
60
59
 
61
60
  # == Optional
62
- p.changes = p.paragraphs_of("History.txt", 0..1).join("\\n\\n")
63
- #p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
61
+ p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
62
+ p.extra_deps = EXTRA_DEPENDENCIES
64
63
 
65
64
  #p.spec_extras = {} # A hash of extra values to set in the gemspec.
66
-
67
65
  end
68
66
 
69
- CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
67
+ CHANGES = $hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
70
68
  PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
71
- hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
69
+ $hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
70
+ $hoe.rsync_args = '-av --delete --ignore-errors'
71
+ $hoe.spec.post_install_message = File.open(File.dirname(__FILE__) + "/../PostInstall.txt").read rescue ""
@@ -1,8 +1,8 @@
1
1
  module Newextension #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 0
5
- TINY = 2
4
+ MINOR = 1
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/newextension.rb CHANGED
@@ -1,4 +1,5 @@
1
- $:.unshift File.dirname(__FILE__)
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
2
3
 
3
4
  module Newextension
4
5
 
@@ -0,0 +1,41 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = %q{newextension}
3
+ s.version = "0.1.0"
4
+
5
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
+ s.authors = ["youpy"]
7
+ s.date = %q{2008-08-21}
8
+ s.description = %q{Create a Firefox extension skeleton}
9
+ s.email = ["youpy@buycheapviagraonlinenow.com"]
10
+ s.executables = ["newextension", "newextension.orig"]
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"]
13
+ s.has_rdoc = true
14
+ s.homepage = %q{http://newextension.rubyforge.org}
15
+ s.post_install_message = %q{}
16
+ s.rdoc_options = ["--main", "README.txt"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = %q{newextension}
19
+ s.rubygems_version = %q{1.2.0}
20
+ s.summary = %q{Create a Firefox extension skeleton}
21
+ s.test_files = ["test/test_generator_helper.rb", "test/test_helper.rb", "test/test_newextension.rb", "test/test_newextension_generator.rb"]
22
+
23
+ if s.respond_to? :specification_version then
24
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
25
+ s.specification_version = 2
26
+
27
+ if current_version >= 3 then
28
+ s.add_runtime_dependency(%q<uuidtools>, [">= 1.0.3"])
29
+ s.add_runtime_dependency(%q<rubigen>, [">= 1.3.2"])
30
+ s.add_development_dependency(%q<hoe>, [">= 1.7.0"])
31
+ else
32
+ s.add_dependency(%q<uuidtools>, [">= 1.0.3"])
33
+ s.add_dependency(%q<rubigen>, [">= 1.3.2"])
34
+ s.add_dependency(%q<hoe>, [">= 1.7.0"])
35
+ end
36
+ else
37
+ s.add_dependency(%q<uuidtools>, [">= 1.0.3"])
38
+ s.add_dependency(%q<rubigen>, [">= 1.3.2"])
39
+ s.add_dependency(%q<hoe>, [">= 1.7.0"])
40
+ end
41
+ end
data/script/console ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+ # File: script/console
3
+ irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
4
+
5
+ libs = " -r irb/completion"
6
+ # Perhaps use a console_lib to store any extra methods I may want available in the cosole
7
+ # libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
8
+ libs << " -r #{File.dirname(__FILE__) + '/../lib/newextension.rb'}"
9
+ puts "Loading newextension gem"
10
+ exec "#{irb} #{libs} --simple-prompt"
data/script/destroy CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- APP_ROOT = File.join(File.dirname(__FILE__), '..')
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
3
 
4
4
  begin
5
5
  require 'rubigen'
@@ -10,5 +10,5 @@ end
10
10
  require 'rubigen/scripts/destroy'
11
11
 
12
12
  ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
- RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme]
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
14
  RubiGen::Scripts::Destroy.new.run(ARGV)
data/script/generate CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- APP_ROOT = File.join(File.dirname(__FILE__), '..')
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
3
 
4
4
  begin
5
5
  require 'rubigen'
@@ -10,5 +10,5 @@ end
10
10
  require 'rubigen/scripts/generate'
11
11
 
12
12
  ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
- RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme]
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
14
  RubiGen::Scripts::Generate.new.run(ARGV)
@@ -25,3 +25,10 @@ desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
25
  task :install_gem_no_doc => [:clean, :package] do
26
26
  sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
27
  end
28
+
29
+ namespace :manifest do
30
+ desc 'Recreate Manifest.txt to include ALL files'
31
+ task :refresh do
32
+ `rake check_manifest | patch -p0 > Manifest.txt`
33
+ end
34
+ end
data/tasks/website.rake CHANGED
@@ -1,9 +1,17 @@
1
- # stubs for the website generation
2
- # To install the website framework:
3
- # script/generate website
1
+ desc 'Generate website files'
2
+ task :website_generate => :ruby_env do
3
+ (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
4
+ sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
5
+ end
6
+ end
4
7
 
5
- task :website_generate
8
+ desc 'Upload website files to rubyforge'
9
+ task :website_upload do
10
+ host = "#{rubyforge_username}@rubyforge.org"
11
+ remote_dir = "/var/www/gforge-projects/#{PATH}/"
12
+ local_dir = 'website'
13
+ sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}}
14
+ end
6
15
 
7
- task :website_upload
8
-
9
- task :website => :publish_docs
16
+ desc 'Generate and upload website files'
17
+ task :website => [:website_generate, :website_upload, :publish_docs]
@@ -0,0 +1,29 @@
1
+ begin
2
+ require File.dirname(__FILE__) + '/test_helper'
3
+ rescue LoadError
4
+ require 'test/unit'
5
+ end
6
+ require 'fileutils'
7
+
8
+ # Must set before requiring generator libs.
9
+ TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
10
+ PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
11
+ app_root = File.join(TMP_ROOT, PROJECT_NAME)
12
+ if defined?(APP_ROOT)
13
+ APP_ROOT.replace(app_root)
14
+ else
15
+ APP_ROOT = app_root
16
+ end
17
+ if defined?(RAILS_ROOT)
18
+ RAILS_ROOT.replace(app_root)
19
+ else
20
+ RAILS_ROOT = app_root
21
+ end
22
+
23
+ begin
24
+ require 'rubigen'
25
+ rescue LoadError
26
+ require 'rubygems'
27
+ require 'rubigen'
28
+ end
29
+ require 'rubigen/helpers/generator_test_helper'
data/test/test_helper.rb CHANGED
@@ -1,17 +1,2 @@
1
1
  require 'test/unit'
2
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
@@ -1,43 +1,11 @@
1
- require 'fileutils'
2
- require 'pathname'
3
-
4
- include FileUtils
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
5
2
 
6
3
  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
4
 
15
- def teardown
16
- rm_rf @testdir
5
+ def setup
17
6
  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
7
+
8
+ def test_truth
9
+ assert true
42
10
  end
43
11
  end
@@ -0,0 +1,48 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+ class TestNewextensionGenerator < Test::Unit::TestCase
4
+ include RubiGen::GeneratorTestHelper
5
+
6
+ def setup
7
+ bare_setup
8
+ end
9
+
10
+ def teardown
11
+ bare_teardown
12
+ end
13
+
14
+ # Some generator-related assertions:
15
+ # assert_generated_file(name, &block) # block passed the file contents
16
+ # assert_directory_exists(name)
17
+ # assert_generated_class(name, &block)
18
+ # assert_generated_module(name, &block)
19
+ # assert_generated_test_for(name, &block)
20
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
21
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
22
+ #
23
+ # Other helper methods are:
24
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
25
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
26
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
27
+
28
+ def test_generator_without_options
29
+ run_generator('newextension', [APP_ROOT], sources)
30
+ assert_directory_exists "chrome/content"
31
+ assert_generated_file "chrome.manifest"
32
+ assert_generated_file "Rakefile"
33
+ assert_generated_file "install.rdf"
34
+ assert_generated_file "chrome.manifest"
35
+ assert_generated_file "chrome/content/overlay.xul"
36
+ assert_generated_file "chrome/content/#{PROJECT_NAME.camelize}.js"
37
+ end
38
+
39
+ private
40
+ def sources
41
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
42
+ ]
43
+ end
44
+
45
+ def generator_path
46
+ "app_generators"
47
+ end
48
+ end
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.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - youpy
@@ -9,8 +9,8 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-07-18 00:00:00 -07:00
13
- default_executable: newextension
12
+ date: 2008-08-21 00:00:00 -07:00
13
+ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: uuidtools
@@ -19,47 +19,74 @@ dependencies:
19
19
  requirements:
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: "0"
22
+ version: 1.0.3
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: rubigen
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.3.2
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: hoe
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.7.0
23
41
  version:
24
42
  description: Create a Firefox extension skeleton
25
- email: youpy@buycheapviagraonlinenow.com
43
+ email:
44
+ - youpy@buycheapviagraonlinenow.com
26
45
  executables:
27
46
  - newextension
47
+ - newextension.orig
28
48
  extensions: []
29
49
 
30
50
  extra_rdoc_files:
31
51
  - History.txt
32
52
  - License.txt
33
53
  - Manifest.txt
34
- - README.txt
54
+ - PostInstall.txt
35
55
  files:
36
56
  - History.txt
37
57
  - License.txt
38
58
  - Manifest.txt
39
- - README.txt
59
+ - PostInstall.txt
60
+ - README.rdoc
40
61
  - Rakefile
62
+ - app_generators/newextension/USAGE
63
+ - app_generators/newextension/newextension_generator.rb
64
+ - app_generators/newextension/templates/Rakefile
65
+ - app_generators/newextension/templates/chrome.manifest
66
+ - app_generators/newextension/templates/chrome/content/__extension__.js
67
+ - app_generators/newextension/templates/chrome/content/overlay.xul
68
+ - app_generators/newextension/templates/install.rdf
41
69
  - bin/newextension
70
+ - bin/newextension.orig
42
71
  - config/hoe.rb
43
72
  - config/requirements.rb
44
73
  - lib/newextension.rb
45
74
  - lib/newextension/version.rb
75
+ - newextension.gemspec
76
+ - script/console
46
77
  - script/destroy
47
78
  - script/generate
48
79
  - setup.rb
49
80
  - tasks/deployment.rake
50
81
  - tasks/environment.rake
51
82
  - 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
83
+ - test/test_generator_helper.rb
58
84
  - test/test_helper.rb
59
85
  - test/test_newextension.rb
86
+ - test/test_newextension_generator.rb
60
87
  has_rdoc: true
61
88
  homepage: http://newextension.rubyforge.org
62
- post_install_message:
89
+ post_install_message: ""
63
90
  rdoc_options:
64
91
  - --main
65
92
  - README.txt
@@ -85,5 +112,7 @@ signing_key:
85
112
  specification_version: 2
86
113
  summary: Create a Firefox extension skeleton
87
114
  test_files:
115
+ - test/test_generator_helper.rb
88
116
  - test/test_helper.rb
89
117
  - test/test_newextension.rb
118
+ - test/test_newextension_generator.rb
@@ -1,2 +0,0 @@
1
- var <%=camelize(extension_name)%> = function() {};
2
- <%=camelize(extension_name)%>.prototype = {};
@@ -1,8 +0,0 @@
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>
@@ -1,3 +0,0 @@
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/