wontomedia 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.
- data/COPYING +661 -0
- data/COPYING.DOCUMENTATION +450 -0
- data/LICENSE +661 -0
- data/README.markdown +56 -0
- data/Rakefile +185 -0
- data/VERSION.yml +4 -0
- data/app/controllers/admin_controller.rb +144 -0
- data/app/controllers/application_controller.rb +29 -0
- data/app/controllers/connections_controller.rb +150 -0
- data/app/controllers/items_controller.rb +365 -0
- data/app/helpers/connections_helper.rb +67 -0
- data/app/helpers/format_helper.rb +154 -0
- data/app/helpers/items_helper.rb +105 -0
- data/app/models/category_item.rb +23 -0
- data/app/models/connection.rb +210 -0
- data/app/models/individual_item.rb +23 -0
- data/app/models/item.rb +86 -0
- data/app/models/property_item.rb +23 -0
- data/app/models/qualified_item.rb +23 -0
- data/app/views/admin/index.html.erb +74 -0
- data/app/views/connections/_index_outbound_links.html.erb +48 -0
- data/app/views/connections/_spo_select_controls.html.erb +151 -0
- data/app/views/connections/edit.html.erb +70 -0
- data/app/views/connections/index.html.erb +84 -0
- data/app/views/connections/new.html.erb +61 -0
- data/app/views/connections/show.html.erb +110 -0
- data/app/views/items/_active_content.html.erb +26 -0
- data/app/views/items/_content_examples.html.erb +55 -0
- data/app/views/items/_core_tasks.html.erb +23 -0
- data/app/views/items/_form_fields.html.erb +69 -0
- data/app/views/items/_list_outbound_links.html.erb +58 -0
- data/app/views/items/_screen_select.html.erb +24 -0
- data/app/views/items/_show_outbound_links.html.erb +70 -0
- data/app/views/items/_topic_list.html.erb +26 -0
- data/app/views/items/_type_select.html.erb +47 -0
- data/app/views/items/edit.html.erb +63 -0
- data/app/views/items/index.html.erb +74 -0
- data/app/views/items/new.html.erb +124 -0
- data/app/views/items/newpop.html.erb +58 -0
- data/app/views/items/show.html.erb +209 -0
- data/app/views/layouts/_amazon_ads.html.erb +55 -0
- data/app/views/layouts/_glossary_help_box.html.erb +43 -0
- data/app/views/layouts/_google_ads.html.erb +40 -0
- data/app/views/layouts/_language_select.html.erb +24 -0
- data/app/views/layouts/_login_controls.html.erb +24 -0
- data/app/views/layouts/_master_help.html.erb +24 -0
- data/app/views/layouts/_navigation_menu.html.erb +39 -0
- data/app/views/layouts/_search_box.html.erb +27 -0
- data/app/views/layouts/_status_msgs.html.erb +25 -0
- data/app/views/layouts/application.html.erb +67 -0
- data/app/views/layouts/base.html.erb +93 -0
- data/app/views/layouts/home.html.erb +67 -0
- data/app/views/layouts/popup.html.erb +23 -0
- data/assets/wontomedia-sample.rb +47 -0
- data/config/asset_packages.yml +44 -0
- data/config/boot.rb +110 -0
- data/config/cucumber.yml +65 -0
- data/config/database-mysql-development.yml +47 -0
- data/config/database-mysql.yml +26 -0
- data/config/environment.rb +94 -0
- data/config/environments/cucumber.rb +29 -0
- data/config/environments/development.rb +26 -0
- data/config/environments/production.rb +33 -0
- data/config/environments/test.rb +31 -0
- data/config/initializers/inflections.rb +19 -0
- data/config/initializers/mime_types.rb +14 -0
- data/config/initializers/new_rails_defaults.rb +26 -0
- data/config/locales/en.yml +14 -0
- data/config/routes.rb +37 -0
- data/db/fixtures/connections.yml +96 -0
- data/db/fixtures/items.yml +277 -0
- data/db/migrate/20090312212805_create_items.rb +31 -0
- data/db/migrate/20090406221320_create_connections.rb +32 -0
- data/db/migrate/20090411014503_add_type_for_item_subclasses.rb +29 -0
- data/db/migrate/20090415142152_rename_item_type.rb +31 -0
- data/db/migrate/20090518022918_rename_object_and_self.rb +33 -0
- data/db/migrate/20090529171442_add_flags_to_items.rb +27 -0
- data/db/migrate/20090529171508_add_flags_to_connections.rb +27 -0
- data/db/migrate/20090605213800_flags_columns_not_null.rb +29 -0
- data/db/migrate/20090605215028_flags_columns_default_zero.rb +29 -0
- data/db/schema.rb +30 -0
- data/default-custom/app/views/items/_home_extern_list.html.erb +32 -0
- data/default-custom/app/views/items/_home_introductory_text.html.erb +70 -0
- data/default-custom/app/views/items/home.html.erb +77 -0
- data/default-custom/public/images/logo.png +0 -0
- data/default-custom/public/images/logo.svg +74 -0
- data/default-custom/public/stylesheets/wm.css +301 -0
- data/doc/README.markdown +44 -0
- data/doc/README_FOR_APP +82 -0
- data/doc/customization.markdown +93 -0
- data/doc/scripts/rake-customize.markdown +83 -0
- data/lib/helpers/connection_helper.rb +41 -0
- data/lib/helpers/item_helper.rb +141 -0
- data/lib/helpers/tripple_navigation.rb +158 -0
- data/lib/tasks/cucumber.rake +83 -0
- data/lib/tasks/customize.rake +70 -0
- data/lib/tasks/db.rake +65 -0
- data/lib/tasks/javascript_testing_tasks.rake +176 -0
- data/public/404.html +50 -0
- data/public/422.html +50 -0
- data/public/500.html +53 -0
- data/public/dispatch.cgi +20 -0
- data/public/dispatch.fcgi +34 -0
- data/public/dispatch.rb +20 -0
- data/public/favicon.ico +0 -0
- data/public/images/blank_error_icon.png +0 -0
- data/public/images/blank_status_icon.png +0 -0
- data/public/images/error_error_icon.png +0 -0
- data/public/images/error_status_icon.png +0 -0
- data/public/images/good_status_icon.png +0 -0
- data/public/images/help_icon.png +0 -0
- data/public/images/twitter_icon.png +0 -0
- data/public/images/warn_error_icon.png +0 -0
- data/public/images/working_status_icon.gif +0 -0
- data/public/javascripts/application.js +56 -0
- data/public/javascripts/controls.js +963 -0
- data/public/javascripts/dragdrop.js +973 -0
- data/public/javascripts/effects.js +1128 -0
- data/public/javascripts/event.simulate.js +64 -0
- data/public/javascripts/fancybox.js +43 -0
- data/public/javascripts/forConnectionsForms.js +218 -0
- data/public/javascripts/forItemsForms.js +511 -0
- data/public/javascripts/itemCreatePopup.js +115 -0
- data/public/javascripts/itemTitleToName.js +119 -0
- data/public/javascripts/jquery.js +4376 -0
- data/public/javascripts/modalbox.js +502 -0
- data/public/javascripts/prototype.js +4320 -0
- data/public/javascripts/reconcileJQueryAndPrototype.js +19 -0
- data/public/robots.txt +7 -0
- data/public/stylesheets/blank.gif +0 -0
- data/public/stylesheets/fancy_close.png +0 -0
- data/public/stylesheets/fancy_loading.png +0 -0
- data/public/stylesheets/fancy_nav_left.png +0 -0
- data/public/stylesheets/fancy_nav_right.png +0 -0
- data/public/stylesheets/fancy_shadow_e.png +0 -0
- data/public/stylesheets/fancy_shadow_n.png +0 -0
- data/public/stylesheets/fancy_shadow_ne.png +0 -0
- data/public/stylesheets/fancy_shadow_nw.png +0 -0
- data/public/stylesheets/fancy_shadow_s.png +0 -0
- data/public/stylesheets/fancy_shadow_se.png +0 -0
- data/public/stylesheets/fancy_shadow_sw.png +0 -0
- data/public/stylesheets/fancy_shadow_w.png +0 -0
- data/public/stylesheets/fancy_title_left.png +0 -0
- data/public/stylesheets/fancy_title_main.png +0 -0
- data/public/stylesheets/fancy_title_over.png +0 -0
- data/public/stylesheets/fancy_title_right.png +0 -0
- data/public/stylesheets/fancybox.css +333 -0
- data/public/stylesheets/modalbox.css +110 -0
- data/public/stylesheets/scaffold.css +36 -0
- data/public/stylesheets/spinner.gif +0 -0
- data/script/about +4 -0
- data/script/console +3 -0
- data/script/cucumber +10 -0
- data/script/dbconsole +3 -0
- data/script/destroy +3 -0
- data/script/generate +3 -0
- data/script/performance/benchmarker +3 -0
- data/script/performance/profiler +3 -0
- data/script/performance/request +3 -0
- data/script/plugin +3 -0
- data/script/process/inspector +3 -0
- data/script/process/reaper +3 -0
- data/script/process/spawner +3 -0
- data/script/runner +3 -0
- data/script/server +3 -0
- data/vendor/plugins/asset_packager/CHANGELOG +122 -0
- data/vendor/plugins/asset_packager/README +178 -0
- data/vendor/plugins/asset_packager/Rakefile +22 -0
- data/vendor/plugins/asset_packager/about.yml +8 -0
- data/vendor/plugins/asset_packager/init.rb +2 -0
- data/vendor/plugins/asset_packager/install.rb +1 -0
- data/vendor/plugins/asset_packager/lib/jsmin.rb +205 -0
- data/vendor/plugins/asset_packager/lib/synthesis/asset_package.rb +212 -0
- data/vendor/plugins/asset_packager/lib/synthesis/asset_package_helper.rb +39 -0
- data/vendor/plugins/asset_packager/tasks/asset_packager_tasks.rake +23 -0
- data/vendor/plugins/asset_packager/test/asset_package_helper_development_test.rb +100 -0
- data/vendor/plugins/asset_packager/test/asset_package_helper_production_test.rb +140 -0
- data/vendor/plugins/asset_packager/test/asset_packager_test.rb +92 -0
- data/vendor/plugins/asset_packager/test/asset_packages.yml +20 -0
- data/vendor/plugins/asset_packager/test/assets/javascripts/application.js +2 -0
- data/vendor/plugins/asset_packager/test/assets/javascripts/bar.js +4 -0
- data/vendor/plugins/asset_packager/test/assets/javascripts/controls.js +815 -0
- data/vendor/plugins/asset_packager/test/assets/javascripts/dragdrop.js +913 -0
- data/vendor/plugins/asset_packager/test/assets/javascripts/effects.js +958 -0
- data/vendor/plugins/asset_packager/test/assets/javascripts/foo.js +4 -0
- data/vendor/plugins/asset_packager/test/assets/javascripts/prototype.js +2006 -0
- data/vendor/plugins/asset_packager/test/assets/stylesheets/bar.css +16 -0
- data/vendor/plugins/asset_packager/test/assets/stylesheets/foo.css +16 -0
- data/vendor/plugins/asset_packager/test/assets/stylesheets/header.css +16 -0
- data/vendor/plugins/asset_packager/test/assets/stylesheets/screen.css +16 -0
- data/vendor/plugins/asset_packager/test/assets/stylesheets/subdir/bar.css +16 -0
- data/vendor/plugins/asset_packager/test/assets/stylesheets/subdir/foo.css +16 -0
- metadata +265 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# WontoMedia - a wontology web application
|
|
2
|
+
# Copyright (C) 2010 - Glen E. Ivey
|
|
3
|
+
# www.wontology.com
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU Affero General Public License version
|
|
7
|
+
# 3 as published by the Free Software Foundation.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU Affero General Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU Affero General Public License
|
|
15
|
+
# along with this program in the file COPYING and/or LICENSE. If not,
|
|
16
|
+
# see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# Find vendored gem or plugin of cucumber
|
|
20
|
+
vendored_cucumber_dir =
|
|
21
|
+
Dir["#{RAILS_ROOT}/vendor/{gems,plugins}/cucumber*"].first
|
|
22
|
+
$LOAD_PATH.unshift("#{vendored_cucumber_dir}/lib") unless
|
|
23
|
+
vendored_cucumber_dir.nil?
|
|
24
|
+
|
|
25
|
+
unless ARGV.any? {|a| a =~ /^gems/}
|
|
26
|
+
|
|
27
|
+
begin
|
|
28
|
+
require 'cucumber/rake/task'
|
|
29
|
+
|
|
30
|
+
# Use vendored cucumber binary if possible. If it's not vendored,
|
|
31
|
+
# Cucumber::Rake::Task will automatically use installed gem's cucumber binary
|
|
32
|
+
vendored_cucumber_binary =
|
|
33
|
+
"#{vendored_cucumber_dir}/bin/cucumber" unless vendored_cucumber_dir.nil?
|
|
34
|
+
|
|
35
|
+
namespace :cucumber do
|
|
36
|
+
Cucumber::Rake::Task.new({:static_ok => 'db:test:prepare'},
|
|
37
|
+
'Run non-Selenium features that should pass') do |t|
|
|
38
|
+
t.binary = vendored_cucumber_binary
|
|
39
|
+
t.fork = false
|
|
40
|
+
t.profile = "static_acceptance"
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
Cucumber::Rake::Task.new({:dynamic_ok => 'db:test:prepare'},
|
|
44
|
+
'Run need-Selenium-to-test features that should pass') do |t|
|
|
45
|
+
t.binary = vendored_cucumber_binary
|
|
46
|
+
t.fork = false
|
|
47
|
+
t.profile = "dynamic_acceptance"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
Cucumber::Rake::Task.new({:static_wip => 'db:test:prepare'},
|
|
51
|
+
'Run non-Selenium features that are being worked on') do |t|
|
|
52
|
+
t.binary = vendored_cucumber_binary
|
|
53
|
+
t.fork = false
|
|
54
|
+
t.profile = "static_unfinished"
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
Cucumber::Rake::Task.new({:dynamic_wip => 'db:test:prepare'},
|
|
58
|
+
'Run need-Selenium-to-test features that are being worked on') do |t|
|
|
59
|
+
t.binary = vendored_cucumber_binary
|
|
60
|
+
t.fork = false
|
|
61
|
+
t.profile = "dynamic_unfinished"
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
desc 'Run features that should pass'
|
|
65
|
+
task :ok => [:static_ok, :dynamic_ok]
|
|
66
|
+
desc 'Run features that are being worked on'
|
|
67
|
+
task :wip => [:static_wip, :dynamic_wip]
|
|
68
|
+
desc 'Run all features'
|
|
69
|
+
task :all => [:ok, :wip]
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
desc 'Alias for cucumber:ok'
|
|
73
|
+
task :cucumber => 'cucumber:ok'
|
|
74
|
+
task :default => :cucumber
|
|
75
|
+
|
|
76
|
+
rescue LoadError
|
|
77
|
+
desc 'cucumber rake task not available (cucumber not installed)'
|
|
78
|
+
task :cucumber do
|
|
79
|
+
abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# WontoMedia - a wontology web application
|
|
2
|
+
# Copyright (C) 2010 - Glen E. Ivey
|
|
3
|
+
# www.wontology.com
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU Affero General Public License version
|
|
7
|
+
# 3 as published by the Free Software Foundation.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU Affero General Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU Affero General Public License
|
|
15
|
+
# along with this program in the file COPYING and/or LICENSE. If not,
|
|
16
|
+
# see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# see wontomedia/doc/script/rake-customize.markdown for usage
|
|
20
|
+
|
|
21
|
+
desc "This creates symbolic links to customization files in other directories"
|
|
22
|
+
task :customize, :path_list do |t, args|
|
|
23
|
+
|
|
24
|
+
# first, clear out all symbolic links from any previous
|
|
25
|
+
# configurations--we don't want to leave any old ones lying around
|
|
26
|
+
# pointing into customization directories we aren't currently using.
|
|
27
|
+
FileList[ "*", "**/*"].
|
|
28
|
+
exclude do |maybe_not_link|
|
|
29
|
+
!File.symlink?(maybe_not_link)
|
|
30
|
+
end.
|
|
31
|
+
each do |link_to_delete|
|
|
32
|
+
File.delete link_to_delete
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# now, build new links
|
|
36
|
+
paths = args[:path_list].split(':')
|
|
37
|
+
paths.each do |p|
|
|
38
|
+
path = File.expand_path(p)
|
|
39
|
+
Dir[ File.join( path, "**", "*" ) ].each do |from_p|
|
|
40
|
+
if File.file?( from_p )
|
|
41
|
+
from_absolute = File.expand_path(from_p)
|
|
42
|
+
from_path = File.dirname( from_absolute )
|
|
43
|
+
file_name = File.basename( from_absolute )
|
|
44
|
+
|
|
45
|
+
sublength = (from_path.length - path.length) - 1
|
|
46
|
+
relative = from_path[ -sublength, sublength ]
|
|
47
|
+
to_absolute = File.expand_path( relative )
|
|
48
|
+
to_name = File.join( to_absolute, file_name )
|
|
49
|
+
|
|
50
|
+
if File.exists?( to_name )
|
|
51
|
+
unless File.symlink?( to_name )
|
|
52
|
+
puts "WARNING: replacing regular file '#{to_name}' "\
|
|
53
|
+
" with symbolic link."
|
|
54
|
+
end
|
|
55
|
+
File.delete( to_name )
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
path_so_far = File.expand_path( '.' )
|
|
59
|
+
relative.split( File::SEPARATOR ).each do |dir_name|
|
|
60
|
+
path_so_far = File.join( path_so_far, dir_name )
|
|
61
|
+
unless File.exists?( path_so_far )
|
|
62
|
+
Dir.mkdir( path_so_far )
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
File.symlink( from_absolute, to_name )
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
data/lib/tasks/db.rake
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# WontoMedia - a wontology web application
|
|
2
|
+
# Copyright (C) 2010 - Glen E. Ivey
|
|
3
|
+
# www.wontology.com
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU Affero General Public License version
|
|
7
|
+
# 3 as published by the Free Software Foundation.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU Affero General Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU Affero General Public License
|
|
15
|
+
# along with this program in the file COPYING and/or LICENSE. If not,
|
|
16
|
+
# see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
require 'active_record'
|
|
20
|
+
require 'active_record/fixtures'
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
namespace :db do
|
|
24
|
+
desc "Load YAML seed data from db/fixtures"
|
|
25
|
+
task :seed => :environment do
|
|
26
|
+
load_all_YAML_globbed_from(
|
|
27
|
+
File.join( RAILS_ROOT, 'db', 'fixtures', '**', '*.yml' ))
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
desc "This drops the db, builds the db, and seeds the data."
|
|
31
|
+
task :reseed => [:environment, 'db:reset', 'db:seed']
|
|
32
|
+
|
|
33
|
+
desc "Load YAML developtment test data from test/fixtures"
|
|
34
|
+
task :test_fixtures => :environment do
|
|
35
|
+
load_all_YAML_globbed_from(
|
|
36
|
+
File.join( RAILS_ROOT, 'test', 'fixtures', '**', '*.yml' ))
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def load_all_YAML_globbed_from(pattern)
|
|
41
|
+
ensure_ActiveRecord_available
|
|
42
|
+
Dir.glob(pattern).each do |path|
|
|
43
|
+
load_YAML_from path
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def ensure_ActiveRecord_available
|
|
48
|
+
unless ActiveRecord::Base.connected?
|
|
49
|
+
ActiveRecord::Base.establish_connection(
|
|
50
|
+
ActiveRecord::Base.configurations[RAILS_ENV] )
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def load_YAML_from(path)
|
|
55
|
+
path =~ %r%([^/_]+)\.yml$%
|
|
56
|
+
table = $1
|
|
57
|
+
path.sub!(/\.yml$/, "")
|
|
58
|
+
|
|
59
|
+
begin
|
|
60
|
+
f = Fixtures.new( ActiveRecord::Base.connection, table, nil, path )
|
|
61
|
+
f.insert_fixtures
|
|
62
|
+
rescue ActiveRecord::StatementInvalid
|
|
63
|
+
# must have already loaded this data
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# WontoMedia - a wontology web application
|
|
2
|
+
# Copyright (C) 2010 - Glen E. Ivey
|
|
3
|
+
# www.wontology.com
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU Affero General Public License version
|
|
7
|
+
# 3 as published by the Free Software Foundation.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU Affero General Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU Affero General Public License
|
|
15
|
+
# along with this program in the file COPYING and/or LICENSE. If not,
|
|
16
|
+
# see <http://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
#### This file originated from the same-named file in the Blue Ridge
|
|
20
|
+
#### package at GitHub http://github.com/relevance/blue-ridge/tree/master
|
|
21
|
+
#### as of the 8th of May, 2009. It's original license notice is
|
|
22
|
+
#### below. If you want to use this source without incurring the
|
|
23
|
+
#### requirements of the AGPL present on our changes, please go back
|
|
24
|
+
#### to this original and start from there.
|
|
25
|
+
#
|
|
26
|
+
# Copyright (c) 2008-2009 Relevance, Inc.
|
|
27
|
+
#
|
|
28
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
29
|
+
# a copy of this software and associated documentation files (the
|
|
30
|
+
# "Software"), to deal in the Software without restriction, including
|
|
31
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
32
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
33
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
34
|
+
# the following conditions:
|
|
35
|
+
#
|
|
36
|
+
# The above copyright notice and this permission notice shall be
|
|
37
|
+
# included in all copies or substantial portions of the Software.
|
|
38
|
+
#
|
|
39
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
40
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
41
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
42
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
43
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
44
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
45
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
begin # don't force Blue Ridge dependency on non-developers
|
|
52
|
+
# so we can make sure the 'test' db is seeded before tests run
|
|
53
|
+
require File.join( RAILS_ROOT, 'test', 'seed_helper' )
|
|
54
|
+
|
|
55
|
+
plugin_prefix = "#{RAILS_ROOT}/vendor/plugins/blue-ridge"
|
|
56
|
+
require File.join(plugin_prefix, "lib", "blue_ridge")
|
|
57
|
+
|
|
58
|
+
rhino_command = "java -Dblue.ridge.prefix=\"#{plugin_prefix}\" " +
|
|
59
|
+
" -jar #{plugin_prefix}/lib/env-js.jar -w -debug"
|
|
60
|
+
test_runner_command = "#{rhino_command} #{plugin_prefix}/lib/test_runner.js"
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@link_root = "js-test-files"
|
|
64
|
+
@test_path = "test/javascript/fixtures"
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
# Support Test::Unit & Test/Spec style
|
|
68
|
+
namespace :test do
|
|
69
|
+
desc "Runs all the JavaScript tests and outputs the results."
|
|
70
|
+
task :javascripts => [ :environment ] do
|
|
71
|
+
prepare_and_load_database
|
|
72
|
+
|
|
73
|
+
Dir.chdir("#{RAILS_ROOT}/test/javascript") do
|
|
74
|
+
all_fine = true
|
|
75
|
+
|
|
76
|
+
begin
|
|
77
|
+
load_wontomedia_app_seed_data
|
|
78
|
+
setup_server_and_environment_for_js_testing
|
|
79
|
+
|
|
80
|
+
if ENV["TEST"]
|
|
81
|
+
all_fine = false unless
|
|
82
|
+
system "#{test_runner_command} #{ENV["TEST"]}_spec.js"
|
|
83
|
+
else
|
|
84
|
+
files = Dir.glob("**/*_spec.js").join(" ")
|
|
85
|
+
all_fine = false unless
|
|
86
|
+
system "#{test_runner_command} #{files}"
|
|
87
|
+
end
|
|
88
|
+
ensure
|
|
89
|
+
cleanup_server_and_environment_after_js_testing
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
raise "JavaScript test failures" unless all_fine
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
cleanup_database
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
namespace :js do
|
|
101
|
+
task :fixtures => [ :environment, "db:test_fixtures" ] do
|
|
102
|
+
begin
|
|
103
|
+
load_wontomedia_app_seed_data
|
|
104
|
+
setup_server_and_environment_for_js_testing
|
|
105
|
+
|
|
106
|
+
ENV["BLUERIDGE_PREFIX"] = "http://localhost:3001/#{@link_root}"
|
|
107
|
+
js_spec_dir = BlueRidge.find_javascript_spec_dir
|
|
108
|
+
fixture_path = BlueRidge.generateSpecIndexFile(js_spec_dir)
|
|
109
|
+
|
|
110
|
+
if PLATFORM[/darwin/]
|
|
111
|
+
system "open #{fixture_path}"
|
|
112
|
+
elsif PLATFORM[/linux/]
|
|
113
|
+
system "firefox #{fixture_path}"
|
|
114
|
+
end
|
|
115
|
+
ensure
|
|
116
|
+
cleanup_server_and_environment_after_js_testing
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
task :shell do
|
|
121
|
+
rlwrap = `which rlwrap`.chomp
|
|
122
|
+
system "#{rlwrap} #{rhino_command} -f #{plugin_prefix}/lib/shell.js -f -"
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
private
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
# use webrat's machinery for starting up a test server running our app
|
|
131
|
+
require 'webrat'
|
|
132
|
+
require 'webrat/selenium/application_servers/rails'
|
|
133
|
+
|
|
134
|
+
def setup_server_and_environment_for_js_testing
|
|
135
|
+
# Link the JavaScript test folder under /public to avoid "same
|
|
136
|
+
# origin policy" (DEVELOPTMENT ONLY!).
|
|
137
|
+
system "ln -s #{RAILS_ROOT} #{RAILS_ROOT}/public/#{@link_root}"
|
|
138
|
+
|
|
139
|
+
# Start a test web server. (Note, originally tried the Webrat::Selenium
|
|
140
|
+
# classes to do this, but found that their automatically calling
|
|
141
|
+
# server stop() at_exit caused Rake to fail when multiple attempts
|
|
142
|
+
# to stop the same server occurred. Making ApplicationServer.start()
|
|
143
|
+
# and .stop() internally veryify the absence/presence of the Mongrel
|
|
144
|
+
# pid also solved the problem, but I didn't want to have to patch Webrat.
|
|
145
|
+
|
|
146
|
+
system "mongrel_rails start -d --chdir='#{RAILS_ROOT}' " +
|
|
147
|
+
"--port=#{Webrat.configuration.application_port} " +
|
|
148
|
+
"--environment=#{Webrat.configuration.application_environment} " +
|
|
149
|
+
"--pid #{Webrat::Selenium::ApplicationServers::Rails.new.pid_file} &"
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def cleanup_server_and_environment_after_js_testing
|
|
153
|
+
STDOUT.puts # Blue Ridge doesn't put a \n after last "."
|
|
154
|
+
system "rm #{RAILS_ROOT}/public/#{@link_root}"
|
|
155
|
+
silence_stream(STDOUT) do
|
|
156
|
+
system "mongrel_rails stop -c #{RAILS_ROOT} " +
|
|
157
|
+
"--pid #{Webrat::Selenium::ApplicationServers::Rails.new.pid_file}"
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def prepare_and_load_database
|
|
162
|
+
# ensure that we start with a clean database
|
|
163
|
+
Rake::Task["db:test:prepare"].invoke
|
|
164
|
+
# plus our test "fixture" data
|
|
165
|
+
Rake::Task["db:test_fixtures"].invoke
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def cleanup_database
|
|
169
|
+
# ensure that we *leave* a clean database, too
|
|
170
|
+
Rake::Task["db:test:prepare"].invoke
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
rescue LoadError
|
|
174
|
+
puts "WARNING: Missing development dependency. 'Blue Ridge', 'Webrat', or a dependency not available. To install, see 'http://wiki.wontology.org/SettingUpYourDevelopmentEnvironment'"
|
|
175
|
+
end
|
|
176
|
+
|
data/public/404.html
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
|
+
|
|
4
|
+
<!--
|
|
5
|
+
WontoMedia - a wontology web application
|
|
6
|
+
Copyright (C) 2010 - Glen E. Ivey
|
|
7
|
+
www.wontology.com
|
|
8
|
+
|
|
9
|
+
This program is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Affero General Public License version
|
|
11
|
+
3 as published by the Free Software Foundation.
|
|
12
|
+
|
|
13
|
+
This program is distributed in the hope that it will be useful,
|
|
14
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
GNU Affero General Public License for more details.
|
|
17
|
+
|
|
18
|
+
You should have received a copy of the GNU Affero General Public License
|
|
19
|
+
along with this program in the file COPYING and/or LICENSE. If not,
|
|
20
|
+
see "http://www.gnu.org/licenses/".
|
|
21
|
+
-->
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
26
|
+
<head>
|
|
27
|
+
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
|
28
|
+
<title>The page you were looking for doesn't exist (404)</title>
|
|
29
|
+
<style type="text/css">
|
|
30
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
|
31
|
+
div.dialog {
|
|
32
|
+
width: 25em;
|
|
33
|
+
padding: 0 4em;
|
|
34
|
+
margin: 4em auto 0 auto;
|
|
35
|
+
border: 1px solid #ccc;
|
|
36
|
+
border-right-color: #999;
|
|
37
|
+
border-bottom-color: #999;
|
|
38
|
+
}
|
|
39
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
|
40
|
+
</style>
|
|
41
|
+
</head>
|
|
42
|
+
|
|
43
|
+
<body>
|
|
44
|
+
<!-- This file lives in public/404.html -->
|
|
45
|
+
<div class="dialog">
|
|
46
|
+
<h1>The page you were looking for doesn't exist.</h1>
|
|
47
|
+
<p>You may have mistyped the address or the page may have moved.</p>
|
|
48
|
+
</div>
|
|
49
|
+
</body>
|
|
50
|
+
</html>
|
data/public/422.html
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
|
+
|
|
4
|
+
<!--
|
|
5
|
+
WontoMedia - a wontology web application
|
|
6
|
+
Copyright (C) 2010 - Glen E. Ivey
|
|
7
|
+
www.wontology.com
|
|
8
|
+
|
|
9
|
+
This program is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Affero General Public License version
|
|
11
|
+
3 as published by the Free Software Foundation.
|
|
12
|
+
|
|
13
|
+
This program is distributed in the hope that it will be useful,
|
|
14
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
GNU Affero General Public License for more details.
|
|
17
|
+
|
|
18
|
+
You should have received a copy of the GNU Affero General Public License
|
|
19
|
+
along with this program in the file COPYING and/or LICENSE. If not,
|
|
20
|
+
see "http://www.gnu.org/licenses/".
|
|
21
|
+
-->
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
26
|
+
<head>
|
|
27
|
+
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
|
28
|
+
<title>The change you wanted was rejected (422)</title>
|
|
29
|
+
<style type="text/css">
|
|
30
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
|
31
|
+
div.dialog {
|
|
32
|
+
width: 25em;
|
|
33
|
+
padding: 0 4em;
|
|
34
|
+
margin: 4em auto 0 auto;
|
|
35
|
+
border: 1px solid #ccc;
|
|
36
|
+
border-right-color: #999;
|
|
37
|
+
border-bottom-color: #999;
|
|
38
|
+
}
|
|
39
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
|
40
|
+
</style>
|
|
41
|
+
</head>
|
|
42
|
+
|
|
43
|
+
<body>
|
|
44
|
+
<!-- This file lives in public/422.html -->
|
|
45
|
+
<div class="dialog">
|
|
46
|
+
<h1>The change you wanted was rejected.</h1>
|
|
47
|
+
<p>Maybe you tried to change something you didn't have access to.</p>
|
|
48
|
+
</div>
|
|
49
|
+
</body>
|
|
50
|
+
</html>
|