pubba 0.7.2 → 0.8.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/.gitignore CHANGED
@@ -14,6 +14,4 @@ coverage
14
14
  pkg
15
15
 
16
16
  test/sinatra/app/assets/out
17
- test/sinatra/app/assets/js/*.js
18
- test/sinatra/app/assets/css/*.css
19
17
  test/sinatra/public
data/CHANGES CHANGED
@@ -1,5 +1,14 @@
1
1
  master
2
2
 
3
+ 0.7.2
4
+ * Support id attribute on style tag
5
+
6
+ 0.7.1
7
+ * Fix asset_host functionality
8
+ * Don't stop monitoring if compressor encounters error
9
+
10
+ 0.7.0
11
+
3
12
  * Conceptual change from Sinatra extension to generic library
4
13
  * Namespace changed from Sinatra::Pubba to Pubba
5
14
  * Change to configuration implementation
data/README.md CHANGED
@@ -253,4 +253,5 @@ Huge thanks to my company, [Primedia](http://primedia.com) for encouraging open
253
253
 
254
254
  I highly value contributions and will happily list all those who submit accepted pull requests.
255
255
 
256
+ [Blanton Black](https://github.com/blanton-black) : Id atttribute support on style tag
256
257
  [Chas Lemley](https://github.com/chaslemley) : YUI Compressor support
data/Rakefile CHANGED
@@ -1,3 +1,24 @@
1
+ module Prepare
2
+ def self.do
3
+ require File.join(File.dirname(__FILE__), 'lib', 'pubba')
4
+ require File.join(File.dirname(__FILE__), 'test', 'resources')
5
+
6
+ $>.print(">> Cleaning resources from public directories\n")
7
+ Resources.clean
8
+
9
+ Pubba.configure do |p|
10
+ p.config_file = Resources.pubba_config_file
11
+ p.public_folder = Resources.public_folder
12
+ p.asset_folder = Resources.asset_folder
13
+ p.r18n_folder = Resources.r18n_folder
14
+ end
15
+
16
+ $>.print(">> Processing assets")
17
+ Pubba::Site.process
18
+ end
19
+ end
20
+
21
+
1
22
  begin
2
23
  require 'bundler'
3
24
  Bundler::GemHelper.install_tasks
@@ -7,6 +28,7 @@ end
7
28
  require 'rake/testtask'
8
29
 
9
30
  Rake::TestTask.new('test') do |t|
31
+ Prepare.do
10
32
  t.libs << 'lib' << 'test'
11
33
  t.test_files = Dir.glob('test/**/test_*.rb')
12
34
  t.verbose = true
@@ -44,3 +66,5 @@ desc "Generate Documentation"
44
66
  task :doc => :yard
45
67
 
46
68
  task :default => 'test'
69
+
70
+
@@ -1,9 +1,67 @@
1
+ require 'octopi'
2
+
1
3
  module Pubba
2
4
  module Assets
3
5
  class Handler
4
- def self.asset(file)
5
- raise NotImplementedError
6
- end
6
+ class << self
7
+ include Octopi
8
+
9
+ def asset(file)
10
+ raise NotImplementedError
11
+ end
12
+
13
+ # @return path, ext Path and extension of resource
14
+ def get_external_resource(url)
15
+ path = ''
16
+ ext = ''
17
+
18
+ authenticated do
19
+ parts = url.split(':')
20
+ user = parts[1]
21
+ repo = parts[2]
22
+ tag = parts[3]
23
+ file = parts[4]
24
+
25
+ # file extension: .js
26
+ ext = File.extname(file)
27
+
28
+ # file name without extension
29
+ basename = File.basename(file, ext)
30
+
31
+ # subdir gitub/primedia
32
+ subdir = File.join(parts[0], user)
33
+
34
+ # github/repo/file
35
+ path = File.join(subdir, basename)
36
+
37
+ folder = (ext == '.css' ? Pubba.style_folder : Pubba.script_folder)
38
+
39
+ # assets/js/github/repo/file
40
+ out_path = File.join(Pubba.asset_folder, folder, subdir)
41
+ FileUtils.mkdir_p(out_path)
42
+
43
+ # assets/js/github/repo/file
44
+ out_file = File.join(out_path, basename + ext)
45
+
46
+ r = Repository.find(user: user, repo: repo)
47
+ r.tags.each do |t|
48
+ if t.name = tag
49
+ sha = t.sha
50
+ begin
51
+ blob = Blob.find(user: user, repo: repo, sha: sha, path: file)
52
+ File.open(out_file, "w"){|f| f.write(blob.data) }
53
+ break
54
+ rescue Octopi::APIError => e
55
+ puts "Error attempting to get: user: #{user}, repo: #{repo}, sha: #{sha}, path: #{file}"
56
+ puts e.message
57
+ end
58
+ end
59
+ end
60
+ end
61
+
62
+ return path, ext.split('.').last
63
+ end
64
+ end # class block
7
65
 
8
66
  def save_as(file)
9
67
  raise NotImplementedError
@@ -5,37 +5,46 @@ require_relative 'handler'
5
5
  module Pubba
6
6
  module Assets
7
7
  class SprocketsHandler < Handler
8
- def self.find(file)
9
- SprocketsHandler.new(sprockets.find_asset(file))
10
- end
8
+ class << self
9
+ def find(file)
10
+ SprocketsHandler.new(sprockets.find_asset(file))
11
+ end
11
12
 
12
- def self.asset_paths(*paths)
13
- paths.each do |path|
14
- sprockets.append_path path
13
+ def asset_paths(*paths)
14
+ paths.each do |path|
15
+ sprockets.append_path path
16
+ end
15
17
  end
16
- end
17
18
 
18
- def self.sprockets
19
- @sprockets ||= Sprockets::Environment.new()
20
- end
19
+ def sprockets
20
+ @sprockets ||= Sprockets::Environment.new()
21
+ end
21
22
 
22
- def self.process(source, destination)
23
- FileUtils.mkdir_p destination
23
+ def process(source, destination)
24
+ FileUtils.mkdir_p destination
24
25
 
25
- Dir.glob("#{source}/*") do |file|
26
- asset = find(file)
27
- asset.save_as "#{destination}/#{File.basename(file)}"
26
+ Dir.glob("#{source}/*") do |file|
27
+ asset = find(file)
28
+ asset.save_as "#{destination}/#{File.basename(file)}"
29
+ end
28
30
  end
29
- end
30
31
 
31
- def self.build(name, type, ext, urls)
32
- content = urls.collect{|url| "//= require #{url}.#{ext}"}.compact.join("\n")
33
- out_folder = File.join(Pubba.asset_folder, "out", ext)
34
- FileUtils.mkdir_p out_folder
35
- fname = File.join(out_folder, "#{name}-#{type}.#{ext}")
36
- File.open(fname, 'w') do |f|
37
- f.write Site.asset_configuration.disclaimer
38
- f.write content
32
+ def build(name, type, ext, urls)
33
+ content = urls.collect do |url|
34
+ if url.start_with?("github:")
35
+ url,ext = get_external_resource(url)
36
+ end
37
+
38
+ "//= require #{url}.#{ext}"
39
+ end.compact.join("\n")
40
+
41
+ out_folder = File.join(Pubba.asset_folder, "out", ext)
42
+ FileUtils.mkdir_p out_folder
43
+ fname = File.join(out_folder, "#{name}-#{type}.#{ext}")
44
+ File.open(fname, 'w') do |f|
45
+ f.write Site.asset_configuration.disclaimer
46
+ f.write content
47
+ end
39
48
  end
40
49
  end
41
50
 
data/lib/pubba/page.rb CHANGED
@@ -74,7 +74,7 @@ module Pubba
74
74
  style_groups do |group, hash|
75
75
  urls = []
76
76
  style_urls(group) do |url|
77
- next if url.start_with?("http")
77
+ next if external?(url)
78
78
  urls << url
79
79
  end
80
80
  Pubba.asset_handler.build(name, group, "css", urls)
@@ -85,7 +85,7 @@ module Pubba
85
85
  script_groups do |group|
86
86
  urls = []
87
87
  script_urls(group) do |url|
88
- next if url.start_with?("http")
88
+ next if external?(url)
89
89
  urls << url
90
90
  end
91
91
  Pubba.asset_handler.build(name, group, "js", urls)
@@ -111,7 +111,7 @@ module Pubba
111
111
  def add_style_tag(group, hash, url)
112
112
  h = { tag: 'link', type: 'text/css', rel: 'stylesheet' }
113
113
  h[:media] = hash['media'] if hash['media']
114
- h[:href] = url.start_with?("http") ? url : "/#{Pubba.style_folder}/#{name}-#{group}.css"
114
+ h[:href] = external?(url) ? url : "/#{Pubba.style_folder}/#{name}-#{group}.css"
115
115
  h[:id] = hash['id'] if hash['id']
116
116
 
117
117
  maybe_add_tag(@head_tags, h, :href)
@@ -119,7 +119,7 @@ module Pubba
119
119
 
120
120
  def add_script_tag(group, url)
121
121
  h = { tag: 'script', type: "text/javascript" }
122
- h[:src] = url.start_with?("http") ? url : "/#{Pubba.script_folder}/#{name}-#{group}.js"
122
+ h[:src] = external?(url) ? url : "/#{Pubba.script_folder}/#{name}-#{group}.js"
123
123
 
124
124
  tag_set = (group == "head") ? @head_tags : @body_tags
125
125
  maybe_add_tag(tag_set, h, :src)
@@ -130,5 +130,9 @@ module Pubba
130
130
  tag_set.each{|tag| found = true if tag[key] == hash[key]}
131
131
  tag_set << hash unless found
132
132
  end
133
+
134
+ def external?(url)
135
+ (url.start_with?("http") and not url.start_with?("github:")) ? true : false
136
+ end
133
137
  end # Page
134
138
  end # Pubba
data/lib/pubba/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Pubba
2
2
  # Pubba version string
3
3
  # @api public
4
- VERSION = '0.7.2'
4
+ VERSION = '0.8.0'
5
5
  end
data/pubba.gemspec CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.add_runtime_dependency('yui-compressor', ['>= 0.9.4'])
25
25
  s.add_runtime_dependency('fssm', ['>= 0.2.7'])
26
26
  s.add_runtime_dependency('statica', ['>= 0.3.0'])
27
+ s.add_runtime_dependency('octopi', ['>= 0.4.5'])
27
28
 
28
29
  s.add_development_dependency('rake', ['>= 0.9.2'])
29
30
  s.add_development_dependency('sinatra', ['>= 1.3.1'])
data/test/helper.rb CHANGED
@@ -1,32 +1,9 @@
1
1
  require 'minitest/unit'
2
2
  require 'sinatra/test_helpers'
3
+ require_relative 'resources'
3
4
 
4
5
  MiniTest::Unit.autorun
5
6
 
6
- module R
7
- extend self
8
-
9
- def app_folder
10
- File.join(File.dirname(__FILE__), 'sinatra', 'app')
11
- end
12
-
13
- def asset_folder
14
- File.join(app_folder, 'assets')
15
- end
16
-
17
- def r18n_folder
18
- File.join(app_folder, 'i18n')
19
- end
20
-
21
- def public_folder
22
- File.join(File.dirname(__FILE__), 'sinatra', 'public')
23
- end
24
-
25
- def pubba_config_file
26
- File.join(File.dirname(__FILE__), 'sinatra', 'config', 'pubba.yml')
27
- end
28
- end
29
-
30
7
  class TestPubba < MiniTest::Unit::TestCase
31
8
  include Sinatra::TestHelpers
32
9
 
@@ -34,13 +11,13 @@ class TestPubba < MiniTest::Unit::TestCase
34
11
  mock_app do
35
12
  require 'pubba'
36
13
 
37
- settings.set :public_folder, R.public_folder
14
+ settings.set :public_folder, Resources.public_folder
38
15
 
39
16
  Pubba.configure do |p|
40
- p.config_file = R.pubba_config_file
17
+ p.config_file = Resources.pubba_config_file
41
18
  p.public_folder = settings.public_folder
42
- p.asset_folder = R.asset_folder
43
- p.r18n_folder = R.r18n_folder
19
+ p.asset_folder = Resources.asset_folder
20
+ p.r18n_folder = Resources.r18n_folder
44
21
  end
45
22
 
46
23
  Pubba::Site.configure
@@ -2,17 +2,17 @@ require 'helper'
2
2
 
3
3
  class TestPubbaAssetsConfiguration < TestPubba
4
4
  def setup
5
- @config = Pubba::Assets::Configuration.new(R.pubba_config_file)
5
+ @config = Pubba::Assets::Configuration.new(Resources.pubba_config_file)
6
6
  end
7
7
 
8
8
  def test_yaml_is_initialized
9
- hsh = {"global"=>{"styles"=>{"all"=>{"urls"=>["http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css", "custom/global"]}, "phone"=>{"media"=>"only screen and (max-width: 480px)", "urls"=>["custom/small"]}, "desktop"=>{"media"=>"only screen and (min-width: 480px)", "urls"=>["custom/large"]}}, "scripts"=>{"head"=>["https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", "third-party/modernizr"], "body"=>["https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js", "third-party/backbone", "custom/app", "custom/tracker"]}}, "home"=>{"styles"=>{"all"=>{"urls"=>["custom/home"]}}}, "search"=>{"styles"=>{"all"=>{"urls"=>["custom/search", "third-party/widget"]}}, "scripts"=>{"body"=>["custom/lightbox"]}}}
9
+ hsh = {"global"=>{"styles"=>{"all"=>{"urls"=>["http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css", "custom/global"]}, "phone"=>{"media"=>"only screen and (max-width: 480px)", "urls"=>["custom/small"]}, "desktop"=>{"media"=>"only screen and (min-width: 480px)", "urls"=>["custom/large"]}}, "scripts"=>{"head"=>["https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", "third-party/modernizr"], "body"=>["https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js", "github:documentcloud:underscore:1.2.4:underscore.js", "github:documentcloud:backbone:0.5.3:backbone.js", "custom/app", "custom/tracker"]}}, "home"=>{"styles"=>{"all"=>{"urls"=>["custom/home"]}}}, "search"=>{"styles"=>{"all"=>{"urls"=>["custom/search", "third-party/widget"]}}, "scripts"=>{"body"=>["custom/lightbox"]}}}
10
10
 
11
11
  assert_equal hsh, @config.yaml
12
12
  end
13
13
 
14
14
  def test_global_config
15
- hsh = {"styles"=>{"all"=>{"urls"=>["http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css", "custom/global"]}, "phone"=>{"media"=>"only screen and (max-width: 480px)", "urls"=>["custom/small"]}, "desktop"=>{"media"=>"only screen and (min-width: 480px)", "urls"=>["custom/large"]}}, "scripts"=>{"head"=>["https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", "third-party/modernizr"], "body"=>["https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js", "third-party/backbone", "custom/app", "custom/tracker"]}}
15
+ hsh = {"styles"=>{"all"=>{"urls"=>["http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css", "custom/global"]}, "phone"=>{"media"=>"only screen and (max-width: 480px)", "urls"=>["custom/small"]}, "desktop"=>{"media"=>"only screen and (min-width: 480px)", "urls"=>["custom/large"]}}, "scripts"=>{"head"=>["https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", "third-party/modernizr"], "body"=>["https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js", "github:documentcloud:underscore:1.2.4:underscore.js", "github:documentcloud:backbone:0.5.3:backbone.js", "custom/app", "custom/tracker"]}}
16
16
 
17
17
  assert_equal hsh, @config.global_config!
18
18
 
@@ -16,7 +16,7 @@ class TestPubbaPage < TestPubba
16
16
  end
17
17
 
18
18
  def test_home_all_css_asset
19
- css = File.open( File.join(R.asset_folder, 'out', 'css', 'home-all.css')){|f| f.read }
19
+ css = File.open( File.join(Resources.asset_folder, 'out', 'css', 'home-all.css')){|f| f.read }
20
20
  contents = <<TEXT
21
21
  // This file is automatically generated from the contents
22
22
  // in #{Pubba::Site.asset_configuration.name}
@@ -29,7 +29,7 @@ TEXT
29
29
  end
30
30
 
31
31
  def test_home_phone_css_asset
32
- css = File.open( File.join(R.asset_folder, 'out', 'css', 'home-phone.css')){|f| f.read }
32
+ css = File.open( File.join(Resources.asset_folder, 'out', 'css', 'home-phone.css')){|f| f.read }
33
33
  contents = <<TEXT
34
34
  // This file is automatically generated from the contents
35
35
  // in #{Pubba::Site.asset_configuration.name}
@@ -41,7 +41,7 @@ TEXT
41
41
  end
42
42
 
43
43
  def test_home_desktop_css_asset
44
- css = File.open( File.join(R.asset_folder, 'out', 'css', 'home-desktop.css')){|f| f.read }
44
+ css = File.open( File.join(Resources.asset_folder, 'out', 'css', 'home-desktop.css')){|f| f.read }
45
45
  contents = <<TEXT
46
46
  // This file is automatically generated from the contents
47
47
  // in #{Pubba::Site.asset_configuration.name}
@@ -53,7 +53,7 @@ TEXT
53
53
  end
54
54
 
55
55
  def test_search_all_css_asset
56
- css = File.open( File.join(R.asset_folder, 'out', 'css', 'search-all.css')){|f| f.read }
56
+ css = File.open( File.join(Resources.asset_folder, 'out', 'css', 'search-all.css')){|f| f.read }
57
57
  contents = <<TEXT
58
58
  // This file is automatically generated from the contents
59
59
  // in #{Pubba::Site.asset_configuration.name}
@@ -67,7 +67,7 @@ TEXT
67
67
  end
68
68
 
69
69
  def test_search_phone_css_asset
70
- css = File.open( File.join(R.asset_folder, 'out', 'css', 'search-phone.css')){|f| f.read }
70
+ css = File.open( File.join(Resources.asset_folder, 'out', 'css', 'search-phone.css')){|f| f.read }
71
71
  contents = <<TEXT
72
72
  // This file is automatically generated from the contents
73
73
  // in #{Pubba::Site.asset_configuration.name}
@@ -79,7 +79,7 @@ TEXT
79
79
  end
80
80
 
81
81
  def test_search_desktop_css_asset
82
- css = File.open( File.join(R.asset_folder, 'out', 'css', 'search-desktop.css')){|f| f.read }
82
+ css = File.open( File.join(Resources.asset_folder, 'out', 'css', 'search-desktop.css')){|f| f.read }
83
83
  contents = <<TEXT
84
84
  // This file is automatically generated from the contents
85
85
  // in #{Pubba::Site.asset_configuration.name}
@@ -91,7 +91,7 @@ TEXT
91
91
  end
92
92
 
93
93
  def test_home_head_js_asset
94
- js = File.open( File.join(R.asset_folder, 'out', 'js', 'home-head.js')){|f| f.read }
94
+ js = File.open( File.join(Resources.asset_folder, 'out', 'js', 'home-head.js')){|f| f.read }
95
95
  contents = <<TEXT
96
96
  // This file is automatically generated from the contents
97
97
  // in #{Pubba::Site.asset_configuration.name}
@@ -103,12 +103,13 @@ TEXT
103
103
  end
104
104
 
105
105
  def test_home_body_js_asset
106
- js = File.open( File.join(R.asset_folder, 'out', 'js', 'home-body.js')){|f| f.read }
106
+ js = File.open( File.join(Resources.asset_folder, 'out', 'js', 'home-body.js')){|f| f.read }
107
107
  contents = <<TEXT
108
108
  // This file is automatically generated from the contents
109
109
  // in #{Pubba::Site.asset_configuration.name}
110
110
  //
111
- //= require third-party/backbone.js
111
+ //= require github/documentcloud/underscore.js
112
+ //= require github/documentcloud/backbone.js
112
113
  //= require custom/app.js
113
114
  //= require custom/tracker.js
114
115
  TEXT
@@ -117,7 +118,7 @@ TEXT
117
118
  end
118
119
 
119
120
  def test_search_head_js_asset
120
- js = File.open( File.join(R.asset_folder, 'out', 'js', 'search-head.js')){|f| f.read }
121
+ js = File.open( File.join(Resources.asset_folder, 'out', 'js', 'search-head.js')){|f| f.read }
121
122
  contents = <<TEXT
122
123
  // This file is automatically generated from the contents
123
124
  // in #{Pubba::Site.asset_configuration.name}
@@ -129,12 +130,13 @@ TEXT
129
130
  end
130
131
 
131
132
  def test_search_body_js_asset
132
- js = File.open( File.join(R.asset_folder, 'out', 'js', 'search-body.js')){|f| f.read }
133
+ js = File.open( File.join(Resources.asset_folder, 'out', 'js', 'search-body.js')){|f| f.read }
133
134
  contents = <<TEXT
134
135
  // This file is automatically generated from the contents
135
136
  // in #{Pubba::Site.asset_configuration.name}
136
137
  //
137
- //= require third-party/backbone.js
138
+ //= require github/documentcloud/underscore.js
139
+ //= require github/documentcloud/backbone.js
138
140
  //= require custom/app.js
139
141
  //= require custom/tracker.js
140
142
  //= require custom/lightbox.js
@@ -10,11 +10,11 @@ class TestPubbaSite < TestPubba
10
10
  end
11
11
 
12
12
  def test_asset_folder_initialization
13
- assert_equal "#{R.asset_folder}", Pubba.asset_folder
13
+ assert_equal "#{Resources.asset_folder}", Pubba.asset_folder
14
14
  end
15
15
 
16
16
  def test_public_folder_initialization
17
- assert_equal "#{R.public_folder}", Pubba.public_folder
17
+ assert_equal "#{Resources.public_folder}", Pubba.public_folder
18
18
  end
19
19
 
20
20
  def test_script_folder_initialization
data/test/resources.rb ADDED
@@ -0,0 +1,61 @@
1
+ module Resources
2
+ extend self
3
+
4
+ def app_folder
5
+ File.join(File.dirname(__FILE__), 'sinatra', 'app')
6
+ end
7
+
8
+ def asset_folder
9
+ File.join(app_folder, 'assets')
10
+ end
11
+
12
+ def r18n_folder
13
+ File.join(app_folder, 'i18n')
14
+ end
15
+
16
+ def public_folder
17
+ File.join(File.dirname(__FILE__), 'sinatra', 'public')
18
+ end
19
+
20
+ def public_js_folder
21
+ File.join(File.dirname(__FILE__), 'sinatra', 'public', 'js')
22
+ end
23
+
24
+ def public_css_folder
25
+ File.join(File.dirname(__FILE__), 'sinatra', 'public', 'css')
26
+ end
27
+
28
+ def pubba_config_file
29
+ File.join(File.dirname(__FILE__), 'sinatra', 'config', 'pubba.yml')
30
+ end
31
+
32
+ def out_js_folder
33
+ File.join(asset_folder, 'out', 'js')
34
+ end
35
+
36
+ def out_css_folder
37
+ File.join(asset_folder, 'out', 'css')
38
+ end
39
+
40
+ def clean
41
+ Dir.glob(Resources.public_js_folder + "/*.js").each do |entry|
42
+ $>.print "deleting: #{entry}\n"
43
+ File.delete(entry)
44
+ end
45
+
46
+ Dir.glob(Resources.public_css_folder + "/*.css").each do |entry|
47
+ $>.print "deleting: #{entry}\n"
48
+ File.delete(entry)
49
+ end
50
+
51
+ Dir.glob(Resources.out_js_folder + "/*.js").each do |entry|
52
+ $>.print "deleting: #{entry}\n"
53
+ File.delete(entry)
54
+ end
55
+
56
+ Dir.glob(Resources.out_css_folder + "/*.css").each do |entry|
57
+ $>.print "deleting: #{entry}\n"
58
+ File.delete(entry)
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,3 @@
1
+ function home(){
2
+ alert('This is the home test file');
3
+ }
@@ -0,0 +1,3 @@
1
+ function search(){
2
+ alert('This is the search test file');
3
+ }