diff --git a/Gemfile b/Gemfile index ba7830ecc..a8d3c9714 100644 --- a/Gemfile +++ b/Gemfile @@ -22,8 +22,9 @@ gem 'jbuilder' # gem 'rugged', '~> 0.16.0' gem 'grack', :git => 'git://github.com/rdblue/grack.git', :require => 'git_http' -gem "grit", :git => 'git://github.com/chipiga/grit.git' #, :path => '~/Sites/code/grit' +gem "grit", :git => 'git://github.com/warpc/grit.git' #, :path => '~/Sites/code/grit' gem 'charlock_holmes', '~> 0.6.8' #, :git => 'git://github.com/brianmario/charlock_holmes.git', :branch => 'bundle-icu' +gem 'diff-display', '~> 0.0.1' # Wiki gem "gollum", "1.3.1" @@ -34,7 +35,7 @@ gem 'rdiscount' gem 'RedCloth' gem 'wikicloth' -gem 'unicorn', '~> 4.2.0', :platforms => [:mri, :rbx] +gem 'unicorn', '~> 4.2.1', :platforms => [:mri, :rbx] gem 'trinidad', '~> 1.0.2', :platforms => :jruby gem 'newrelic_rpm', '~> 3.3.2', :platforms => [:mri, :rbx] gem 'whenever', '~> 0.7.3', :require => false @@ -49,8 +50,8 @@ group :assets do gem 'sass-rails', '~> 3.2.5' gem 'coffee-rails', '~> 3.2.2' gem 'compass-rails', '~> 1.0.1' - gem 'uglifier', '~> 1.2.1' - gem 'therubyracer', '~> 0.9.10', :platforms => [:mri, :rbx] + gem 'uglifier', '~> 1.2.4' + gem 'therubyracer', '~> 0.10.0', :platforms => [:mri, :rbx] gem 'therubyrhino', '~> 1.73.1', :platforms => :jruby end @@ -72,8 +73,8 @@ group :development do end group :test do - gem 'rspec-rails', '~> 2.8.1' - gem 'factory_girl_rails', '~> 1.7.0' + gem 'rspec-rails', '~> 2.9.0', :group => 'development' + gem 'factory_girl_rails', '~> 3.0.0' gem 'rr', '~> 1.0.4' gem 'shoulda' end diff --git a/Gemfile.lock b/Gemfile.lock index 825ee840e..893a65ef5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,12 +1,3 @@ -GIT - remote: git://github.com/chipiga/grit.git - revision: 696b0967cb7e6bac044569d898e5acef431d4f97 - specs: - grit (2.4.1) - diff-lcs (~> 1.1) - mime-types (~> 1.15) - posix-spawn (~> 0.3.6) - GIT remote: git://github.com/chipiga/redhillonrails_core.git revision: 5f58167c41882890c223168b0a5521d99e8d92aa @@ -21,6 +12,15 @@ GIT specs: grack (0.2.0) +GIT + remote: git://github.com/warpc/grit.git + revision: 696b0967cb7e6bac044569d898e5acef431d4f97 + specs: + grit (2.4.1) + diff-lcs (~> 1.1) + mime-types (~> 1.15) + posix-spawn (~> 0.3.6) + GEM remote: http://rubygems.org/ specs: @@ -108,6 +108,7 @@ GEM orm_adapter (~> 0.0.3) railties (~> 3.1) warden (~> 1.1.1) + diff-display (0.0.1) diff-lcs (1.1.3) erubis (2.7.0) eventmachine (0.12.10) @@ -115,10 +116,10 @@ GEM execjs (1.3.0) multi_json (~> 1.0) expression_parser (0.9.0) - factory_girl (2.6.4) - activesupport (>= 2.3.9) - factory_girl_rails (1.7.0) - factory_girl (~> 2.6.0) + factory_girl (3.0.0) + activesupport (>= 3.0.0) + factory_girl_rails (3.0.0) + factory_girl (~> 3.0.0) railties (>= 3.0.0) fssm (0.2.8.1) github-markup (0.7.1) @@ -150,15 +151,15 @@ GEM railties (>= 3.2.0, < 5.0) thor (~> 0.14) jruby-rack (1.1.4) - json (1.6.5) - json (1.6.5-java) - kgio (2.7.3) + json (1.6.6) + json (1.6.6-java) + kgio (2.7.4) libv8 (3.3.10.4) mail (2.4.4) i18n (>= 0.4.0) mime-types (~> 1.16) treetop (~> 1.4.8) - mailcatcher (0.5.5) + mailcatcher (0.5.6) activesupport (~> 3.0) eventmachine (~> 0.12) haml (~> 3.1) @@ -170,7 +171,7 @@ GEM meta-tags (1.2.6) actionpack mime-types (1.18) - multi_json (1.1.0) + multi_json (1.2.0) mustache (0.99.4) net-scp (1.0.4) net-ssh (>= 1.99.1) @@ -188,7 +189,7 @@ GEM omniauth-openid (1.0.1) omniauth (~> 1.0) rack-openid (~> 1.3.1) - orm_adapter (0.0.6) + orm_adapter (0.0.7) paperclip (2.7.0) activerecord (>= 2.3.0) activesupport (>= 2.3.2) @@ -235,19 +236,19 @@ GEM json (~> 1.4) redcarpet (1.17.2) rr (1.0.4) - rspec (2.8.0) - rspec-core (~> 2.8.0) - rspec-expectations (~> 2.8.0) - rspec-mocks (~> 2.8.0) - rspec-core (2.8.0) - rspec-expectations (2.8.0) - diff-lcs (~> 1.1.2) - rspec-mocks (2.8.0) - rspec-rails (2.8.1) + rspec (2.9.0) + rspec-core (~> 2.9.0) + rspec-expectations (~> 2.9.0) + rspec-mocks (~> 2.9.0) + rspec-core (2.9.0) + rspec-expectations (2.9.0) + diff-lcs (~> 1.1.3) + rspec-mocks (2.9.0) + rspec-rails (2.9.0) actionpack (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) - rspec (~> 2.8.0) + rspec (~> 2.9.0) ruby-openid (2.1.8) russian (0.6.0) i18n (>= 0.5.0) @@ -278,7 +279,7 @@ GEM tilt (~> 1.1, != 1.3.0) sqlite3 (1.3.5) state_machine (1.1.2) - therubyracer (0.9.10) + therubyracer (0.10.0) libv8 (~> 3.3.10) therubyrhino (1.73.1) thin (1.3.1) @@ -295,10 +296,10 @@ GEM trinidad_jars (>= 0.3.0) trinidad_jars (1.0.2) tzinfo (0.3.32) - uglifier (1.2.3) + uglifier (1.2.4) execjs (>= 0.3.0) multi_json (>= 1.0.2) - unicorn (4.2.0) + unicorn (4.2.1) kgio (~> 2.6) rack raindrops (~> 0.7) @@ -332,7 +333,8 @@ DEPENDENCIES daemons (= 1.1.6) delayed_job_active_record (~> 0.3.2) devise (~> 2.0.4) - factory_girl_rails (~> 1.7.0) + diff-display (~> 0.0.1) + factory_girl_rails (~> 3.0.0) gollum (= 1.3.1) grack! grit! @@ -355,16 +357,16 @@ DEPENDENCIES redcarpet (= 1.17.2) redhillonrails_core! rr (~> 1.0.4) - rspec-rails (~> 2.8.1) + rspec-rails (~> 2.9.0) russian (~> 0.6.0) sass-rails (~> 3.2.5) shotgun shoulda - therubyracer (~> 0.9.10) + therubyracer (~> 0.10.0) therubyrhino (~> 1.73.1) trinidad (~> 1.0.2) - uglifier (~> 1.2.1) - unicorn (~> 4.2.0) + uglifier (~> 1.2.4) + unicorn (~> 4.2.1) whenever (~> 0.7.3) wikicloth will_paginate (~> 3.0.3) diff --git a/config/initializers/generators.rb b/config/initializers/generators.rb deleted file mode 100644 index 47fae7cb8..000000000 --- a/config/initializers/generators.rb +++ /dev/null @@ -1,4 +0,0 @@ -# -*- encoding : utf-8 -*- -Rails.application.config.generators do |g| - g.test_framework = :rspec -end diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb index a68a2d48e..e9b053ba5 100644 --- a/config/initializers/mime_types.rb +++ b/config/initializers/mime_types.rb @@ -5,5 +5,14 @@ # Mime::Type.register "text/richtext", :rtf # Mime::Type.register_alias "text/html", :iphone -Mime::Type.register "text/plain", :diff -Mime::Type.register "text/plain", :patch +Mime::Type.register "text/plain", 'diff' +Mime::Type.register "text/plain", 'patch' + +# add rpm spec as mime type for *.spec files +[["text/x-python", ['py'], '8bit'], + ["text/x-rpm-spec", ['spec'], '8bit'], + ["text/x-csrc", ['h', 'c'], '8bit'], + ["text/x-c++src", ['cpp'], '8bit'] +].each do |type| + MIME::Types.add MIME::Type.from_array(type) +end diff --git a/config/initializers/rosa_presenter.rb b/config/initializers/rosa_presenter.rb deleted file mode 100644 index 476f7ea2d..000000000 --- a/config/initializers/rosa_presenter.rb +++ /dev/null @@ -1,2 +0,0 @@ -# -*- encoding : utf-8 -*- -require './lib/rosa_presenter/rosa_presenter' diff --git a/config/initializers/load_config.rb b/config/initializers/setup.rb similarity index 50% rename from config/initializers/load_config.rb rename to config/initializers/setup.rb index dbe36533c..67495c17c 100644 --- a/config/initializers/load_config.rb +++ b/config/initializers/setup.rb @@ -1,35 +1,12 @@ # -*- encoding : utf-8 -*- APP_CONFIG = YAML.load_file("#{Rails.root}/config/application.yml")[Rails.env] +Dir[Rails.root.join("lib/ext/**/*.rb")].each {|f| require f} require 'modules' +require 'plugins' # Setup Smart HTTP GRack -require 'grack' config = {:project_root => File.join(APP_CONFIG['root_path'], 'git_projects'), :git_path => 'git', :upload_pack => true, :receive_pack => true} # Rosa::Application.config.middleware.insert_before 0, ::Grack::Handler, config Rosa::Application.config.middleware.insert_after ::Rails::Rack::Logger, ::Grack::Handler, config Rosa::Application.config.middleware.insert_before ::Grack::Handler, ::Grack::Auth - -Grit::Git.git_timeout = 60 -# Grit.debug = true -GAP_REPO_PATH = '/tmp/gap_repo.git' -unless File.directory? GAP_REPO_PATH - Grit::Repo.init_bare(GAP_REPO_PATH) - # FileUtils.chmod "a-w", GAP_REPO_PATH -end - -Dir[Rails.root.join("lib/ext/**/*.rb")].each {|f| require f} - -# add rpm spec as mime type for *.spec files -types = [ - ["text/x-python", ['py'], '8bit'], - ["text/x-rpm-spec", ['spec'], '8bit'], - ["text/x-csrc", ['h', 'c'], '8bit'], - ["text/x-c++src", ['cpp'], '8bit'] -] -types.each do |type| - MIME::Types.add MIME::Type.from_array(type) -end - -# load datatables plugin -require Rails.root.join("lib/rails_datatables") diff --git a/db/migrate/20120127141211_add_confirmable_to_users.rb b/db/migrate/20120127141211_add_confirmable_to_users.rb index 58be2ee72..d98d15f96 100644 --- a/db/migrate/20120127141211_add_confirmable_to_users.rb +++ b/db/migrate/20120127141211_add_confirmable_to_users.rb @@ -1,3 +1,4 @@ +# -*- encoding : utf-8 -*- class AddConfirmableToUsers < ActiveRecord::Migration def self.up add_column :users, :confirmation_token, :string diff --git a/db/migrate/20120326142636_confirm_all_registered_users.rb b/db/migrate/20120326142636_confirm_all_registered_users.rb index 7140f8847..01d28a683 100644 --- a/db/migrate/20120326142636_confirm_all_registered_users.rb +++ b/db/migrate/20120326142636_confirm_all_registered_users.rb @@ -1,3 +1,4 @@ +# -*- encoding : utf-8 -*- class ConfirmAllRegisteredUsers < ActiveRecord::Migration def up User.all.each { |user| user.confirm! } diff --git a/db/migrate/20120329181830_remove_auto_build_list.rb b/db/migrate/20120329181830_remove_auto_build_list.rb index a6fe98332..4c2faf71e 100644 --- a/db/migrate/20120329181830_remove_auto_build_list.rb +++ b/db/migrate/20120329181830_remove_auto_build_list.rb @@ -1,3 +1,4 @@ +# -*- encoding : utf-8 -*- class RemoveAutoBuildList < ActiveRecord::Migration def self.up drop_table :auto_build_lists @@ -13,4 +14,4 @@ class RemoveAutoBuildList < ActiveRecord::Migration t.datetime "updated_at" end end -end \ No newline at end of file +end diff --git a/db/migrate/20120329182602_delete_categories.rb b/db/migrate/20120329182602_delete_categories.rb index 7b2c9b985..c02664b7c 100644 --- a/db/migrate/20120329182602_delete_categories.rb +++ b/db/migrate/20120329182602_delete_categories.rb @@ -1,3 +1,4 @@ +# -*- encoding : utf-8 -*- class DeleteCategories < ActiveRecord::Migration def self.up remove_column :projects, :category_id @@ -14,4 +15,4 @@ class DeleteCategories < ActiveRecord::Migration end add_column :projects, :category_id, :integer end -end \ No newline at end of file +end diff --git a/db/schema.rb b/db/schema.rb index d1166777e..0bf60d4d1 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1,4 +1,4 @@ -# encoding: UTF-8 +# -*- encoding : utf-8 -*- # This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. @@ -17,8 +17,8 @@ ActiveRecord::Schema.define(:version => 20120329182602) do t.integer "user_id", :null => false t.string "kind" t.text "data" - t.datetime "created_at" - t.datetime "updated_at" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end create_table "arches", :force => true do |t| @@ -351,16 +351,16 @@ ActiveRecord::Schema.define(:version => 20120329182602) do t.string "name" t.string "email", :default => "", :null => false t.string "encrypted_password", :limit => 128, :default => "", :null => false - t.string "password_salt", :default => "", :null => false t.string "reset_password_token" t.datetime "remember_created_at" t.datetime "created_at" t.datetime "updated_at" + t.text "ssh_key" t.string "uname" t.string "role" t.string "language", :default => "en" - t.integer "own_projects_count", :default => 0, :null => false t.datetime "reset_password_sent_at" + t.integer "own_projects_count", :default => 0, :null => false t.text "professional_experience" t.string "site" t.string "company" diff --git a/lib/ext/gollum.rb b/lib/ext/git/gollum.rb similarity index 98% rename from lib/ext/gollum.rb rename to lib/ext/git/gollum.rb index 817aa5f30..3f8959ce0 100644 --- a/lib/ext/gollum.rb +++ b/lib/ext/git/gollum.rb @@ -1,5 +1,4 @@ # -*- encoding : utf-8 -*- -# # -*- encoding : utf-8 -*- module Gollum class Wiki # Public: Applies a reverse diff for a given page. If only 1 SHA is given, diff --git a/lib/ext/grit.rb b/lib/ext/git/grit.rb similarity index 86% rename from lib/ext/grit.rb rename to lib/ext/git/grit.rb index d0cf5590f..1fbc50109 100644 --- a/lib/ext/grit.rb +++ b/lib/ext/git/grit.rb @@ -1,6 +1,4 @@ # -*- encoding : utf-8 -*- -# -*- ruby encoding: utf-8 -*- - module Grit class Blob @@ -48,3 +46,11 @@ module Grit end end + +Grit::Git.git_timeout = 60 +# Grit.debug = true +GAP_REPO_PATH = '/tmp/gap_repo.git' +unless File.directory? GAP_REPO_PATH + Grit::Repo.init_bare(GAP_REPO_PATH) + # FileUtils.chmod "a-w", GAP_REPO_PATH +end diff --git a/lib/git/diff/inline_callback.rb b/lib/ext/git/inline_callback.rb similarity index 100% rename from lib/git/diff/inline_callback.rb rename to lib/ext/git/inline_callback.rb diff --git a/lib/preregistration/devise/preregistration.rb b/lib/ext/preregistration.rb similarity index 100% rename from lib/preregistration/devise/preregistration.rb rename to lib/ext/preregistration.rb diff --git a/config/initializers/render_errors_in_forms.rb b/lib/ext/render_errors_in_forms.rb similarity index 100% rename from config/initializers/render_errors_in_forms.rb rename to lib/ext/render_errors_in_forms.rb diff --git a/lib/modules.rb b/lib/modules.rb index ce1b5057d..8bf81bcef 100644 --- a/lib/modules.rb +++ b/lib/modules.rb @@ -6,7 +6,5 @@ module Modules module Models extend ActiveSupport::Autoload - - autoload :Owner end end diff --git a/lib/modules/models/owner.rb b/lib/modules/models/owner.rb index 0b8aac509..06ca7fa9b 100644 --- a/lib/modules/models/owner.rb +++ b/lib/modules/models/owner.rb @@ -8,9 +8,6 @@ module Modules after_create lambda { relations.create :object_id => owner.id, :object_type => owner.class.to_s, :role => 'admin' } end - module InstanceMethods - end - module ClassMethods end end diff --git a/lib/modules/models/personal_repository.rb b/lib/modules/models/personal_repository.rb index 5b903ecae..d1a7f008e 100644 --- a/lib/modules/models/personal_repository.rb +++ b/lib/modules/models/personal_repository.rb @@ -8,30 +8,28 @@ module Modules after_create :create_personal_repository end - module InstanceMethods - def create_personal_repository - pl = platforms.build - pl.owner = self - pl.name = "#{self.uname}_personal" - pl.description = "#{self.uname}_personal" - pl.platform_type = 'personal' - pl.distrib_type = APP_CONFIG['distr_types'].first - pl.visibility = 'open' - pl.save! + def create_personal_repository + pl = platforms.build + pl.owner = self + pl.name = "#{self.uname}_personal" + pl.description = "#{self.uname}_personal" + pl.platform_type = 'personal' + pl.distrib_type = APP_CONFIG['distr_types'].first + pl.visibility = 'open' + pl.save! - rep = pl.repositories.build - rep.name = 'main' - rep.description = 'main' - rep.save! - end + rep = pl.repositories.build + rep.name = 'main' + rep.description = 'main' + rep.save! + end - def personal_platform - platforms.personal.first - end + def personal_platform + platforms.personal.first + end - def personal_repository - personal_platform.repositories.first - end + def personal_repository + personal_platform.repositories.first end module ClassMethods diff --git a/lib/modules/models/rsync_stub.rb b/lib/modules/models/rsync_stub.rb index 7865c232f..dfb8a6dd4 100644 --- a/lib/modules/models/rsync_stub.rb +++ b/lib/modules/models/rsync_stub.rb @@ -18,9 +18,6 @@ module Modules end end - module InstanceMethods - end - module ClassMethods end end diff --git a/lib/plugins.rb b/lib/plugins.rb new file mode 100644 index 000000000..42525c879 --- /dev/null +++ b/lib/plugins.rb @@ -0,0 +1,5 @@ +# -*- encoding : utf-8 -*- +Dir[File.join(File.dirname(__FILE__), 'plugins', '*.rb')].each do |f| + $:.unshift File.dirname(f) + require f +end diff --git a/lib/grack.rb b/lib/plugins/grack.rb similarity index 100% rename from lib/grack.rb rename to lib/plugins/grack.rb diff --git a/lib/grack/auth.rb b/lib/plugins/grack/auth.rb similarity index 100% rename from lib/grack/auth.rb rename to lib/plugins/grack/auth.rb diff --git a/lib/grack/base.rb b/lib/plugins/grack/base.rb similarity index 100% rename from lib/grack/base.rb rename to lib/plugins/grack/base.rb diff --git a/lib/grack/handler.rb b/lib/plugins/grack/handler.rb similarity index 100% rename from lib/grack/handler.rb rename to lib/plugins/grack/handler.rb diff --git a/lib/rails_datatables.rb b/lib/plugins/rails_datatables.rb similarity index 54% rename from lib/rails_datatables.rb rename to lib/plugins/rails_datatables.rb index ac2cdf3af..5ad8eb843 100644 --- a/lib/rails_datatables.rb +++ b/lib/plugins/rails_datatables.rb @@ -1,3 +1,4 @@ # -*- encoding : utf-8 -*- -require Rails.root.join('lib/rails_datatables/rails_datatables') +require_relative 'rails_datatables/rails_datatables' + ActionView::Base.send :include, RailsDatatables diff --git a/lib/rails_datatables/MIT-LICENSE b/lib/plugins/rails_datatables/MIT-LICENSE similarity index 94% rename from lib/rails_datatables/MIT-LICENSE rename to lib/plugins/rails_datatables/MIT-LICENSE index 9376605b2..f1fed1a0e 100644 --- a/lib/rails_datatables/MIT-LICENSE +++ b/lib/plugins/rails_datatables/MIT-LICENSE @@ -17,4 +17,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/lib/rails_datatables/README.md b/lib/plugins/rails_datatables/README.md similarity index 99% rename from lib/rails_datatables/README.md rename to lib/plugins/rails_datatables/README.md index cb40b3889..0106b7206 100644 --- a/lib/rails_datatables/README.md +++ b/lib/plugins/rails_datatables/README.md @@ -135,4 +135,4 @@ There is a more functionality offered by DataTables than this plugin currently p ### Credits -Copyright (c) 2009 [Phronos](http://phronos.com), released under the MIT license +Copyright (c) 2009 [Phronos](http://phronos.com), released under the MIT license \ No newline at end of file diff --git a/lib/rails_datatables/rails_datatables.rb b/lib/plugins/rails_datatables/rails_datatables.rb similarity index 100% rename from lib/rails_datatables/rails_datatables.rb rename to lib/plugins/rails_datatables/rails_datatables.rb diff --git a/lib/plugins/related_models.rb b/lib/plugins/related_models.rb new file mode 100644 index 000000000..46c5f7694 --- /dev/null +++ b/lib/plugins/related_models.rb @@ -0,0 +1,17 @@ +# -*- encoding : utf-8 -*- +module RelatedModels + extend ActiveSupport::Autoload + + autoload :ClassMethods + autoload :BelongsToHelpers + autoload :PolymorphicHelpers + autoload :UrlHelpers + autoload :Base +end + +class ActionController::Base + #include ClassMethods + def self.is_related_controller! + RelatedModels::Base.is_child!(self) + end +end diff --git a/vendor/plugins/related_models/app/controllers/related_models/base.rb b/lib/plugins/related_models/base.rb similarity index 100% rename from vendor/plugins/related_models/app/controllers/related_models/base.rb rename to lib/plugins/related_models/base.rb diff --git a/vendor/plugins/related_models/lib/related_models/belongs_to_helpers.rb b/lib/plugins/related_models/belongs_to_helpers.rb similarity index 100% rename from vendor/plugins/related_models/lib/related_models/belongs_to_helpers.rb rename to lib/plugins/related_models/belongs_to_helpers.rb diff --git a/vendor/plugins/related_models/lib/related_models/class_methods.rb b/lib/plugins/related_models/class_methods.rb similarity index 100% rename from vendor/plugins/related_models/lib/related_models/class_methods.rb rename to lib/plugins/related_models/class_methods.rb diff --git a/vendor/plugins/related_models/lib/related_models/polymorphic_helpers.rb b/lib/plugins/related_models/polymorphic_helpers.rb similarity index 100% rename from vendor/plugins/related_models/lib/related_models/polymorphic_helpers.rb rename to lib/plugins/related_models/polymorphic_helpers.rb diff --git a/vendor/plugins/related_models/lib/related_models/url_helpers.rb b/lib/plugins/related_models/url_helpers.rb similarity index 100% rename from vendor/plugins/related_models/lib/related_models/url_helpers.rb rename to lib/plugins/related_models/url_helpers.rb diff --git a/lib/plugins/rosa_presenter.rb b/lib/plugins/rosa_presenter.rb new file mode 100644 index 000000000..57b2b3b27 --- /dev/null +++ b/lib/plugins/rosa_presenter.rb @@ -0,0 +1,11 @@ +# -*- encoding : utf-8 -*- +module RosaPresenter + extend ActiveSupport::Autoload + + autoload :Activation + autoload :Base + + VERSION = "0.0.1" +end + +ActionController::Base.send(:include, RosaPresenter::Activation) diff --git a/lib/rosa_presenter/lib/activation.rb b/lib/plugins/rosa_presenter/activation.rb similarity index 83% rename from lib/rosa_presenter/lib/activation.rb rename to lib/plugins/rosa_presenter/activation.rb index 537a390fe..0a79bfa67 100644 --- a/lib/rosa_presenter/lib/activation.rb +++ b/lib/plugins/rosa_presenter/activation.rb @@ -13,5 +13,3 @@ module RosaPresenter end end end -ActionController::Base.send(:include, RosaPresenter::Activation) - diff --git a/lib/rosa_presenter/lib/base.rb b/lib/plugins/rosa_presenter/base.rb similarity index 100% rename from lib/rosa_presenter/lib/base.rb rename to lib/plugins/rosa_presenter/base.rb diff --git a/lib/rosa_presenter/rosa_presenter.rb b/lib/rosa_presenter/rosa_presenter.rb deleted file mode 100644 index 03e170b0f..000000000 --- a/lib/rosa_presenter/rosa_presenter.rb +++ /dev/null @@ -1,7 +0,0 @@ -# -*- encoding : utf-8 -*- -require File.dirname(__FILE__) + "/lib/activation" -require File.dirname(__FILE__) + "/lib/base" - -module RosaPresenter - VERSION = "0.0.1" -end diff --git a/spec/controllers/build_lists_controller_spec.rb b/spec/controllers/build_lists_controller_spec.rb index fced83574..eb8bb8d47 100644 --- a/spec/controllers/build_lists_controller_spec.rb +++ b/spec/controllers/build_lists_controller_spec.rb @@ -68,7 +68,7 @@ describe BuildListsController do context 'crud' do before(:each) do - platform = Factory(:platform_with_repos) + platform = FactoryGirl.create(:platform_with_repos) @create_params = { :build_list => { :project_version => 'latest_master', @@ -76,7 +76,7 @@ describe BuildListsController do :update_type => 'security', :include_repos => [platform.repositories.first.id] }, - :arches => [Factory(:arch).id], + :arches => [FactoryGirl.create(:arch).id], :bpls => [platform.id] } any_instance_of(Project, :versions => ['v1.0', 'v2.0']) @@ -91,24 +91,24 @@ describe BuildListsController do context 'for user' do before(:each) do - @build_list = Factory(:build_list_core) + @build_list = FactoryGirl.create(:build_list_core) @project = @build_list.project @owner_user = @project.owner - @member_user = Factory(:user) + @member_user = FactoryGirl.create(:user) rel = @project.relations.build(:role => 'reader') rel.object = @member_user rel.save - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @show_params = {:project_id => @project.id, :id => @build_list.id} end context 'for all build lists' do before(:each) do - @build_list1 = Factory(:build_list_core) - @build_list2 = Factory(:build_list_core, :project => Factory(:project, :visibility => 'hidden')) - @build_list3 = Factory(:build_list_core, :project => Factory(:project, :owner => @user, :visibility => 'hidden')) - @build_list4 = Factory(:build_list_core, :project => Factory(:project, :visibility => 'hidden')) + @build_list1 = FactoryGirl.create(:build_list_core) + @build_list2 = FactoryGirl.create(:build_list_core, :project => FactoryGirl.create(:project, :visibility => 'hidden')) + @build_list3 = FactoryGirl.create(:build_list_core, :project => FactoryGirl.create(:project, :owner => @user, :visibility => 'hidden')) + @build_list4 = FactoryGirl.create(:build_list_core, :project => FactoryGirl.create(:project, :visibility => 'hidden')) @build_list4.project.relations.create :role => 'reader', :object_id => @user.id, :object_type => 'User' end @@ -168,21 +168,21 @@ describe BuildListsController do context 'for group' do before(:each) do - @owner_group = Factory(:group) - @owner_user = Factory(:user) + @owner_group = FactoryGirl.create(:group) + @owner_user = FactoryGirl.create(:user) @owner_group.objects.create :role => 'reader', :object_id => @owner_user.id, :object_type => 'User' - @member_group = Factory(:group) - @member_user = Factory(:user) + @member_group = FactoryGirl.create(:group) + @member_user = FactoryGirl.create(:user) @member_group.objects.create :role => 'reader', :object_id => @member_user.id, :object_type => 'User' - @group = Factory(:group) - @user = Factory(:user) + @group = FactoryGirl.create(:group) + @user = FactoryGirl.create(:user) @group.objects.create :role => 'reader', :object_id => @user.id, :object_type => 'User' - @project = Factory(:project, :owner => @owner_group) + @project = FactoryGirl.create(:project, :owner => @owner_group) @project.relations.create :role => 'reader', :object_id => @member_group.id, :object_type => 'Group' - @build_list = Factory(:build_list_core, :project => @project) + @build_list = FactoryGirl.create(:build_list_core, :project => @project) set_session_for(@user) @show_params = {:project_id => @project.id, :id => @build_list.id} @@ -190,10 +190,10 @@ describe BuildListsController do context 'for all build lists' do before(:each) do - @build_list1 = Factory(:build_list_core) - @build_list2 = Factory(:build_list_core, :project => Factory(:project, :visibility => 'hidden')) - @build_list3 = Factory(:build_list_core, :project => Factory(:project, :owner => @group, :visibility => 'hidden')) - @build_list4 = Factory(:build_list_core, :project => Factory(:project, :visibility => 'hidden')) + @build_list1 = FactoryGirl.create(:build_list_core) + @build_list2 = FactoryGirl.create(:build_list_core, :project => FactoryGirl.create(:project, :visibility => 'hidden')) + @build_list3 = FactoryGirl.create(:build_list_core, :project => FactoryGirl.create(:project, :owner => @group, :visibility => 'hidden')) + @build_list4 = FactoryGirl.create(:build_list_core, :project => FactoryGirl.create(:project, :visibility => 'hidden')) @build_list4.project.relations.create :role => 'reader', :object_id => @group.id, :object_type => 'Group' end @@ -253,7 +253,7 @@ describe BuildListsController do end context 'for admin' do - before(:each) { set_session_for Factory(:admin) } + before(:each) { set_session_for FactoryGirl.create(:admin) } it "should be able to perform index action without exception" do any_instance_of(XMLRPC::Client) do |xml_rpc| @@ -271,12 +271,12 @@ describe BuildListsController do context 'filter' do before(:each) do - set_session_for Factory(:admin) + set_session_for FactoryGirl.create(:admin) - @build_list1 = Factory(:build_list_core) - @build_list2 = Factory(:build_list_core) - @build_list3 = Factory(:build_list_core) - @build_list4 = Factory(:build_list_core, :created_at => (Time.now - 1.day), + @build_list1 = FactoryGirl.create(:build_list_core) + @build_list2 = FactoryGirl.create(:build_list_core) + @build_list3 = FactoryGirl.create(:build_list_core) + @build_list4 = FactoryGirl.create(:build_list_core, :created_at => (Time.now - 1.day), :project => @build_list3.project, :pl => @build_list3.pl, :arch => @build_list3.arch) end @@ -310,7 +310,7 @@ describe BuildListsController do end context 'callbacks' do - let(:build_list) { Factory(:build_list_core) } + let(:build_list) { FactoryGirl.create(:build_list_core) } describe 'publish_build' do before { test_git_commit(build_list.project); build_list.update_attribute :commit_hash, build_list.project.git_repository.commits('master').last.id } diff --git a/spec/controllers/collaborators_controller_spec.rb b/spec/controllers/collaborators_controller_spec.rb index 02383d998..2ce30fbf6 100644 --- a/spec/controllers/collaborators_controller_spec.rb +++ b/spec/controllers/collaborators_controller_spec.rb @@ -38,8 +38,8 @@ end describe CollaboratorsController do before(:each) do stub_rsync_methods - @project = Factory(:project) - @another_user = Factory(:user) + @project = FactoryGirl.create(:project) + @another_user = FactoryGirl.create(:user) @update_params = {:user => {@another_user.id => :reader}} end @@ -57,7 +57,7 @@ describe CollaboratorsController do context 'for global admin' do before(:each) do - @admin = Factory(:admin) + @admin = FactoryGirl.create(:admin) set_session_for(@admin) end @@ -66,10 +66,10 @@ describe CollaboratorsController do context 'for admin user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) @user.relations set_session_for(@user) - @group = Factory(:group) + @group = FactoryGirl.create(:group) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'admin') end @@ -91,7 +91,7 @@ describe CollaboratorsController do context 'for owner user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @project.update_attribute(:owner, @user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'admin') @@ -102,7 +102,7 @@ describe CollaboratorsController do context 'for reader user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @project.update_attribute(:owner, @user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'reader') @@ -113,7 +113,7 @@ describe CollaboratorsController do context 'for writer user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @project.update_attribute(:owner, @user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'writer') diff --git a/spec/controllers/comments_controller_for_commit_spec.rb b/spec/controllers/comments_controller_for_commit_spec.rb index db9210afc..644245f28 100644 --- a/spec/controllers/comments_controller_for_commit_spec.rb +++ b/spec/controllers/comments_controller_for_commit_spec.rb @@ -79,7 +79,7 @@ end describe CommentsController do before(:each) do stub_rsync_methods - @project = Factory(:project) + @project = FactoryGirl.create(:project) %x(cp -Rf #{Rails.root}/spec/tests.git/* #{@project.git_repository.path}) # maybe FIXME ? @commit = @project.git_repository.commits.first @@ -87,8 +87,8 @@ describe CommentsController do @update_params = {:comment => {:body => 'updated'}, :project_id => @project.id, :commit_id => @commit.id} any_instance_of(Project, :versions => ['v1.0', 'v2.0']) - @stranger_comment = create_comment Factory(:user) - @user = Factory(:user) + @stranger_comment = create_comment FactoryGirl.create(:user) + @user = FactoryGirl.create(:user) @own_comment = create_comment @user set_session_for(@user) end diff --git a/spec/controllers/comments_controller_spec.rb b/spec/controllers/comments_controller_spec.rb index b84b63d67..188b323b8 100644 --- a/spec/controllers/comments_controller_spec.rb +++ b/spec/controllers/comments_controller_spec.rb @@ -74,18 +74,18 @@ describe CommentsController do before(:each) do stub_rsync_methods - @project = Factory(:project) - @issue = Factory(:issue, :project_id => @project.id, :creator => Factory(:user)) - @comment = Factory(:comment, :commentable => @issue, :project_id => @project.id) + @project = FactoryGirl.create(:project) + @issue = FactoryGirl.create(:issue, :project_id => @project.id, :creator => FactoryGirl.create(:user)) + @comment = FactoryGirl.create(:comment, :commentable => @issue, :project_id => @project.id) @create_params = {:comment => {:body => 'I am a comment!'}, :project_id => @project.id, :issue_id => @issue.serial_id} @update_params = {:comment => {:body => 'updated'}, :project_id => @project.id, :issue_id => @issue.serial_id} any_instance_of(Project, :versions => ['v1.0', 'v2.0']) - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) - @own_comment = Factory(:comment, :commentable => @issue, :user => @user, :project_id => @project.id) + @own_comment = FactoryGirl.create(:comment, :commentable => @issue, :user => @user, :project_id => @project.id) end context 'for project admin user' do diff --git a/spec/controllers/groups_controller_spec.rb b/spec/controllers/groups_controller_spec.rb index 4dcb8d44f..cafbaee12 100644 --- a/spec/controllers/groups_controller_spec.rb +++ b/spec/controllers/groups_controller_spec.rb @@ -70,8 +70,8 @@ end describe GroupsController do before(:each) do stub_rsync_methods - @group = Factory(:group) - @another_user = Factory(:user) + @group = FactoryGirl.create(:group) + @another_user = FactoryGirl.create(:user) @create_params = {:group => {:description => 'grp1', :uname => 'un_grp1'}} @update_params = {:group => {:description => 'grp2'}} end @@ -95,7 +95,7 @@ describe GroupsController do context 'for global admin' do before(:each) do - @admin = Factory(:admin) + @admin = FactoryGirl.create(:admin) set_session_for(@admin) end @@ -115,7 +115,7 @@ describe GroupsController do context 'for group admin' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @group.objects.create(:object_type => 'User', :object_id => @user.id, :role => 'admin') end @@ -127,7 +127,7 @@ describe GroupsController do context 'for group owner' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @group.update_attribute(:owner, @user) @group.objects.create(:object_type => 'User', :object_id => @user.id, :role => 'admin') @@ -139,7 +139,7 @@ describe GroupsController do context 'for group reader and writer user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @group.objects.create(:object_type => 'User', :object_id => @user.id, :role => 'reader') end diff --git a/spec/controllers/issues_controller_spec.rb b/spec/controllers/issues_controller_spec.rb index eb2579ae6..283586221 100644 --- a/spec/controllers/issues_controller_spec.rb +++ b/spec/controllers/issues_controller_spec.rb @@ -75,12 +75,12 @@ describe IssuesController do before(:each) do stub_rsync_methods - @project = Factory(:project) - @issue_user = Factory(:user) + @project = FactoryGirl.create(:project) + @issue_user = FactoryGirl.create(:user) any_instance_of(Project, :versions => ['v1.0', 'v2.0']) - @issue = Factory(:issue, :project_id => @project.id, :user_id => @issue_user.id) + @issue = FactoryGirl.create(:issue, :project_id => @project.id, :user_id => @issue_user.id) @create_params = { :project_id => @project.id, :issue => { @@ -98,13 +98,13 @@ describe IssuesController do } } - @project_with_turned_off_issues = Factory(:project, :has_issues => false) - @turned_of_issue = Factory(:issue, :project_id => @project_with_turned_off_issues.id, :user_id => @issue_user.id) + @project_with_turned_off_issues = FactoryGirl.create(:project, :has_issues => false) + @turned_of_issue = FactoryGirl.create(:issue, :project_id => @project_with_turned_off_issues.id, :user_id => @issue_user.id) end context 'for global admin user' do before(:each) do - @admin = Factory(:admin) + @admin = FactoryGirl.create(:admin) set_session_for(@admin) end @@ -113,7 +113,7 @@ describe IssuesController do context 'for project admin user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'admin') end @@ -127,7 +127,7 @@ describe IssuesController do context 'for project owner user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @project.update_attribute(:owner, @user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'admin') @@ -142,7 +142,7 @@ describe IssuesController do context 'for project reader user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'reader') end @@ -164,7 +164,7 @@ describe IssuesController do context 'for project writer user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'writer') end diff --git a/spec/controllers/members_controller_spec.rb b/spec/controllers/members_controller_spec.rb index ab8ab5fbe..9ed19484e 100644 --- a/spec/controllers/members_controller_spec.rb +++ b/spec/controllers/members_controller_spec.rb @@ -4,10 +4,10 @@ require 'spec_helper' describe MembersController do before(:each) do stub_rsync_methods - @group = Factory(:group) + @group = FactoryGirl.create(:group) @user = @group.owner set_session_for @user - @another_user = Factory(:user) + @another_user = FactoryGirl.create(:user) @add_params = {:group_id => @group.id, :user_id => @another_user.uname} end diff --git a/spec/controllers/personal_repositories_controller_spec.rb b/spec/controllers/personal_repositories_controller_spec.rb index b413f28fd..3c80c2469 100644 --- a/spec/controllers/personal_repositories_controller_spec.rb +++ b/spec/controllers/personal_repositories_controller_spec.rb @@ -48,10 +48,10 @@ describe PersonalRepositoriesController do before(:each) do stub_rsync_methods - @repository = Factory(:personal_repository) - @platform = Factory(:platform) - @project = Factory(:project) - @another_user = Factory(:user) + @repository = FactoryGirl.create(:personal_repository) + @platform = FactoryGirl.create(:platform) + @project = FactoryGirl.create(:project) + @another_user = FactoryGirl.create(:user) @create_params = {:repository => {:name => 'pro', :description => 'pro2'}, :platform_id => @platform.id} end @@ -66,7 +66,7 @@ describe PersonalRepositoriesController do context 'for global admin' do before(:each) do - @admin = Factory(:admin) + @admin = FactoryGirl.create(:admin) @project.update_attribute(:owner, @admin) set_session_for(@admin) end @@ -78,7 +78,7 @@ describe PersonalRepositoriesController do pending 'for anyone except admin' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) end @@ -86,7 +86,7 @@ describe PersonalRepositoriesController do context 'for owner user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) @project.update_attribute(:owner, @user) @@ -103,7 +103,7 @@ describe PersonalRepositoriesController do context 'for reader user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) @repository.platform.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'reader') set_session_for(@user) end diff --git a/spec/controllers/platforms_controller_spec.rb b/spec/controllers/platforms_controller_spec.rb index 7d5361ffd..285a8a491 100644 --- a/spec/controllers/platforms_controller_spec.rb +++ b/spec/controllers/platforms_controller_spec.rb @@ -37,9 +37,9 @@ describe PlatformsController do before(:each) do stub_rsync_methods - @platform = Factory(:platform) - @personal_platform = Factory(:platform, :platform_type => 'personal') - @user = Factory(:user) + @platform = FactoryGirl.create(:platform) + @personal_platform = FactoryGirl.create(:platform, :platform_type => 'personal') + @user = FactoryGirl.create(:user) @create_params = {:platform => { :name => 'pl1', :description => 'pl1', @@ -67,8 +67,8 @@ describe PlatformsController do context 'for global admin' do before(:each) do - @admin = Factory(:admin) - @user = Factory(:user) + @admin = FactoryGirl.create(:admin) + @user = FactoryGirl.create(:user) set_session_for(@admin) end @@ -103,7 +103,7 @@ describe PlatformsController do context 'for owner user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @platform.update_attribute(:owner, @user) @platform.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'admin') @@ -126,7 +126,7 @@ describe PlatformsController do context 'for reader user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @platform.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'reader') end diff --git a/spec/controllers/product_build_lists_controller_spec.rb b/spec/controllers/product_build_lists_controller_spec.rb index a83ce48d7..053063354 100644 --- a/spec/controllers/product_build_lists_controller_spec.rb +++ b/spec/controllers/product_build_lists_controller_spec.rb @@ -11,7 +11,7 @@ describe ProductBuildListsController do {:product_id => product.id, :platform_id => product.platform_id} end - let(:product) { Factory(:product) } + let(:product) { FactoryGirl.create(:product) } context 'for guest' do it 'should not be able to perform create action' do @@ -21,7 +21,7 @@ describe ProductBuildListsController do end context 'for user' do - before(:each) { set_session_for Factory(:user) } + before(:each) { set_session_for FactoryGirl.create(:user) } it 'should not be able to perform create action' do post :create, valid_attributes @@ -30,7 +30,7 @@ describe ProductBuildListsController do end context 'for admin' do - before(:each) { set_session_for Factory(:admin) } + before(:each) { set_session_for FactoryGirl.create(:admin) } it "creates a new ProductBuildList" do expect { @@ -46,7 +46,7 @@ describe ProductBuildListsController do end context 'callbacks' do - let(:product_build_list) { Factory(:product_build_list) } + let(:product_build_list) { FactoryGirl.create(:product_build_list) } def do_get get :status_build, :id => product_build_list.id, :status => ProductBuildList::BUILD_FAILED diff --git a/spec/controllers/products_controller_spec.rb b/spec/controllers/products_controller_spec.rb index 6f57b2b45..3fb5373c1 100644 --- a/spec/controllers/products_controller_spec.rb +++ b/spec/controllers/products_controller_spec.rb @@ -5,9 +5,9 @@ describe ProductsController do before(:each) do stub_rsync_methods - @another_user = Factory(:user) - @platform = Factory(:platform) - @product = Factory(:product, :platform => @platform) + @another_user = FactoryGirl.create(:user) + @platform = FactoryGirl.create(:platform) + @product = FactoryGirl.create(:product, :platform => @platform) @create_params = {:product => {:name => 'pro'}, :platform_id => @platform.id} @update_params = {:product => {:name => 'pro2'}, :platform_id => @platform.id} end @@ -30,7 +30,7 @@ describe ProductsController do context 'for global admin' do before(:each) do - @admin = Factory(:admin) + @admin = FactoryGirl.create(:admin) set_session_for(@admin) end @@ -60,7 +60,7 @@ describe ProductsController do context 'for admin relation user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @platform.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'admin') end @@ -91,7 +91,7 @@ describe ProductsController do context 'for no relation user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) end diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index 6598ee7e6..a4b302264 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -5,8 +5,8 @@ describe ProjectsController do before(:each) do stub_rsync_methods - @project = Factory(:project) - @another_user = Factory(:user) + @project = FactoryGirl.create(:project) + @another_user = FactoryGirl.create(:user) @create_params = {:project => {:name => 'pro'}} @update_params = {:project => {:name => 'pro2'}} end @@ -25,7 +25,7 @@ describe ProjectsController do context 'for admin' do before(:each) do - @admin = Factory(:admin) + @admin = FactoryGirl.create(:admin) set_session_for(@admin) end @@ -44,7 +44,7 @@ describe ProjectsController do context 'for owner user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @project.update_attribute(:owner, @user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'admin') @@ -70,7 +70,7 @@ describe ProjectsController do context 'for reader user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'reader') end @@ -80,7 +80,7 @@ describe ProjectsController do context 'for writer user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'writer') end @@ -91,9 +91,9 @@ describe ProjectsController do context 'search projects' do before(:each) do - @admin = Factory(:admin) - @project1 = Factory(:project, :name => 'perl-debug') - @project2 = Factory(:project, :name => 'perl') + @admin = FactoryGirl.create(:admin) + @project1 = FactoryGirl.create(:project, :name => 'perl-debug') + @project2 = FactoryGirl.create(:project, :name => 'perl') set_session_for(@admin) end diff --git a/spec/controllers/repositories_controller_spec.rb b/spec/controllers/repositories_controller_spec.rb index 422fb5128..84600471f 100644 --- a/spec/controllers/repositories_controller_spec.rb +++ b/spec/controllers/repositories_controller_spec.rb @@ -5,11 +5,11 @@ describe RepositoriesController do before(:each) do stub_rsync_methods - @repository = Factory(:repository) - @personal_repository = Factory(:personal_repository) - @platform = Factory(:platform) - @project = Factory(:project) - @another_user = Factory(:user) + @repository = FactoryGirl.create(:repository) + @personal_repository = FactoryGirl.create(:personal_repository) + @platform = FactoryGirl.create(:platform) + @project = FactoryGirl.create(:project) + @another_user = FactoryGirl.create(:user) @create_params = {:repository => {:name => 'pro', :description => 'pro2'}, :platform_id => @platform.id} end @@ -31,7 +31,7 @@ describe RepositoriesController do context 'for admin' do before(:each) do - @admin = Factory(:admin) + @admin = FactoryGirl.create(:admin) set_session_for(@admin) end @@ -54,7 +54,7 @@ describe RepositoriesController do context 'for anyone except admin' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) end @@ -77,7 +77,7 @@ describe RepositoriesController do context 'for owner user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @repository.platform.update_attribute(:owner, @user) @repository.platform.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'admin') @@ -88,7 +88,7 @@ describe RepositoriesController do context 'for reader user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @repository.platform.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'reader') end diff --git a/spec/controllers/subscribes_controller_spec.rb b/spec/controllers/subscribes_controller_spec.rb index f9ffbf884..c1b4c3f02 100644 --- a/spec/controllers/subscribes_controller_spec.rb +++ b/spec/controllers/subscribes_controller_spec.rb @@ -51,8 +51,8 @@ describe SubscribesController do before(:each) do stub_rsync_methods - @project = Factory(:project) - @issue = Factory(:issue, :project_id => @project.id) + @project = FactoryGirl.create(:project) + @issue = FactoryGirl.create(:issue, :project_id => @project.id) @create_params = {:issue_id => @issue.serial_id, :project_id => @project.id} @destroy_params = {:issue_id => @issue.serial_id, :project_id => @project.id} @@ -64,7 +64,7 @@ describe SubscribesController do context 'for global admin user' do before(:each) do - @user = Factory(:admin) + @user = FactoryGirl.create(:admin) set_session_for(@user) @project.relations.create!(:object_type => 'User', :object_id => @user.id, :role => 'admin') @destroy_params = @destroy_params.merge({:id => @user.id}) @@ -87,7 +87,7 @@ describe SubscribesController do context 'for simple user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) set_session_for(@user) @destroy_params = @destroy_params.merge({:id => @user.id}) end diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index 7a15ae171..15b46647a 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -5,11 +5,11 @@ describe UsersController do before(:each) do stub_rsync_methods - @simple_user = Factory(:user) - @other_user = Factory(:user) - @admin = Factory(:admin) + @simple_user = FactoryGirl.create(:user) + @other_user = FactoryGirl.create(:user) + @admin = FactoryGirl.create(:admin) %w[user1 user2 user3].each do |uname| - Factory(:user, :uname => uname, :email => "#{ uname }@nonexistanceserver.com") + FactoryGirl.create(:user, :uname => uname, :email => "#{ uname }@nonexistanceserver.com") end @update_params = {:email => 'new_email@test.com'} end diff --git a/spec/factories/_sequences.rb b/spec/factories/_sequences.rb index 4ca94b27f..347b80e09 100644 --- a/spec/factories/_sequences.rb +++ b/spec/factories/_sequences.rb @@ -1,30 +1,32 @@ # -*- encoding : utf-8 -*- -Factory.sequence :integer do |n| - n -end +FactoryGirl.define do + sequence :integer do |n| + n + end -Factory.sequence :string do |n| - "Lorem ipsum #{n}" -end + sequence :string do |n| + "Lorem ipsum #{n}" + end -Factory.sequence :uname do |n| - "test#{n}" -end + sequence :uname do |n| + "test#{n}" + end -Factory.sequence :unixname do |n| - "test_unixname#{n}" -end + sequence :unixname do |n| + "test_unixname#{n}" + end -Factory.sequence :email do |n| - "email#{n}@example.com" -end + sequence :email do |n| + "email#{n}@example.com" + end -Factory.sequence :text do |n| - "#{n}. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." -end + sequence :text do |n| + "#{n}. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + end -Factory.sequence :text_file do |n| - stringio = StringIO.new("this is file content #{n}") - stringio.instance_eval("def original_filename; 'stringio#{n}.txt'; end ") - stringio + sequence :text_file do |n| + stringio = StringIO.new("this is file content #{n}") + stringio.instance_eval("def original_filename; 'stringio#{n}.txt'; end ") + stringio + end end diff --git a/spec/factories/arch_factory.rb b/spec/factories/arch_factory.rb index 068a02d55..e72251a9d 100644 --- a/spec/factories/arch_factory.rb +++ b/spec/factories/arch_factory.rb @@ -1,4 +1,6 @@ # -*- encoding : utf-8 -*- -Factory.define(:arch) do |p| - p.name { Factory.next(:string) } +FactoryGirl.define do + factory :arch do + name { FactoryGirl.generate(:string) } + end end diff --git a/spec/factories/build_list_factory.rb b/spec/factories/build_list_factory.rb index f82f6cd82..f48df51a8 100644 --- a/spec/factories/build_list_factory.rb +++ b/spec/factories/build_list_factory.rb @@ -1,17 +1,19 @@ # -*- encoding : utf-8 -*- -Factory.define(:build_list) do |p| - p.association :user - p.association :project - p.association :pl, :factory => :platform_with_repos - p.association :arch - p.bpl {|bl| bl.pl} - p.project_version "1.0" - p.build_requires true - p.update_type 'security' - p.include_repos {|bl| bl.pl.repositories.map(&:id)} - p.commit_hash '1234567890abcdef1234567890abcdef12345678' -end +FactoryGirl.define do + factory :build_list do + association :user + association :project + association :pl, :factory => :platform_with_repos + association :arch + bpl {|bl| bl.pl} + project_version "1.0" + build_requires true + update_type 'security' + include_repos {|bl| bl.pl.repositories.map(&:id)} + commit_hash '1234567890abcdef1234567890abcdef12345678' + end -Factory.define(:build_list_core, :parent => :build_list) do |p| - p.bs_id { Factory.next(:integer) } + factory :build_list_core, :parent => :build_list do + bs_id { FactoryGirl.generate(:integer) } + end end diff --git a/spec/factories/comments.rb b/spec/factories/comments.rb index c787bebcd..145b50ca6 100644 --- a/spec/factories/comments.rb +++ b/spec/factories/comments.rb @@ -1,6 +1,8 @@ # -*- encoding : utf-8 -*- -Factory.define(:comment) do |p| - p.body { Factory.next(:string) } - p.association :user, :factory => :user - p.association :commentable, :factory => :issue +FactoryGirl.define do + factory :comment do + body { FactoryGirl.generate(:string) } + association :user, :factory => :user + association :commentable, :factory => :issue + end end diff --git a/spec/factories/group_factory.rb b/spec/factories/group_factory.rb index 57dee6213..28710e242 100644 --- a/spec/factories/group_factory.rb +++ b/spec/factories/group_factory.rb @@ -1,6 +1,8 @@ # -*- encoding : utf-8 -*- -Factory.define(:group) do |g| - g.uname { Factory.next(:uname) } - g.description 'Description' - g.association :owner, :factory => :user +FactoryGirl.define do + factory :group do + uname { FactoryGirl.generate(:uname) } + description 'Description' + association :owner, :factory => :user + end end diff --git a/spec/factories/issues.rb b/spec/factories/issues.rb index dba0b93ab..1028447f7 100644 --- a/spec/factories/issues.rb +++ b/spec/factories/issues.rb @@ -1,9 +1,11 @@ # -*- encoding : utf-8 -*- -Factory.define(:issue) do |p| - p.title { Factory.next(:string) } - p.body { Factory.next(:string) } - p.association :project, :factory => :project - p.association :user, :factory => :user - p.association :creator, :factory => :user - p.status "open" +FactoryGirl.define do + factory :issue do + title { FactoryGirl.generate(:string) } + body { FactoryGirl.generate(:string) } + association :project, :factory => :project + association :user, :factory => :user + association :creator, :factory => :user + status "open" + end end diff --git a/spec/factories/platform_factory.rb b/spec/factories/platform_factory.rb index 8dc7c74d6..699e13793 100644 --- a/spec/factories/platform_factory.rb +++ b/spec/factories/platform_factory.rb @@ -1,12 +1,14 @@ # -*- encoding : utf-8 -*- -Factory.define(:platform) do |p| - p.description { Factory.next(:string) } - p.name { Factory.next(:unixname) } - p.platform_type 'main' - p.distrib_type APP_CONFIG['distr_types'].first - p.association :owner, :factory => :user -end +FactoryGirl.define do + factory :platform do + description { FactoryGirl.generate(:string) } + name { FactoryGirl.generate(:unixname) } + platform_type 'main' + distrib_type APP_CONFIG['distr_types'].first + association :owner, :factory => :user + end -Factory.define(:platform_with_repos, :parent => :platform) do |p| - p.repositories {|r| [r.association(:repository)]} + factory :platform_with_repos, :parent => :platform do + repositories {|r| [r.association(:repository)]} + end end diff --git a/spec/factories/private_user_factory.rb b/spec/factories/private_user_factory.rb index 1bdec2b4b..6edfe5804 100644 --- a/spec/factories/private_user_factory.rb +++ b/spec/factories/private_user_factory.rb @@ -1,7 +1,9 @@ # -*- encoding : utf-8 -*- -Factory.define(:private_user) do |p| - p.login { Factory.next(:string) } - p.password { Factory.next(:string) } - p.association :platform, :factory => :platform - p.association :user, :factory => :user +FactoryGirl.define do + factory :private_user do + login { FactoryGirl.generate(:string) } + password { FactoryGirl.generate(:string) } + association :platform, :factory => :platform + association :user, :factory => :user + end end diff --git a/spec/factories/product_build_list_factory.rb b/spec/factories/product_build_list_factory.rb index 89077f19e..ef7642340 100644 --- a/spec/factories/product_build_list_factory.rb +++ b/spec/factories/product_build_list_factory.rb @@ -1,4 +1,6 @@ # -*- encoding : utf-8 -*- -Factory.define(:product_build_list) do |p| - p.association :product, :factory => :product +FactoryGirl.define do + factory :product_build_list do + association :product, :factory => :product + end end diff --git a/spec/factories/product_factory.rb b/spec/factories/product_factory.rb index 73ad8eb2b..428d10ea1 100644 --- a/spec/factories/product_factory.rb +++ b/spec/factories/product_factory.rb @@ -1,5 +1,7 @@ # -*- encoding : utf-8 -*- -Factory.define(:product) do |p| - p.name { Factory.next(:string) } - p.association :platform, :factory => :platform +FactoryGirl.define do + factory :product do + name { FactoryGirl.generate(:string) } + association :platform, :factory => :platform + end end diff --git a/spec/factories/project_factory.rb b/spec/factories/project_factory.rb index 5233013b0..f82a8e20d 100644 --- a/spec/factories/project_factory.rb +++ b/spec/factories/project_factory.rb @@ -1,6 +1,8 @@ # -*- encoding : utf-8 -*- -Factory.define(:project) do |p| - p.description { Factory.next(:string) } - p.name { Factory.next(:unixname) } - p.association :owner, :factory => :user +FactoryGirl.define do + factory :project do + description { FactoryGirl.generate(:string) } + name { FactoryGirl.generate(:unixname) } + association :owner, :factory => :user + end end diff --git a/spec/factories/register_requests.rb b/spec/factories/register_requests.rb index 381fab6f0..121e95527 100644 --- a/spec/factories/register_requests.rb +++ b/spec/factories/register_requests.rb @@ -4,7 +4,7 @@ FactoryGirl.define do factory :register_request do name "MyString" - email { Factory.next(:email) } + email { FactoryGirl.generate(:email) } token "MyString" interest "MyString" more "MyText" diff --git a/spec/factories/repository_factory.rb b/spec/factories/repository_factory.rb index 4af755b28..c8fbd95a1 100644 --- a/spec/factories/repository_factory.rb +++ b/spec/factories/repository_factory.rb @@ -1,14 +1,16 @@ # -*- encoding : utf-8 -*- -Factory.define(:repository) do |p| - p.description { Factory.next(:string) } - p.name { Factory.next(:unixname) } - p.association :platform, :factory => :platform -end +FactoryGirl.define do + factory :repository do + description { FactoryGirl.generate(:string) } + name { FactoryGirl.generate(:unixname) } + association :platform, :factory => :platform + end -Factory.define(:personal_repository, :parent => :repository) do |p| - p.after_create {|r| - r.platform.platform_type = 'personal' - r.platform.visibility = 'hidden' - r.platform.save! - } + factory :personal_repository, :parent => :repository do + after_create {|r| + r.platform.platform_type = 'personal' + r.platform.visibility = 'hidden' + r.platform.save! + } + end end diff --git a/spec/factories/subscribes.rb b/spec/factories/subscribes.rb index de06d1095..1bd26d487 100644 --- a/spec/factories/subscribes.rb +++ b/spec/factories/subscribes.rb @@ -1,5 +1,7 @@ # -*- encoding : utf-8 -*- -Factory.define(:subscribe) do |p| - p.association :subscribeable, :factory => :issue - p.association :user, :factory => :user +FactoryGirl.define do + factory :subscribe do + association :subscribeable, :factory => :issue + association :user, :factory => :user + end end diff --git a/spec/factories/user_factory.rb b/spec/factories/user_factory.rb index 0f89547fb..c1d8a5f92 100644 --- a/spec/factories/user_factory.rb +++ b/spec/factories/user_factory.rb @@ -1,17 +1,15 @@ # -*- encoding : utf-8 -*- -Factory.define(:user) do |u| - u.email { Factory.next(:email) } - u.name { Factory.next(:string) } - u.uname { Factory.next(:uname) } - u.password '123456' - u.password_confirmation { |user| user.password } -end +FactoryGirl.define do + factory :user do + email { FactoryGirl.generate(:email) } + name { FactoryGirl.generate(:string) } + uname { FactoryGirl.generate(:uname) } + password '123456' + password_confirmation {|u| u.password} + confirmed_at { Time.current } + end -Factory.define(:admin, :class => 'User') do |u| - u.email { Factory.next(:email) } - u.name { Factory.next(:string) } - u.uname { Factory.next(:uname) } - u.password '123456' - u.password_confirmation { |user| user.password } - u.role 'admin' + factory :admin, :parent => :user do + role 'admin' + end end diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index 07967ee93..6f2eb107a 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -8,12 +8,12 @@ describe UserMailer do before(:each) do stub_rsync_methods - @project = Factory(:project) - @issue_user = Factory(:user) + @project = FactoryGirl.create(:project) + @issue_user = FactoryGirl.create(:user) any_instance_of(Project, :versions => ['v1.0', 'v2.0']) - @issue = Factory(:issue, :project_id => @project.id, :user_id => @issue_user.id, :creator => @issue_user) + @issue = FactoryGirl.create(:issue, :project_id => @project.id, :user_id => @issue_user.id, :creator => @issue_user) @email = UserMailer.new_issue_notification(@issue, @issue_user).deliver end @@ -46,13 +46,13 @@ describe UserMailer do before(:each) do stub_rsync_methods - @project = Factory(:project) - @issue_user = Factory(:user) - @user = Factory(:user) + @project = FactoryGirl.create(:project) + @issue_user = FactoryGirl.create(:user) + @user = FactoryGirl.create(:user) any_instance_of(Project, :versions => ['v1.0', 'v2.0']) - @issue = Factory(:issue, :project_id => @project.id, :user_id => @issue_user.id, :creator => @issue_user) + @issue = FactoryGirl.create(:issue, :project_id => @project.id, :user_id => @issue_user.id, :creator => @issue_user) @email = UserMailer.issue_assign_notification(@issue, @user).deliver end @@ -82,14 +82,14 @@ describe UserMailer do before(:each) do stub_rsync_methods - @project = Factory(:project) - @issue_user = Factory(:user) - @user = Factory(:user) + @project = FactoryGirl.create(:project) + @issue_user = FactoryGirl.create(:user) + @user = FactoryGirl.create(:user) any_instance_of(Project, :versions => ['v1.0', 'v2.0']) - @issue = Factory(:issue, :project_id => @project.id, :user_id => @issue_user.id, :creator => @issue_user) - @comment = Factory(:comment, :commentable => @issue, :user_id => @user.id, :project => @project) + @issue = FactoryGirl.create(:issue, :project_id => @project.id, :user_id => @issue_user.id, :creator => @issue_user) + @comment = FactoryGirl.create(:comment, :commentable => @issue, :user_id => @user.id, :project => @project) @email = UserMailer.new_comment_notification(@comment, @issue_user).deliver end diff --git a/spec/models/cancan_spec.rb b/spec/models/cancan_spec.rb index 5928659d4..01c78a009 100644 --- a/spec/models/cancan_spec.rb +++ b/spec/models/cancan_spec.rb @@ -3,12 +3,12 @@ require 'spec_helper' require "cancan/matchers" def admin_create - @admin = Factory(:admin) + @admin = FactoryGirl.create(:admin) @ability = Ability.new(@admin) end def user_create - @user = Factory(:user) + @user = FactoryGirl.create(:user) @ability = Ability.new(@user) end @@ -18,11 +18,11 @@ end describe CanCan do - let(:personal_platform) { Factory(:platform, :platform_type => 'personal') } - let(:personal_repository) { Factory(:personal_repository) } - let(:open_platform) { Factory(:platform, :visibility => 'open') } - let(:hidden_platform) { Factory(:platform, :visibility => 'hidden') } - let(:register_request) { Factory(:register_request) } + let(:personal_platform) { FactoryGirl.create(:platform, :platform_type => 'personal') } + let(:personal_repository) { FactoryGirl.create(:personal_repository) } + let(:open_platform) { FactoryGirl.create(:platform, :visibility => 'open') } + let(:hidden_platform) { FactoryGirl.create(:platform, :visibility => 'hidden') } + let(:register_request) { FactoryGirl.create(:register_request) } before(:each) do stub_rsync_methods @@ -118,7 +118,7 @@ describe CanCan do end it "shoud be able to read open projects" do - @project = Factory(:project, :visibility => 'open') + @project = FactoryGirl.create(:project, :visibility => 'open') @ability.should be_able_to(:read, @project) end @@ -132,7 +132,7 @@ describe CanCan do context "private users relations" do before(:each) do - @private_user = Factory(:private_user) + @private_user = FactoryGirl.create(:private_user) @private_user.platform.update_attribute(:owner, @user) end @@ -145,8 +145,8 @@ describe CanCan do context 'as project collaborator' do before(:each) do - @project = Factory(:project) - @issue = Factory(:issue, :project_id => @project.id) + @project = FactoryGirl.create(:project) + @issue = FactoryGirl.create(:issue, :project_id => @project.id) end context 'with read rights' do @@ -180,7 +180,7 @@ describe CanCan do [:new, :create].each do |action| it "should be able to #{action} build_list" do - @build_list = Factory(:build_list, :project => @project) + @build_list = FactoryGirl.create(:build_list, :project => @project) @ability.should be_able_to(action, @build_list) end end @@ -199,7 +199,7 @@ describe CanCan do [:new, :create].each do |action| it "should be able to #{action} build_list" do - @build_list = Factory(:build_list, :project => @project) + @build_list = FactoryGirl.create(:build_list, :project => @project) @ability.should be_able_to(action, @build_list) end end @@ -229,7 +229,7 @@ describe CanCan do [:new, :create].each do |action| it "should be able to #{action} build_list" do - @build_list = Factory(:build_list, :project => @project) + @build_list = FactoryGirl.create(:build_list, :project => @project) @ability.should be_able_to(action, @build_list) end end @@ -245,7 +245,7 @@ describe CanCan do context 'platform relations' do before(:each) do - @platform = Factory(:platform) + @platform = FactoryGirl.create(:platform) end context 'with owner rights' do @@ -273,7 +273,7 @@ describe CanCan do context 'repository relations' do before(:each) do - @repository = Factory(:repository) + @repository = FactoryGirl.create(:repository) end context 'with owner rights' do @@ -301,9 +301,9 @@ describe CanCan do context 'build list relations' do before(:each) do - @project = Factory(:project) + @project = FactoryGirl.create(:project) @project.relations.create!(:object_id => @user.id, :object_type => 'User', :role => 'writer') - @build_list = Factory(:build_list, :project => @project) + @build_list = FactoryGirl.create(:build_list, :project => @project) end it 'should be able to publish build list with SUCCESS status' do diff --git a/spec/models/comment_for_commit_spec.rb b/spec/models/comment_for_commit_spec.rb index 97e3ee643..96e3f2fc7 100644 --- a/spec/models/comment_for_commit_spec.rb +++ b/spec/models/comment_for_commit_spec.rb @@ -11,7 +11,7 @@ end def set_comments_data_for_commit @ability = Ability.new(@user) - @project = Factory(:project, :owner => @user) + @project = FactoryGirl.create(:project, :owner => @user) %x(cp -Rf #{Rails.root}/spec/tests.git/* #{@project.git_repository.path}) # maybe FIXME ? @commit = @project.git_repository.commits.first @@ -28,8 +28,8 @@ describe Comment do before { stub_rsync_methods } context 'for global admin user' do before(:each) do - @user = Factory(:admin) - @stranger = Factory(:user) + @user = FactoryGirl.create(:admin) + @stranger = FactoryGirl.create(:user) set_comments_data_for_commit end @@ -57,11 +57,11 @@ describe Comment do context 'for project admin user' do before(:each) do - @user = Factory(:user) - @stranger = Factory(:user) + @user = FactoryGirl.create(:user) + @stranger = FactoryGirl.create(:user) set_comments_data_for_commit - @admin = Factory(:user) + @admin = FactoryGirl.create(:user) @ability = Ability.new(@admin) @project.relations.create!(:object_type => 'User', :object_id => @admin.id, :role => 'admin') ActionMailer::Base.deliveries = [] @@ -147,8 +147,8 @@ describe Comment do context 'for project owner user' do before(:each) do - @user = Factory(:user) - @stranger = Factory(:user) + @user = FactoryGirl.create(:user) + @stranger = FactoryGirl.create(:user) set_comments_data_for_commit @project.update_attribute(:owner, @user) ActionMailer::Base.deliveries = [] @@ -244,9 +244,9 @@ describe Comment do context 'for simple user' do before(:each) do - @user = Factory(:user) - @simple = Factory(:user) - @stranger = Factory(:user) + @user = FactoryGirl.create(:user) + @simple = FactoryGirl.create(:user) + @stranger = FactoryGirl.create(:user) set_comments_data_for_commit @comment = create_comment(@simple) @ability = Ability.new(@simple) diff --git a/spec/models/comment_spec.rb b/spec/models/comment_spec.rb index d62d961d7..e1c3bb4bc 100644 --- a/spec/models/comment_spec.rb +++ b/spec/models/comment_spec.rb @@ -5,11 +5,11 @@ require "cancan/matchers" def set_commentable_data @ability = Ability.new(@user) - @project = Factory(:project) - @issue = Factory(:issue, :project_id => @project.id, :creator => @user) + @project = FactoryGirl.create(:project) + @issue = FactoryGirl.create(:issue, :project_id => @project.id, :creator => @user) - @comment = Factory(:comment, :commentable => @issue, :user => @user, :project => @project) - @stranger_comment = Factory(:comment, :commentable => @issue, :user => @stranger, :project => @project) + @comment = FactoryGirl.create(:comment, :commentable => @issue, :user => @user, :project => @project) + @stranger_comment = FactoryGirl.create(:comment, :commentable => @issue, :user => @stranger, :project => @project) any_instance_of(Project, :versions => ['v1.0', 'v2.0']) end @@ -18,8 +18,8 @@ describe Comment do before { stub_rsync_methods } context 'for global admin user' do before(:each) do - @user = Factory(:admin) - @stranger = Factory(:user) + @user = FactoryGirl.create(:admin) + @stranger = FactoryGirl.create(:user) set_commentable_data end @@ -51,8 +51,8 @@ describe Comment do context 'for project admin user' do before(:each) do - @user = Factory(:user) - @stranger = Factory(:user) + @user = FactoryGirl.create(:user) + @stranger = FactoryGirl.create(:user) set_commentable_data @@ -79,8 +79,8 @@ describe Comment do context 'for project owner user' do before(:each) do - @user = Factory(:user) - @stranger = Factory(:user) + @user = FactoryGirl.create(:user) + @stranger = FactoryGirl.create(:user) set_commentable_data @@ -107,8 +107,8 @@ describe Comment do context 'for simple user' do before(:each) do - @user = Factory(:user) - @stranger = Factory(:user) + @user = FactoryGirl.create(:user) + @stranger = FactoryGirl.create(:user) set_commentable_data end diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index 605695ef3..0252fb69c 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -5,7 +5,7 @@ require "cancan/matchers" describe Group do before(:each) do stub_rsync_methods - @group = Factory(:group) + @group = FactoryGirl.create(:group) @ability = Ability.new(User.new) end @@ -19,7 +19,7 @@ describe Group do context 'for global admin' do before(:each) do - @admin = Factory(:admin) + @admin = FactoryGirl.create(:admin) @ability = Ability.new(@admin) end @@ -32,8 +32,8 @@ describe Group do context 'for group admin' do before(:each) do - @user = Factory(:user) - @another_user = Factory(:user) + @user = FactoryGirl.create(:user) + @another_user = FactoryGirl.create(:user) @group.objects.create(:object_type => 'User', :object_id => @user.id, :role => 'admin') @ability = Ability.new(@user) end @@ -61,7 +61,7 @@ describe Group do context 'for group owner' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) @group.update_attribute(:owner, @user) @group.objects.create(:object_type => 'User', :object_id => @user.id, :role => 'admin') @ability = Ability.new(@user) @@ -76,7 +76,7 @@ describe Group do context 'for group reader and writer user' do before(:each) do - @user = Factory(:user) + @user = FactoryGirl.create(:user) @group.objects.create(:object_type => 'User', :object_id => @user.id, :role => 'reader') @ability = Ability.new(@user) end diff --git a/spec/models/platform_spec.rb b/spec/models/platform_spec.rb index 1047c2c20..1000cd241 100644 --- a/spec/models/platform_spec.rb +++ b/spec/models/platform_spec.rb @@ -10,7 +10,7 @@ describe Platform do context 'released' do it 'should add suffix to name when released' do - @platform = Factory(:platform) + @platform = FactoryGirl.create(:platform) old_name = @platform.name @platform.released = true @@ -20,7 +20,7 @@ describe Platform do end it 'should not add suffix to name when not released' do - @platform = Factory(:platform, :name => 'name') + @platform = FactoryGirl.create(:platform, :name => 'name') @platform.name.should == 'name' end end diff --git a/spec/models/project_to_repository_spec.rb b/spec/models/project_to_repository_spec.rb index 2ca752328..d79c0fe02 100644 --- a/spec/models/project_to_repository_spec.rb +++ b/spec/models/project_to_repository_spec.rb @@ -4,10 +4,10 @@ require 'spec_helper' describe ProjectToRepository do before(:each) do stub_rsync_methods - @platform = Factory(:platform) - @first_repo = Factory(:repository, :platform_id => @platform.id) - @second_repo = Factory(:repository, :platform_id => @platform.id) - @project = Factory(:project) + @platform = FactoryGirl.create(:platform) + @first_repo = FactoryGirl.create(:repository, :platform_id => @platform.id) + @second_repo = FactoryGirl.create(:repository, :platform_id => @platform.id) + @project = FactoryGirl.create(:project) @first_repo.projects << @project @first_repo.save end diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index c742a5671..6426fc0fb 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -6,7 +6,7 @@ describe Repository do context 'when create with same owner that platform' do before (:each) do stub_rsync_methods - @platform = Factory(:platform) + @platform = FactoryGirl.create(:platform) @params = {:name => 'tst_platform', :description => 'test platform'} end diff --git a/spec/models/subscribe_spec.rb b/spec/models/subscribe_spec.rb index 40ccddd3c..be111a6a8 100644 --- a/spec/models/subscribe_spec.rb +++ b/spec/models/subscribe_spec.rb @@ -5,8 +5,8 @@ require "cancan/matchers" def set_testable_data @ability = Ability.new(@user) - @project = Factory(:project) - @issue = Factory(:issue, :project_id => @project.id) + @project = FactoryGirl.create(:project) + @issue = FactoryGirl.create(:issue, :project_id => @project.id) any_instance_of(Project, :versions => ['v1.0', 'v2.0']) end @@ -15,8 +15,8 @@ describe Subscribe do before { stub_rsync_methods } context 'for global admin user' do before(:each) do - @user = Factory(:admin) - @stranger = Factory(:user) + @user = FactoryGirl.create(:admin) + @stranger = FactoryGirl.create(:user) set_testable_data end @@ -27,8 +27,8 @@ describe Subscribe do context 'destroy' do before(:each) do - @subscribe = Factory(:subscribe, :subscribeable => @issue, :user => @user) - @stranger_subscribe = Factory(:subscribe, :subscribeable => @issue, :user => @stranger) + @subscribe = FactoryGirl.create(:subscribe, :subscribeable => @issue, :user => @user) + @stranger_subscribe = FactoryGirl.create(:subscribe, :subscribeable => @issue, :user => @stranger) end context 'own subscribe' do @@ -47,8 +47,8 @@ describe Subscribe do context 'for simple user' do before(:each) do - @user = Factory(:user) - @stranger = Factory(:user) + @user = FactoryGirl.create(:user) + @stranger = FactoryGirl.create(:user) set_testable_data end @@ -59,8 +59,8 @@ describe Subscribe do context 'destroy' do before(:each) do - @subscribe = Factory(:subscribe, :subscribeable => @issue, :user => @user) - @stranger_subscribe = Factory(:subscribe, :subscribeable => @issue, :user => @stranger) + @subscribe = FactoryGirl.create(:subscribe, :subscribeable => @issue, :user => @user) + @stranger_subscribe = FactoryGirl.create(:subscribe, :subscribeable => @issue, :user => @stranger) end context 'own subscribe' do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 56da1917a..b941cc318 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -28,7 +28,7 @@ RSpec.configure do |config| end def set_session_for(user=nil) - current_user = user.is_a?(Symbol) ? Factory.create(user) : user + current_user = user.is_a?(Symbol) ? FactoryGirl.create(user) : user @request.env["devise.mapping"] = :user sign_in current_user end diff --git a/vendor/plugins/diff-display/.gitignore b/vendor/plugins/diff-display/.gitignore deleted file mode 100644 index 496ee2ca6..000000000 --- a/vendor/plugins/diff-display/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.DS_Store \ No newline at end of file diff --git a/vendor/plugins/diff-display/History.txt b/vendor/plugins/diff-display/History.txt deleted file mode 100644 index 0ed7358c8..000000000 --- a/vendor/plugins/diff-display/History.txt +++ /dev/null @@ -1,4 +0,0 @@ -== 0.0.1 2008-01-28 - -* 1 major enhancement: - * Initial release diff --git a/vendor/plugins/diff-display/License.txt b/vendor/plugins/diff-display/License.txt deleted file mode 100644 index 169dd23fd..000000000 --- a/vendor/plugins/diff-display/License.txt +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2008 Johan Sørensen -Copyright (c) 2003 Marcel Molina Jr. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/vendor/plugins/diff-display/Manifest.txt b/vendor/plugins/diff-display/Manifest.txt deleted file mode 100644 index 4964e01ce..000000000 --- a/vendor/plugins/diff-display/Manifest.txt +++ /dev/null @@ -1,26 +0,0 @@ -History.txt -License.txt -Manifest.txt -README.txt -Rakefile -config/hoe.rb -config/requirements.rb -lib/diff-display.rb -lib/diff-display/version.rb -log/debug.log -script/destroy -script/generate -script/txt2html -setup.rb -spec/diff-display_spec.rb -spec/spec.opts -spec/spec_helper.rb -tasks/deployment.rake -tasks/environment.rake -tasks/rspec.rake -tasks/website.rake -website/index.html -website/index.txt -website/javascripts/rounded_corners_lite.inc.js -website/stylesheets/screen.css -website/template.rhtml diff --git a/vendor/plugins/diff-display/README.txt b/vendor/plugins/diff-display/README.txt deleted file mode 100644 index d56f429fd..000000000 --- a/vendor/plugins/diff-display/README.txt +++ /dev/null @@ -1,58 +0,0 @@ -Diff::Display -============= - -Diff::Display::Unified renders unified diffs into various forms. The output is -based on a callback object that's passed into the renderer - -Rewrite of an (unreleased) library by Marcel Molina Jr., who wrote this it -probably back in 2004 or so. - -Usage -====== - -irb(main):001:0> require 'diff-display' -=> true -irb(main):002:0> diff = < diff_display = Diff::Display::Unified.new(diff) -=> # puts diff_display.render(Diff::Renderer::Diff.new) -diff --git a/History.txt b/History.txt -index 0ed7358..622c384 100644 ---- a/History.txt -+++ b/History.txt -@@ -1,4 +1,5 @@ - == 0.0.1 2008-01-28 - --* 1 major enhancement: -- * Initial release -+* 2 major enhancements: -+ * The Initial release -+ * stuff added - -See Diff::Renderer::Base for what methods your callback needs to implement - -Git Repository -=============== - -http://gitorious.org/projects/diff-display/ - - -License -====== - -Please see License.txt diff --git a/vendor/plugins/diff-display/Rakefile b/vendor/plugins/diff-display/Rakefile deleted file mode 100644 index 98e85c385..000000000 --- a/vendor/plugins/diff-display/Rakefile +++ /dev/null @@ -1,10 +0,0 @@ -# encoding: utf-8 - -require 'rubygems' -require 'hoe' -require './lib/diff-display.rb' - -Hoe.new('diff-display', Diff::Display::VERSION::STRING) do |p| - p.rubyforge_name = 'hoe_testx' - p.developer('Johan Sørensen', 'johan@johansorensen.com') -end diff --git a/vendor/plugins/diff-display/doc/.gitignore b/vendor/plugins/diff-display/doc/.gitignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/vendor/plugins/diff-display/lib/diff-display.rb b/vendor/plugins/diff-display/lib/diff-display.rb deleted file mode 100644 index 38b550b76..000000000 --- a/vendor/plugins/diff-display/lib/diff-display.rb +++ /dev/null @@ -1,15 +0,0 @@ -# -*- encoding : utf-8 -*- -$:.unshift File.dirname(__FILE__) - -module Diff - module Display - end -end - -require "diff/display/version" -# require "diff/display/data_structure" -require "diff/display/unified" -require "diff/display/unified/generator" - -require "diff/renderer/base" -require "diff/renderer/diff" diff --git a/vendor/plugins/diff-display/lib/diff/display/unified.rb b/vendor/plugins/diff-display/lib/diff/display/unified.rb deleted file mode 100644 index fbdecef44..000000000 --- a/vendor/plugins/diff-display/lib/diff/display/unified.rb +++ /dev/null @@ -1,20 +0,0 @@ -# -*- encoding : utf-8 -*- -module Diff - module Display - class Unified - def initialize(udiff) - @data = Diff::Display::Unified::Generator.run(udiff) - end - attr_reader :data - - def stats - @stats ||= data.stats - end - - def render(renderer, out="") - out << renderer.render(data) - out - end - end - end -end diff --git a/vendor/plugins/diff-display/lib/diff/display/unified/generator.rb b/vendor/plugins/diff-display/lib/diff/display/unified/generator.rb deleted file mode 100644 index 9a9b596fb..000000000 --- a/vendor/plugins/diff-display/lib/diff/display/unified/generator.rb +++ /dev/null @@ -1,405 +0,0 @@ -# -*- encoding : utf-8 -*- -module Diff::Display - # Processes the diff and generates a Data object which contains the - # resulting data structure. - # - # The +run+ class method is fed a diff and returns a Data object. It will - # accept as its argument a String, an Array or a File object (or anything - # that responds to #each): - # - # Diff::Display::Unified::Generator.run(diff) - # - class Data < Array - def initialize - super - @stats = {:additions => 0, :deletions => 0} - end - - def stats - each do |block| - block.each do |line| - case line - when Diff::Display::AddLine - @stats[:additions] += 1 - when Diff::Display::RemLine - @stats[:deletions] += 1 - end - end - end - @stats - end - - def to_diff - diff = "" - each do |block| - block.each do |line| - line_str = line.expand_inline_changes_with(nil, nil) - case line - when HeaderLine - diff << "#{line_str}\n" - when UnModLine - diff << " #{line_str}\n" - when SepLine - diff << "\n" - when AddLine - diff << "+#{line_str}\n" - when RemLine - diff << "-#{line_str}\n" - when NonewlineLine - diff << line_str - end - end - end - diff.chomp - end - - def debug - demodularize = Proc.new {|obj| obj.class.name[/\w+$/]} - each do |diff_block| - print "-" * 40, ' ', demodularize.call(diff_block) - puts - puts diff_block.map {|line| - # "%5d" % line.old_number + - "%8s" % "[#{line.old_number || '.'} #{line.new_number || '.'}]" + - " [#{demodularize.call(line)}#{'(i)' if line.inline_changes?}]" + - line - }.join("\n") - puts "-" * 40, ' ' - end - nil - end - end - - class Line < String - class << self - def add(line, line_number, inline = false, offsets = []) - AddLine.new(line, line_number, inline, offsets) - end - - def rem(line, line_number, inline = false, offsets = []) - RemLine.new(line, line_number, inline, offsets) - end - - def unmod(line, old_number, new_number) - UnModLine.new(line, old_number, new_number) - end - - def nonewline(line) - NonewlineLine.new(line) - end - - def header(line) - HeaderLine.new(line) - end - end - - def initialize(line, old_number = nil, new_number = nil) - super(line) - @old_number, @new_number = old_number, new_number - @inline = false - end - attr_reader :old_number, :new_number - - def identifier - self.class.name[/\w+$/].gsub(/Line$/, "").downcase.to_sym - end - - def inline_changes? - # Is set in the AddLine+RemLine subclasses - @inline - end - - # returns the prefix, middle and postfix parts of a line with inline changes - def segments - return self.dup unless inline_changes? - prefix, changed = self.dup.split('\\0') - changed, postfix = changed.split('\\1') - [prefix, changed, postfix] - end - - # Expand any inline changes with +prefix+ and +postfix+ - def expand_inline_changes_with(prefix, postfix) - return self.dup unless inline_changes? - str = self.dup - str.sub!('\\0', prefix.to_s) - str.sub!('\\1', postfix.to_s) - str - end - - def inspect - %Q{#<#{self.class.name} [#{old_number.inspect}-#{new_number.inspect}] "#{self}">} - end - end - - class AddLine < Line - def initialize(line, line_number, inline = false, offsets = []) - super(line, nil, line_number) - @inline = inline - @offsets = offsets - end - attr_reader :offsets - end - - class RemLine < Line - def initialize(line, line_number, inline = false, offsets = []) - super(line, line_number, nil) - @inline = inline - @offsets = offsets - end - attr_reader :offsets - end - - class NonewlineLine < Line - def initialize(line = '\\ No newline at end of file') - super(line) - end - end - - class UnModLine < Line - def initialize(line, old_number, new_number) - super(line, old_number, new_number) - end - end - - class SepLine < Line - def initialize(line = '...') - super(line) - end - end - - class HeaderLine < Line - def initialize(line) - super(line) - end - end - - # This class is an array which contains Line objects. Just like Line - # classes, several Block classes inherit from Block. If all the lines - # in the block are added lines then it is an AddBlock. If all lines - # in the block are removed lines then it is a RemBlock. If the lines - # in the block are all unmodified then it is an UnMod block. If the - # lines in the block are a mixture of added and removed lines then - # it is a ModBlock. There are no blocks that contain a mixture of - # modified and unmodified lines. - class Block < Array - class << self - def add; AddBlock.new end - def rem; RemBlock.new end - def mod; ModBlock.new end - def unmod; UnModBlock.new end - def header; HeaderBlock.new end - def nonewline; NonewlineBlock.new end - end - end - - #:stopdoc:# - class AddBlock < Block; end - class RemBlock < Block; end - class ModBlock < Block; end - class UnModBlock < Block; end - class SepBlock < Block; end - class HeaderBlock < Block; end - class NonewlineBlock < Block; end - #:startdoc:# - - - class Unified::Generator - - # Extracts the line number info for a given diff section - LINE_NUM_RE = /^@@ [+-]([0-9]+)(?:,([0-9]+))? [+-]([0-9]+)(?:,([0-9]+))? @@/ - LINE_TYPES = {'+' => :add, '-' => :rem, ' ' => :unmod, '\\' => :nonewline} - - # Runs the generator on a diff and returns a Data object - def self.run(udiff) - raise ArgumentError, "Object must be enumerable" unless udiff.respond_to?(:each_line) - generator = new - udiff.each_line do |line| - begin - generator.process(line.chomp) - rescue ArgumentError => e - e.message =~ /^invalid byte sequence/ ? next : raise(e) - end - end - generator.finish - generator.data - end - - def initialize - @buffer = [] - @line_type = nil - @prev_line_type = nil - @offset = [0, 0] - @data = Data.new - self - end - - # Finishes up with the generation and returns the Data object (could - # probably use a better name...maybe just #data?) - def data - @data - end - - # This method is called once the generator is done with the unified - # diff. It is a finalizer of sorts. By the time it is called all data - # has been collected and processed. - def finish - # certain things could be set now that processing is done - #identify_block - end - - def process(line) - if is_header_line?(line) - push Block.header - current_block << Line.header(line) - return - end - - if line =~ LINE_NUM_RE - push Block.header - current_block << Line.header(line) - add_separator unless @offset[0].zero? - @line_type = nil - @offset = Array.new(2) { $3.to_i - 1 } - return - end - - @line_type, line = LINE_TYPES[car(line)], cdr(line) - - if @line_type == :add && @prev_line_type == :rem - @offset[0] -= 1 - @buffer.push current_block.pop - @buffer.push line - process_block(:mod, false) - return - end - - if LINE_TYPES.values.include?(@line_type) - @buffer.push(line.to_s) - process_block(@line_type, true) - end - - end - - protected - def is_header_line?(line) - return true if ['+++ ', '--- '].include?(line[0,4]) - return true if line =~ /^(new|delete) file mode [0-9]+$/ - return true if line =~ /^diff \-\-git/ - return true if line =~ /^index \w+\.\.\w+( [0-9]+)?$/i - false - end - - def process_block(diff_line_type, isnew = false) - @data.pop unless isnew - push Block.send(diff_line_type) - - current_line = @buffer.pop - return unless current_line - - # \\ No newline at end of file - if diff_line_type == :nonewline - current_block << Line.nonewline('\\ No newline at end of file') - return - end - - if isnew - process_line(current_line, diff_line_type) - else - process_lines_with_differences(@buffer.shift, current_line) - raise "buffer exceeded #{@buffer.inspect}" unless @buffer.empty? - end - end - - def process_line(line, type, inline = false) - case type - when :add - @offset[1] += 1 - current_block << Line.send(type, line, @offset[1], inline, @offset.dup) - when :rem - @offset[0] += 1 - current_block << Line.send(type, line, @offset[0], inline, @offset.dup) - # when :rmod - # @offset[0] += 1 - # @offset[1] += 1 # TODO: is that really correct? - # current_block << Line.send(@prev_line_type, line, @offset[0]) - when :unmod - @offset[0] += 1 - @offset[1] += 1 - current_block << Line.send(type, line, *@offset) - end - @prev_line_type = type - end - - # TODO Needs a better name...it does process a line (two in fact) but - # its primary function is to add a Rem and an Add pair which - # potentially have inline changes - def process_lines_with_differences(oldline, newline) - start, ending = get_change_extent(oldline, newline) - - if start.zero? && ending.zero? - process_line(oldline, :rem, false) # - - process_line(newline, :add, false) # + - else - # - - line = inline_diff(oldline, start, ending) - process_line(line, :rem, true) - # + - line = inline_diff(newline, start, ending) - process_line(line, :add, true) - end - end - - # Inserts string formating characters around the section of a string - # that differs internally from another line so that the Line class - # can insert the desired formating - def inline_diff(line, start, ending) - if start != 0 || ending != 0 - last = ending + line.length - str = line[0...start] + '\0' + line[start...last] + '\1' + line[last...line.length] - end - str || line - end - - def add_separator - push SepBlock.new - current_block << SepLine.new - end - - def car(line) - line[0,1] - end - - def cdr(line) - line[1..-1] - end - - # Returns the current Block object - def current_block - @data.last - end - - # Adds a Line object onto the current Block object - def push(line) - @data.push line - end - - # Determines the extent of differences between two string. Returns - # an array containing the offset at which changes start, and then - # negative offset at which the chnages end. If the two strings have - # neither a common prefix nor a common suffic, [0, 0] is returned. - def get_change_extent(str1, str2) - start = 0 - limit = [str1.size, str2.size].sort.first - while start < limit and str1[start, 1] == str2[start, 1] - start += 1 - end - ending = -1 - limit -= start - while -ending <= limit and str1[ending, 1] == str2[ending, 1] - ending -= 1 - end - - return [start, ending + 1] - end - end -end diff --git a/vendor/plugins/diff-display/lib/diff/display/version.rb b/vendor/plugins/diff-display/lib/diff/display/version.rb deleted file mode 100644 index 9a6f624ff..000000000 --- a/vendor/plugins/diff-display/lib/diff/display/version.rb +++ /dev/null @@ -1,12 +0,0 @@ -# -*- encoding : utf-8 -*- -module Diff - module Display #:nodoc: - module VERSION #:nodoc: - MAJOR = 0 - MINOR = 0 - TINY = 1 - - STRING = [MAJOR, MINOR, TINY].join('.') - end - end -end diff --git a/vendor/plugins/diff-display/lib/diff/renderer/base.rb b/vendor/plugins/diff-display/lib/diff/renderer/base.rb deleted file mode 100644 index 7bf58cfa1..000000000 --- a/vendor/plugins/diff-display/lib/diff/renderer/base.rb +++ /dev/null @@ -1,93 +0,0 @@ -# -*- encoding : utf-8 -*- -module Diff - module Renderer - class Base - def render(data) - result = [] - data.each do |block| - result << send("before_" + classify(block), block) - result << block.map { |line| send(classify(line), line) } - result << send("after_" + classify(block), block) - end - result.compact.join(new_line) - end - - def before_headerblock(block) - end - - def before_unmodblock(block) - end - - def before_modblock(block) - end - - def before_remblock(block) - end - - def before_addblock(block) - end - - def before_sepblock(block) - end - - def before_nonewlineblock(block) - end - - def headerline(line) - line - end - - def unmodline(line) - line - end - - def remline(line) - line - end - - def addline(line) - line - end - - def sepline(line) - - end - - def nonewlineline(line) - line - end - - def after_headerblock(block) - end - - def after_unmodblock(block) - end - - def after_modblock(block) - end - - def after_remblock(block) - "" - end - - def after_addblock(block) - "" - end - - def after_sepblock(block) - end - - def after_nonewlineblock(block) - end - - def new_line - "" - end - - protected - def classify(object) - object.class.name[/\w+$/].downcase - end - end - end -end diff --git a/vendor/plugins/diff-display/lib/diff/renderer/diff.rb b/vendor/plugins/diff-display/lib/diff/renderer/diff.rb deleted file mode 100644 index 81e38511e..000000000 --- a/vendor/plugins/diff-display/lib/diff/renderer/diff.rb +++ /dev/null @@ -1,94 +0,0 @@ -# -*- encoding : utf-8 -*- -module Diff - module Renderer - class Diff < Base - def before_addblock(block) - %q{} - end - - def before_remblock(block) - %Q{} - end - - def before_modblock(block) - %Q{} - end - - def before_unmodblock(block) - %Q{} - end - - def before_sepblock(block) - %Q{} - end - - # After blocks - def after_addblock(block) - "" - end - - def after_remblock(block) - "" - end - - def after_modblock(block) - "" - end - - def after_unmodblock(block) - "" - end - - def after_sepblock(block) - "" - end - - # Before lines - def addline(line) - # adds go on the right - %Q{#{line.old_number}} + - %Q{} + - %Q{#{line.new_number}} + - %Q{#{line}} - end - - def remline(line) - # rems go on the left (hide the right side) - %Q{#{line.old_number}} + - %Q{#{line}} + - %Q{#{line.new_number}} + - %Q{#{line}} - end - - def modline(line) - # TODO: figure how we best display these - # %Q{#{line.old_number}} + - # %Q{#{render_line(line)}} + - # %Q{#{line.new_number}} + - # %Q{#{render_line(line)}} - end - - def unmodline(line) - # unmods goes on both sides - %Q{#{line.old_number}} + - %Q{#{line}} + - %Q{#{line.new_number}} + - %Q{#{line}} - end - - def sepline(line) - %Q{…} + - %Q{} + - %Q{…} + - %Q{} - end - - def nonewlineline(line) - %Q{…} + - %Q{} + - %Q{…} + - %Q{#{line}} - end - end - end -end diff --git a/vendor/plugins/diff-display/lib/tasks/deployment.rake b/vendor/plugins/diff-display/lib/tasks/deployment.rake deleted file mode 100644 index 2f437425b..000000000 --- a/vendor/plugins/diff-display/lib/tasks/deployment.rake +++ /dev/null @@ -1,34 +0,0 @@ -desc 'Release the website and new gem version' -task :deploy => [:check_version, :website, :release] do - puts "Remember to create SVN tag:" - puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " + - "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} " - puts "Suggested comment:" - puts "Tagging release #{CHANGES}" -end - -desc 'Runs tasks website_generate and install_gem as a local deployment of the gem' -task :local_deploy => [:website_generate, :install_gem] - -task :check_version do - unless ENV['VERSION'] - puts 'Must pass a VERSION=x.y.z release version' - exit - end - unless ENV['VERSION'] == VERS - puts "Please update your version.rb to match the release version, currently #{VERS}" - exit - end -end - -desc 'Install the package as a gem, without generating documentation(ri/rdoc)' -task :install_gem_no_doc => [:clean, :package] do - sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri" -end - -namespace :manifest do - desc 'Recreate Manifest.txt to include ALL files' - task :refresh do - `rake check_manifest | patch -p0 > Manifest.txt` - end -end \ No newline at end of file diff --git a/vendor/plugins/diff-display/lib/tasks/environment.rake b/vendor/plugins/diff-display/lib/tasks/environment.rake deleted file mode 100644 index 691ed3b65..000000000 --- a/vendor/plugins/diff-display/lib/tasks/environment.rake +++ /dev/null @@ -1,7 +0,0 @@ -task :ruby_env do - RUBY_APP = if RUBY_PLATFORM =~ /java/ - "jruby" - else - "ruby" - end unless defined? RUBY_APP -end diff --git a/vendor/plugins/diff-display/lib/tasks/website.rake b/vendor/plugins/diff-display/lib/tasks/website.rake deleted file mode 100644 index 93e03faa6..000000000 --- a/vendor/plugins/diff-display/lib/tasks/website.rake +++ /dev/null @@ -1,17 +0,0 @@ -desc 'Generate website files' -task :website_generate => :ruby_env do - (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt| - sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} } - end -end - -desc 'Upload website files to rubyforge' -task :website_upload do - host = "#{rubyforge_username}@rubyforge.org" - remote_dir = "/var/www/gforge-projects/#{PATH}/" - local_dir = 'website' - sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}} -end - -desc 'Generate and upload website files' -task :website => [:website_generate, :website_upload, :publish_docs] diff --git a/vendor/plugins/diff-display/script/destroy b/vendor/plugins/diff-display/script/destroy deleted file mode 100755 index 5fa7e10e7..000000000 --- a/vendor/plugins/diff-display/script/destroy +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env ruby -APP_ROOT = File.join(File.dirname(__FILE__), '..') - -begin - require 'rubigen' -rescue LoadError - require 'rubygems' - require 'rubigen' -end -require 'rubigen/scripts/destroy' - -ARGV.shift if ['--help', '-h'].include?(ARGV[0]) -RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit] -RubiGen::Scripts::Destroy.new.run(ARGV) diff --git a/vendor/plugins/diff-display/script/generate b/vendor/plugins/diff-display/script/generate deleted file mode 100755 index 230a18685..000000000 --- a/vendor/plugins/diff-display/script/generate +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env ruby -APP_ROOT = File.join(File.dirname(__FILE__), '..') - -begin - require 'rubigen' -rescue LoadError - require 'rubygems' - require 'rubigen' -end -require 'rubigen/scripts/generate' - -ARGV.shift if ['--help', '-h'].include?(ARGV[0]) -RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit] -RubiGen::Scripts::Generate.new.run(ARGV) diff --git a/vendor/plugins/diff-display/script/txt2html b/vendor/plugins/diff-display/script/txt2html deleted file mode 100755 index 42d9b5386..000000000 --- a/vendor/plugins/diff-display/script/txt2html +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env ruby - -require 'rubygems' -begin - require 'newgem' -rescue LoadError - puts "\n\nGenerating the website requires the newgem RubyGem" - puts "Install: gem install newgem\n\n" - exit(1) -end -require 'redcloth' -require 'syntax/convertors/html' -require 'erb' -require File.dirname(__FILE__) + '/../lib/diff-display/version.rb' - -version = Diff-display::VERSION::STRING -download = 'http://rubyforge.org/projects/diff-display' - -class Fixnum - def ordinal - # teens - return 'th' if (10..19).include?(self % 100) - # others - case self % 10 - when 1: return 'st' - when 2: return 'nd' - when 3: return 'rd' - else return 'th' - end - end -end - -class Time - def pretty - return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}" - end -end - -def convert_syntax(syntax, source) - return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^
|
$!,'') -end - -if ARGV.length >= 1 - src, template = ARGV - template ||= File.join(File.dirname(__FILE__), '/../website/template.rhtml') - -else - puts("Usage: #{File.split($0).last} source.txt [template.rhtml] > output.html") - exit! -end - -template = ERB.new(File.open(template).read) - -title = nil -body = nil -File.open(src) do |fsrc| - title_text = fsrc.readline - body_text = fsrc.read - syntax_items = [] - body_text.gsub!(%r!<(pre|code)[^>]*?syntax=['"]([^'"]+)[^>]*>(.*?)!m){ - ident = syntax_items.length - element, syntax, source = $1, $2, $3 - syntax_items << "<#{element} class='syntax'>#{convert_syntax(syntax, source)}" - "syntax-temp-#{ident}" - } - title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip - body = RedCloth.new(body_text).to_html - body.gsub!(%r!(?:
)?syntax-temp-(\d+)(?:
)?!){ syntax_items[$1.to_i] } -end -stat = File.stat(src) -created = stat.ctime -modified = stat.mtime - -$stdout << template.result(binding) diff --git a/vendor/plugins/diff-display/setup.rb b/vendor/plugins/diff-display/setup.rb deleted file mode 100644 index 435127b00..000000000 --- a/vendor/plugins/diff-display/setup.rb +++ /dev/null @@ -1,1586 +0,0 @@ -# -*- encoding : utf-8 -*- -# -# setup.rb -# -# Copyright (c) 2000-2005 Minero Aoki -# -# This program is free software. -# You can distribute/modify this program under the terms of -# the GNU LGPL, Lesser General Public License version 2.1. -# - -unless Enumerable.method_defined?(:map) # Ruby 1.4.6 - module Enumerable - alias map collect - end -end - -unless File.respond_to?(:read) # Ruby 1.6 - def File.read(fname) - open(fname) {|f| - return f.read - } - end -end - -unless Errno.const_defined?(:ENOTEMPTY) # Windows? - module Errno - class ENOTEMPTY - # We do not raise this exception, implementation is not needed. - end - end -end - -def File.binread(fname) - open(fname, 'rb') {|f| - return f.read - } -end - -# for corrupted Windows' stat(2) -def File.dir?(path) - File.directory?((path[-1,1] == '/') ? path : path + '/') -end - - -class ConfigTable - - include Enumerable - - def initialize(rbconfig) - @rbconfig = rbconfig - @items = [] - @table = {} - # options - @install_prefix = nil - @config_opt = nil - @verbose = true - @no_harm = false - end - - attr_accessor :install_prefix - attr_accessor :config_opt - - attr_writer :verbose - - def verbose? - @verbose - end - - attr_writer :no_harm - - def no_harm? - @no_harm - end - - def [](key) - lookup(key).resolve(self) - end - - def []=(key, val) - lookup(key).set val - end - - def names - @items.map {|i| i.name } - end - - def each(&block) - @items.each(&block) - end - - def key?(name) - @table.key?(name) - end - - def lookup(name) - @table[name] or setup_rb_error "no such config item: #{name}" - end - - def add(item) - @items.push item - @table[item.name] = item - end - - def remove(name) - item = lookup(name) - @items.delete_if {|i| i.name == name } - @table.delete_if {|name, i| i.name == name } - item - end - - def load_script(path, inst = nil) - if File.file?(path) - MetaConfigEnvironment.new(self, inst).instance_eval File.read(path), path - end - end - - def savefile - '.config' - end - - def load_savefile - begin - File.foreach(savefile()) do |line| - k, v = *line.split(/=/, 2) - self[k] = v.strip - end - rescue Errno::ENOENT - setup_rb_error $!.message + "\n#{File.basename($0)} config first" - end - end - - def save - @items.each {|i| i.value } - File.open(savefile(), 'w') {|f| - @items.each do |i| - f.printf "%s=%s\n", i.name, i.value if i.value? and i.value - end - } - end - - def load_standard_entries - standard_entries(@rbconfig).each do |ent| - add ent - end - end - - def standard_entries(rbconfig) - c = rbconfig - - rubypath = File.join(c['bindir'], c['ruby_install_name'] + c['EXEEXT']) - - major = c['MAJOR'].to_i - minor = c['MINOR'].to_i - teeny = c['TEENY'].to_i - version = "#{major}.#{minor}" - - # ruby ver. >= 1.4.4? - newpath_p = ((major >= 2) or - ((major == 1) and - ((minor >= 5) or - ((minor == 4) and (teeny >= 4))))) - - if c['rubylibdir'] - # V > 1.6.3 - libruby = "#{c['prefix']}/lib/ruby" - librubyver = c['rubylibdir'] - librubyverarch = c['archdir'] - siteruby = c['sitedir'] - siterubyver = c['sitelibdir'] - siterubyverarch = c['sitearchdir'] - elsif newpath_p - # 1.4.4 <= V <= 1.6.3 - libruby = "#{c['prefix']}/lib/ruby" - librubyver = "#{c['prefix']}/lib/ruby/#{version}" - librubyverarch = "#{c['prefix']}/lib/ruby/#{version}/#{c['arch']}" - siteruby = c['sitedir'] - siterubyver = "$siteruby/#{version}" - siterubyverarch = "$siterubyver/#{c['arch']}" - else - # V < 1.4.4 - libruby = "#{c['prefix']}/lib/ruby" - librubyver = "#{c['prefix']}/lib/ruby/#{version}" - librubyverarch = "#{c['prefix']}/lib/ruby/#{version}/#{c['arch']}" - siteruby = "#{c['prefix']}/lib/ruby/#{version}/site_ruby" - siterubyver = siteruby - siterubyverarch = "$siterubyver/#{c['arch']}" - end - parameterize = lambda {|path| - path.sub(/\A#{Regexp.quote(c['prefix'])}/, '$prefix') - } - - if arg = c['configure_args'].split.detect {|arg| /--with-make-prog=/ =~ arg } - makeprog = arg.sub(/'/, '').split(/=/, 2)[1] - else - makeprog = 'make' - end - - [ - ExecItem.new('installdirs', 'std/site/home', - 'std: install under libruby; site: install under site_ruby; home: install under $HOME')\ - {|val, table| - case val - when 'std' - table['rbdir'] = '$librubyver' - table['sodir'] = '$librubyverarch' - when 'site' - table['rbdir'] = '$siterubyver' - table['sodir'] = '$siterubyverarch' - when 'home' - setup_rb_error '$HOME was not set' unless ENV['HOME'] - table['prefix'] = ENV['HOME'] - table['rbdir'] = '$libdir/ruby' - table['sodir'] = '$libdir/ruby' - end - }, - PathItem.new('prefix', 'path', c['prefix'], - 'path prefix of target environment'), - PathItem.new('bindir', 'path', parameterize.call(c['bindir']), - 'the directory for commands'), - PathItem.new('libdir', 'path', parameterize.call(c['libdir']), - 'the directory for libraries'), - PathItem.new('datadir', 'path', parameterize.call(c['datadir']), - 'the directory for shared data'), - PathItem.new('mandir', 'path', parameterize.call(c['mandir']), - 'the directory for man pages'), - PathItem.new('sysconfdir', 'path', parameterize.call(c['sysconfdir']), - 'the directory for system configuration files'), - PathItem.new('localstatedir', 'path', parameterize.call(c['localstatedir']), - 'the directory for local state data'), - PathItem.new('libruby', 'path', libruby, - 'the directory for ruby libraries'), - PathItem.new('librubyver', 'path', librubyver, - 'the directory for standard ruby libraries'), - PathItem.new('librubyverarch', 'path', librubyverarch, - 'the directory for standard ruby extensions'), - PathItem.new('siteruby', 'path', siteruby, - 'the directory for version-independent aux ruby libraries'), - PathItem.new('siterubyver', 'path', siterubyver, - 'the directory for aux ruby libraries'), - PathItem.new('siterubyverarch', 'path', siterubyverarch, - 'the directory for aux ruby binaries'), - PathItem.new('rbdir', 'path', '$siterubyver', - 'the directory for ruby scripts'), - PathItem.new('sodir', 'path', '$siterubyverarch', - 'the directory for ruby extentions'), - PathItem.new('rubypath', 'path', rubypath, - 'the path to set to #! line'), - ProgramItem.new('rubyprog', 'name', rubypath, - 'the ruby program using for installation'), - ProgramItem.new('makeprog', 'name', makeprog, - 'the make program to compile ruby extentions'), - SelectItem.new('shebang', 'all/ruby/never', 'ruby', - 'shebang line (#!) editing mode'), - BoolItem.new('without-ext', 'yes/no', 'no', - 'does not compile/install ruby extentions') - ] - end - private :standard_entries - - def load_multipackage_entries - multipackage_entries().each do |ent| - add ent - end - end - - def multipackage_entries - [ - PackageSelectionItem.new('with', 'name,name...', '', 'ALL', - 'package names that you want to install'), - PackageSelectionItem.new('without', 'name,name...', '', 'NONE', - 'package names that you do not want to install') - ] - end - private :multipackage_entries - - ALIASES = { - 'std-ruby' => 'librubyver', - 'stdruby' => 'librubyver', - 'rubylibdir' => 'librubyver', - 'archdir' => 'librubyverarch', - 'site-ruby-common' => 'siteruby', # For backward compatibility - 'site-ruby' => 'siterubyver', # For backward compatibility - 'bin-dir' => 'bindir', - 'bin-dir' => 'bindir', - 'rb-dir' => 'rbdir', - 'so-dir' => 'sodir', - 'data-dir' => 'datadir', - 'ruby-path' => 'rubypath', - 'ruby-prog' => 'rubyprog', - 'ruby' => 'rubyprog', - 'make-prog' => 'makeprog', - 'make' => 'makeprog' - } - - def fixup - ALIASES.each do |ali, name| - @table[ali] = @table[name] - end - @items.freeze - @table.freeze - @options_re = /\A--(#{@table.keys.join('|')})(?:=(.*))?\z/ - end - - def parse_opt(opt) - m = @options_re.match(opt) or setup_rb_error "config: unknown option #{opt}" - m.to_a[1,2] - end - - def dllext - @rbconfig['DLEXT'] - end - - def value_config?(name) - lookup(name).value? - end - - class Item - def initialize(name, template, default, desc) - @name = name.freeze - @template = template - @value = default - @default = default - @description = desc - end - - attr_reader :name - attr_reader :description - - attr_accessor :default - alias help_default default - - def help_opt - "--#{@name}=#{@template}" - end - - def value? - true - end - - def value - @value - end - - def resolve(table) - @value.gsub(%r<\$([^/]+)>) { table[$1] } - end - - def set(val) - @value = check(val) - end - - private - - def check(val) - setup_rb_error "config: --#{name} requires argument" unless val - val - end - end - - class BoolItem < Item - def config_type - 'bool' - end - - def help_opt - "--#{@name}" - end - - private - - def check(val) - return 'yes' unless val - case val - when /\Ay(es)?\z/i, /\At(rue)?\z/i then 'yes' - when /\An(o)?\z/i, /\Af(alse)\z/i then 'no' - else - setup_rb_error "config: --#{@name} accepts only yes/no for argument" - end - end - end - - class PathItem < Item - def config_type - 'path' - end - - private - - def check(path) - setup_rb_error "config: --#{@name} requires argument" unless path - path[0,1] == '$' ? path : File.expand_path(path) - end - end - - class ProgramItem < Item - def config_type - 'program' - end - end - - class SelectItem < Item - def initialize(name, selection, default, desc) - super - @ok = selection.split('/') - end - - def config_type - 'select' - end - - private - - def check(val) - unless @ok.include?(val.strip) - setup_rb_error "config: use --#{@name}=#{@template} (#{val})" - end - val.strip - end - end - - class ExecItem < Item - def initialize(name, selection, desc, &block) - super name, selection, nil, desc - @ok = selection.split('/') - @action = block - end - - def config_type - 'exec' - end - - def value? - false - end - - def resolve(table) - setup_rb_error "$#{name()} wrongly used as option value" - end - - undef set - - def evaluate(val, table) - v = val.strip.downcase - unless @ok.include?(v) - setup_rb_error "invalid option --#{@name}=#{val} (use #{@template})" - end - @action.call v, table - end - end - - class PackageSelectionItem < Item - def initialize(name, template, default, help_default, desc) - super name, template, default, desc - @help_default = help_default - end - - attr_reader :help_default - - def config_type - 'package' - end - - private - - def check(val) - unless File.dir?("packages/#{val}") - setup_rb_error "config: no such package: #{val}" - end - val - end - end - - class MetaConfigEnvironment - def initialize(config, installer) - @config = config - @installer = installer - end - - def config_names - @config.names - end - - def config?(name) - @config.key?(name) - end - - def bool_config?(name) - @config.lookup(name).config_type == 'bool' - end - - def path_config?(name) - @config.lookup(name).config_type == 'path' - end - - def value_config?(name) - @config.lookup(name).config_type != 'exec' - end - - def add_config(item) - @config.add item - end - - def add_bool_config(name, default, desc) - @config.add BoolItem.new(name, 'yes/no', default ? 'yes' : 'no', desc) - end - - def add_path_config(name, default, desc) - @config.add PathItem.new(name, 'path', default, desc) - end - - def set_config_default(name, default) - @config.lookup(name).default = default - end - - def remove_config(name) - @config.remove(name) - end - - # For only multipackage - def packages - raise '[setup.rb fatal] multi-package metaconfig API packages() called for single-package; contact application package vendor' unless @installer - @installer.packages - end - - # For only multipackage - def declare_packages(list) - raise '[setup.rb fatal] multi-package metaconfig API declare_packages() called for single-package; contact application package vendor' unless @installer - @installer.packages = list - end - end - -end # class ConfigTable - - -# This module requires: #verbose?, #no_harm? -module FileOperations - - def mkdir_p(dirname, prefix = nil) - dirname = prefix + File.expand_path(dirname) if prefix - $stderr.puts "mkdir -p #{dirname}" if verbose? - return if no_harm? - - # Does not check '/', it's too abnormal. - dirs = File.expand_path(dirname).split(%r<(?=/)>) - if /\A[a-z]:\z/i =~ dirs[0] - disk = dirs.shift - dirs[0] = disk + dirs[0] - end - dirs.each_index do |idx| - path = dirs[0..idx].join('') - Dir.mkdir path unless File.dir?(path) - end - end - - def rm_f(path) - $stderr.puts "rm -f #{path}" if verbose? - return if no_harm? - force_remove_file path - end - - def rm_rf(path) - $stderr.puts "rm -rf #{path}" if verbose? - return if no_harm? - remove_tree path - end - - def remove_tree(path) - if File.symlink?(path) - remove_file path - elsif File.dir?(path) - remove_tree0 path - else - force_remove_file path - end - end - - def remove_tree0(path) - Dir.foreach(path) do |ent| - next if ent == '.' - next if ent == '..' - entpath = "#{path}/#{ent}" - if File.symlink?(entpath) - remove_file entpath - elsif File.dir?(entpath) - remove_tree0 entpath - else - force_remove_file entpath - end - end - begin - Dir.rmdir path - rescue Errno::ENOTEMPTY - # directory may not be empty - end - end - - def move_file(src, dest) - force_remove_file dest - begin - File.rename src, dest - rescue - File.open(dest, 'wb') {|f| - f.write File.binread(src) - } - File.chmod File.stat(src).mode, dest - File.unlink src - end - end - - def force_remove_file(path) - begin - remove_file path - rescue - end - end - - def remove_file(path) - File.chmod 0777, path - File.unlink path - end - - def install(from, dest, mode, prefix = nil) - $stderr.puts "install #{from} #{dest}" if verbose? - return if no_harm? - - realdest = prefix ? prefix + File.expand_path(dest) : dest - realdest = File.join(realdest, File.basename(from)) if File.dir?(realdest) - str = File.binread(from) - if diff?(str, realdest) - verbose_off { - rm_f realdest if File.exist?(realdest) - } - File.open(realdest, 'wb') {|f| - f.write str - } - File.chmod mode, realdest - - File.open("#{objdir_root()}/InstalledFiles", 'a') {|f| - if prefix - f.puts realdest.sub(prefix, '') - else - f.puts realdest - end - } - end - end - - def diff?(new_content, path) - return true unless File.exist?(path) - new_content != File.binread(path) - end - - def command(*args) - $stderr.puts args.join(' ') if verbose? - system(*args) or raise RuntimeError, - "system(#{args.map{|a| a.inspect }.join(' ')}) failed" - end - - def ruby(*args) - command config('rubyprog'), *args - end - - def make(task = nil) - command(*[config('makeprog'), task].compact) - end - - def extdir?(dir) - File.exist?("#{dir}/MANIFEST") or File.exist?("#{dir}/extconf.rb") - end - - def files_of(dir) - Dir.open(dir) {|d| - return d.select {|ent| File.file?("#{dir}/#{ent}") } - } - end - - DIR_REJECT = %w( . .. CVS SCCS RCS CVS.adm .svn ) - - def directories_of(dir) - Dir.open(dir) {|d| - return d.select {|ent| File.dir?("#{dir}/#{ent}") } - DIR_REJECT - } - end - -end - - -# This module requires: #srcdir_root, #objdir_root, #relpath -module HookScriptAPI - - def get_config(key) - @config[key] - end - - alias config get_config - - # obsolete: use metaconfig to change configuration - def set_config(key, val) - @config[key] = val - end - - # - # srcdir/objdir (works only in the package directory) - # - - def curr_srcdir - "#{srcdir_root()}/#{relpath()}" - end - - def curr_objdir - "#{objdir_root()}/#{relpath()}" - end - - def srcfile(path) - "#{curr_srcdir()}/#{path}" - end - - def srcexist?(path) - File.exist?(srcfile(path)) - end - - def srcdirectory?(path) - File.dir?(srcfile(path)) - end - - def srcfile?(path) - File.file?(srcfile(path)) - end - - def srcentries(path = '.') - Dir.open("#{curr_srcdir()}/#{path}") {|d| - return d.to_a - %w(. ..) - } - end - - def srcfiles(path = '.') - srcentries(path).select {|fname| - File.file?(File.join(curr_srcdir(), path, fname)) - } - end - - def srcdirectories(path = '.') - srcentries(path).select {|fname| - File.dir?(File.join(curr_srcdir(), path, fname)) - } - end - -end - - -class ToplevelInstaller - - Version = '3.4.1' - Copyright = 'Copyright (c) 2000-2005 Minero Aoki' - - TASKS = [ - [ 'all', 'do config, setup, then install' ], - [ 'config', 'saves your configurations' ], - [ 'show', 'shows current configuration' ], - [ 'setup', 'compiles ruby extentions and others' ], - [ 'install', 'installs files' ], - [ 'test', 'run all tests in test/' ], - [ 'clean', "does `make clean' for each extention" ], - [ 'distclean',"does `make distclean' for each extention" ] - ] - - def ToplevelInstaller.invoke - config = ConfigTable.new(load_rbconfig()) - config.load_standard_entries - config.load_multipackage_entries if multipackage? - config.fixup - klass = (multipackage?() ? ToplevelInstallerMulti : ToplevelInstaller) - klass.new(File.dirname($0), config).invoke - end - - def ToplevelInstaller.multipackage? - File.dir?(File.dirname($0) + '/packages') - end - - def ToplevelInstaller.load_rbconfig - if arg = ARGV.detect {|arg| /\A--rbconfig=/ =~ arg } - ARGV.delete(arg) - load File.expand_path(arg.split(/=/, 2)[1]) - $".push 'rbconfig.rb' - else - require 'rbconfig' - end - ::Config::CONFIG - end - - def initialize(ardir_root, config) - @ardir = File.expand_path(ardir_root) - @config = config - # cache - @valid_task_re = nil - end - - def config(key) - @config[key] - end - - def inspect - "#<#{self.class} #{__id__()}>" - end - - def invoke - run_metaconfigs - case task = parsearg_global() - when nil, 'all' - parsearg_config - init_installers - exec_config - exec_setup - exec_install - else - case task - when 'config', 'test' - ; - when 'clean', 'distclean' - @config.load_savefile if File.exist?(@config.savefile) - else - @config.load_savefile - end - __send__ "parsearg_#{task}" - init_installers - __send__ "exec_#{task}" - end - end - - def run_metaconfigs - @config.load_script "#{@ardir}/metaconfig" - end - - def init_installers - @installer = Installer.new(@config, @ardir, File.expand_path('.')) - end - - # - # Hook Script API bases - # - - def srcdir_root - @ardir - end - - def objdir_root - '.' - end - - def relpath - '.' - end - - # - # Option Parsing - # - - def parsearg_global - while arg = ARGV.shift - case arg - when /\A\w+\z/ - setup_rb_error "invalid task: #{arg}" unless valid_task?(arg) - return arg - when '-q', '--quiet' - @config.verbose = false - when '--verbose' - @config.verbose = true - when '--help' - print_usage $stdout - exit 0 - when '--version' - puts "#{File.basename($0)} version #{Version}" - exit 0 - when '--copyright' - puts Copyright - exit 0 - else - setup_rb_error "unknown global option '#{arg}'" - end - end - nil - end - - def valid_task?(t) - valid_task_re() =~ t - end - - def valid_task_re - @valid_task_re ||= /\A(?:#{TASKS.map {|task,desc| task }.join('|')})\z/ - end - - def parsearg_no_options - unless ARGV.empty? - task = caller(0).first.slice(%r<`parsearg_(\w+)'>, 1) - setup_rb_error "#{task}: unknown options: #{ARGV.join(' ')}" - end - end - - alias parsearg_show parsearg_no_options - alias parsearg_setup parsearg_no_options - alias parsearg_test parsearg_no_options - alias parsearg_clean parsearg_no_options - alias parsearg_distclean parsearg_no_options - - def parsearg_config - evalopt = [] - set = [] - @config.config_opt = [] - while i = ARGV.shift - if /\A--?\z/ =~ i - @config.config_opt = ARGV.dup - break - end - name, value = *@config.parse_opt(i) - if @config.value_config?(name) - @config[name] = value - else - evalopt.push [name, value] - end - set.push name - end - evalopt.each do |name, value| - @config.lookup(name).evaluate value, @config - end - # Check if configuration is valid - set.each do |n| - @config[n] if @config.value_config?(n) - end - end - - def parsearg_install - @config.no_harm = false - @config.install_prefix = '' - while a = ARGV.shift - case a - when '--no-harm' - @config.no_harm = true - when /\A--prefix=/ - path = a.split(/=/, 2)[1] - path = File.expand_path(path) unless path[0,1] == '/' - @config.install_prefix = path - else - setup_rb_error "install: unknown option #{a}" - end - end - end - - def print_usage(out) - out.puts 'Typical Installation Procedure:' - out.puts " $ ruby #{File.basename $0} config" - out.puts " $ ruby #{File.basename $0} setup" - out.puts " # ruby #{File.basename $0} install (may require root privilege)" - out.puts - out.puts 'Detailed Usage:' - out.puts " ruby #{File.basename $0} " - out.puts " ruby #{File.basename $0} [] []" - - fmt = " %-24s %s\n" - out.puts - out.puts 'Global options:' - out.printf fmt, '-q,--quiet', 'suppress message outputs' - out.printf fmt, ' --verbose', 'output messages verbosely' - out.printf fmt, ' --help', 'print this message' - out.printf fmt, ' --version', 'print version and quit' - out.printf fmt, ' --copyright', 'print copyright and quit' - out.puts - out.puts 'Tasks:' - TASKS.each do |name, desc| - out.printf fmt, name, desc - end - - fmt = " %-24s %s [%s]\n" - out.puts - out.puts 'Options for CONFIG or ALL:' - @config.each do |item| - out.printf fmt, item.help_opt, item.description, item.help_default - end - out.printf fmt, '--rbconfig=path', 'rbconfig.rb to load',"running ruby's" - out.puts - out.puts 'Options for INSTALL:' - out.printf fmt, '--no-harm', 'only display what to do if given', 'off' - out.printf fmt, '--prefix=path', 'install path prefix', '' - out.puts - end - - # - # Task Handlers - # - - def exec_config - @installer.exec_config - @config.save # must be final - end - - def exec_setup - @installer.exec_setup - end - - def exec_install - @installer.exec_install - end - - def exec_test - @installer.exec_test - end - - def exec_show - @config.each do |i| - printf "%-20s %s\n", i.name, i.value if i.value? - end - end - - def exec_clean - @installer.exec_clean - end - - def exec_distclean - @installer.exec_distclean - end - -end # class ToplevelInstaller - - -class ToplevelInstallerMulti < ToplevelInstaller - - include FileOperations - - def initialize(ardir_root, config) - super - @packages = directories_of("#{@ardir}/packages") - raise 'no package exists' if @packages.empty? - @root_installer = Installer.new(@config, @ardir, File.expand_path('.')) - end - - def run_metaconfigs - @config.load_script "#{@ardir}/metaconfig", self - @packages.each do |name| - @config.load_script "#{@ardir}/packages/#{name}/metaconfig" - end - end - - attr_reader :packages - - def packages=(list) - raise 'package list is empty' if list.empty? - list.each do |name| - raise "directory packages/#{name} does not exist"\ - unless File.dir?("#{@ardir}/packages/#{name}") - end - @packages = list - end - - def init_installers - @installers = {} - @packages.each do |pack| - @installers[pack] = Installer.new(@config, - "#{@ardir}/packages/#{pack}", - "packages/#{pack}") - end - with = extract_selection(config('with')) - without = extract_selection(config('without')) - @selected = @installers.keys.select {|name| - (with.empty? or with.include?(name)) \ - and not without.include?(name) - } - end - - def extract_selection(list) - a = list.split(/,/) - a.each do |name| - setup_rb_error "no such package: #{name}" unless @installers.key?(name) - end - a - end - - def print_usage(f) - super - f.puts 'Inluded packages:' - f.puts ' ' + @packages.sort.join(' ') - f.puts - end - - # - # Task Handlers - # - - def exec_config - run_hook 'pre-config' - each_selected_installers {|inst| inst.exec_config } - run_hook 'post-config' - @config.save # must be final - end - - def exec_setup - run_hook 'pre-setup' - each_selected_installers {|inst| inst.exec_setup } - run_hook 'post-setup' - end - - def exec_install - run_hook 'pre-install' - each_selected_installers {|inst| inst.exec_install } - run_hook 'post-install' - end - - def exec_test - run_hook 'pre-test' - each_selected_installers {|inst| inst.exec_test } - run_hook 'post-test' - end - - def exec_clean - rm_f @config.savefile - run_hook 'pre-clean' - each_selected_installers {|inst| inst.exec_clean } - run_hook 'post-clean' - end - - def exec_distclean - rm_f @config.savefile - run_hook 'pre-distclean' - each_selected_installers {|inst| inst.exec_distclean } - run_hook 'post-distclean' - end - - # - # lib - # - - def each_selected_installers - Dir.mkdir 'packages' unless File.dir?('packages') - @selected.each do |pack| - $stderr.puts "Processing the package `#{pack}' ..." if verbose? - Dir.mkdir "packages/#{pack}" unless File.dir?("packages/#{pack}") - Dir.chdir "packages/#{pack}" - yield @installers[pack] - Dir.chdir '../..' - end - end - - def run_hook(id) - @root_installer.run_hook id - end - - # module FileOperations requires this - def verbose? - @config.verbose? - end - - # module FileOperations requires this - def no_harm? - @config.no_harm? - end - -end # class ToplevelInstallerMulti - - -class Installer - - FILETYPES = %w( bin lib ext data conf man ) - - include FileOperations - include HookScriptAPI - - def initialize(config, srcroot, objroot) - @config = config - @srcdir = File.expand_path(srcroot) - @objdir = File.expand_path(objroot) - @currdir = '.' - end - - def inspect - "#<#{self.class} #{File.basename(@srcdir)}>" - end - - def noop(rel) - end - - # - # Hook Script API base methods - # - - def srcdir_root - @srcdir - end - - def objdir_root - @objdir - end - - def relpath - @currdir - end - - # - # Config Access - # - - # module FileOperations requires this - def verbose? - @config.verbose? - end - - # module FileOperations requires this - def no_harm? - @config.no_harm? - end - - def verbose_off - begin - save, @config.verbose = @config.verbose?, false - yield - ensure - @config.verbose = save - end - end - - # - # TASK config - # - - def exec_config - exec_task_traverse 'config' - end - - alias config_dir_bin noop - alias config_dir_lib noop - - def config_dir_ext(rel) - extconf if extdir?(curr_srcdir()) - end - - alias config_dir_data noop - alias config_dir_conf noop - alias config_dir_man noop - - def extconf - ruby "#{curr_srcdir()}/extconf.rb", *@config.config_opt - end - - # - # TASK setup - # - - def exec_setup - exec_task_traverse 'setup' - end - - def setup_dir_bin(rel) - files_of(curr_srcdir()).each do |fname| - update_shebang_line "#{curr_srcdir()}/#{fname}" - end - end - - alias setup_dir_lib noop - - def setup_dir_ext(rel) - make if extdir?(curr_srcdir()) - end - - alias setup_dir_data noop - alias setup_dir_conf noop - alias setup_dir_man noop - - def update_shebang_line(path) - return if no_harm? - return if config('shebang') == 'never' - old = Shebang.load(path) - if old - $stderr.puts "warning: #{path}: Shebang line includes too many args. It is not portable and your program may not work." if old.args.size > 1 - new = new_shebang(old) - return if new.to_s == old.to_s - else - return unless config('shebang') == 'all' - new = Shebang.new(config('rubypath')) - end - $stderr.puts "updating shebang: #{File.basename(path)}" if verbose? - open_atomic_writer(path) {|output| - File.open(path, 'rb') {|f| - f.gets if old # discard - output.puts new.to_s - output.print f.read - } - } - end - - def new_shebang(old) - if /\Aruby/ =~ File.basename(old.cmd) - Shebang.new(config('rubypath'), old.args) - elsif File.basename(old.cmd) == 'env' and old.args.first == 'ruby' - Shebang.new(config('rubypath'), old.args[1..-1]) - else - return old unless config('shebang') == 'all' - Shebang.new(config('rubypath')) - end - end - - def open_atomic_writer(path, &block) - tmpfile = File.basename(path) + '.tmp' - begin - File.open(tmpfile, 'wb', &block) - File.rename tmpfile, File.basename(path) - ensure - File.unlink tmpfile if File.exist?(tmpfile) - end - end - - class Shebang - def Shebang.load(path) - line = nil - File.open(path) {|f| - line = f.gets - } - return nil unless /\A#!/ =~ line - parse(line) - end - - def Shebang.parse(line) - cmd, *args = *line.strip.sub(/\A\#!/, '').split(' ') - new(cmd, args) - end - - def initialize(cmd, args = []) - @cmd = cmd - @args = args - end - - attr_reader :cmd - attr_reader :args - - def to_s - "#! #{@cmd}" + (@args.empty? ? '' : " #{@args.join(' ')}") - end - end - - # - # TASK install - # - - def exec_install - rm_f 'InstalledFiles' - exec_task_traverse 'install' - end - - def install_dir_bin(rel) - install_files targetfiles(), "#{config('bindir')}/#{rel}", 0755 - end - - def install_dir_lib(rel) - install_files libfiles(), "#{config('rbdir')}/#{rel}", 0644 - end - - def install_dir_ext(rel) - return unless extdir?(curr_srcdir()) - install_files rubyextentions('.'), - "#{config('sodir')}/#{File.dirname(rel)}", - 0555 - end - - def install_dir_data(rel) - install_files targetfiles(), "#{config('datadir')}/#{rel}", 0644 - end - - def install_dir_conf(rel) - # FIXME: should not remove current config files - # (rename previous file to .old/.org) - install_files targetfiles(), "#{config('sysconfdir')}/#{rel}", 0644 - end - - def install_dir_man(rel) - install_files targetfiles(), "#{config('mandir')}/#{rel}", 0644 - end - - def install_files(list, dest, mode) - mkdir_p dest, @config.install_prefix - list.each do |fname| - install fname, dest, mode, @config.install_prefix - end - end - - def libfiles - glob_reject(%w(*.y *.output), targetfiles()) - end - - def rubyextentions(dir) - ents = glob_select("*.#{@config.dllext}", targetfiles()) - if ents.empty? - setup_rb_error "no ruby extention exists: 'ruby #{$0} setup' first" - end - ents - end - - def targetfiles - mapdir(existfiles() - hookfiles()) - end - - def mapdir(ents) - ents.map {|ent| - if File.exist?(ent) - then ent # objdir - else "#{curr_srcdir()}/#{ent}" # srcdir - end - } - end - - # picked up many entries from cvs-1.11.1/src/ignore.c - JUNK_FILES = %w( - core RCSLOG tags TAGS .make.state - .nse_depinfo #* .#* cvslog.* ,* .del-* *.olb - *~ *.old *.bak *.BAK *.orig *.rej _$* *$ - - *.org *.in .* - ) - - def existfiles - glob_reject(JUNK_FILES, (files_of(curr_srcdir()) | files_of('.'))) - end - - def hookfiles - %w( pre-%s post-%s pre-%s.rb post-%s.rb ).map {|fmt| - %w( config setup install clean ).map {|t| sprintf(fmt, t) } - }.flatten - end - - def glob_select(pat, ents) - re = globs2re([pat]) - ents.select {|ent| re =~ ent } - end - - def glob_reject(pats, ents) - re = globs2re(pats) - ents.reject {|ent| re =~ ent } - end - - GLOB2REGEX = { - '.' => '\.', - '$' => '\$', - '#' => '\#', - '*' => '.*' - } - - def globs2re(pats) - /\A(?:#{ - pats.map {|pat| pat.gsub(/[\.\$\#\*]/) {|ch| GLOB2REGEX[ch] } }.join('|') - })\z/ - end - - # - # TASK test - # - - TESTDIR = 'test' - - def exec_test - unless File.directory?('test') - $stderr.puts 'no test in this package' if verbose? - return - end - $stderr.puts 'Running tests...' if verbose? - begin - require 'test/unit' - rescue LoadError - setup_rb_error 'test/unit cannot loaded. You need Ruby 1.8 or later to invoke this task.' - end - runner = Test::Unit::AutoRunner.new(true) - runner.to_run << TESTDIR - runner.run - end - - # - # TASK clean - # - - def exec_clean - exec_task_traverse 'clean' - rm_f @config.savefile - rm_f 'InstalledFiles' - end - - alias clean_dir_bin noop - alias clean_dir_lib noop - alias clean_dir_data noop - alias clean_dir_conf noop - alias clean_dir_man noop - - def clean_dir_ext(rel) - return unless extdir?(curr_srcdir()) - make 'clean' if File.file?('Makefile') - end - - # - # TASK distclean - # - - def exec_distclean - exec_task_traverse 'distclean' - rm_f @config.savefile - rm_f 'InstalledFiles' - end - - alias distclean_dir_bin noop - alias distclean_dir_lib noop - - def distclean_dir_ext(rel) - return unless extdir?(curr_srcdir()) - make 'distclean' if File.file?('Makefile') - end - - alias distclean_dir_data noop - alias distclean_dir_conf noop - alias distclean_dir_man noop - - # - # Traversing - # - - def exec_task_traverse(task) - run_hook "pre-#{task}" - FILETYPES.each do |type| - if type == 'ext' and config('without-ext') == 'yes' - $stderr.puts 'skipping ext/* by user option' if verbose? - next - end - traverse task, type, "#{task}_dir_#{type}" - end - run_hook "post-#{task}" - end - - def traverse(task, rel, mid) - dive_into(rel) { - run_hook "pre-#{task}" - __send__ mid, rel.sub(%r[\A.*?(?:/|\z)], '') - directories_of(curr_srcdir()).each do |d| - traverse task, "#{rel}/#{d}", mid - end - run_hook "post-#{task}" - } - end - - def dive_into(rel) - return unless File.dir?("#{@srcdir}/#{rel}") - - dir = File.basename(rel) - Dir.mkdir dir unless File.dir?(dir) - prevdir = Dir.pwd - Dir.chdir dir - $stderr.puts '---> ' + rel if verbose? - @currdir = rel - yield - Dir.chdir prevdir - $stderr.puts '<--- ' + rel if verbose? - @currdir = File.dirname(rel) - end - - def run_hook(id) - path = [ "#{curr_srcdir()}/#{id}", - "#{curr_srcdir()}/#{id}.rb" ].detect {|cand| File.file?(cand) } - return unless path - begin - instance_eval File.read(path), path, 1 - rescue - raise if $DEBUG - setup_rb_error "hook #{path} failed:\n" + $!.message - end - end - -end # class Installer - - -class SetupError < StandardError; end - -def setup_rb_error(msg) - raise SetupError, msg -end - -if $0 == __FILE__ - begin - ToplevelInstaller.invoke - rescue SetupError - raise if $DEBUG - $stderr.puts $!.message - $stderr.puts "Try 'ruby #{$0} --help' for detailed usage." - exit 1 - end -end diff --git a/vendor/plugins/diff-display/test/fixtures/big.diff b/vendor/plugins/diff-display/test/fixtures/big.diff deleted file mode 100644 index a3c9eb6dc..000000000 --- a/vendor/plugins/diff-display/test/fixtures/big.diff +++ /dev/null @@ -1,590 +0,0 @@ ---- unified.rb (revision 620) -+++ unified.rb (revision 644) -@@ -1,298 +1,390 @@ - module Diff - module Display - module Unified -- -- LINE_RE = /@@ [+-]([0-9]+),([0-9]+) [+-]([0-9]+),([0-9]+) @@/ -- TABWIDTH = 4 -- SPACE = ' ' #' ' -- # By defaul don't wrap inline diffs in anything -- INLINE_REM_OPEN = "\e[4;33m" -- INLINE_REM_CLOSE = "\e[m" -- INLINE_ADD_OPEN = "\e[4;35m" -- INLINE_ADD_CLOSE = "\e[m" -- ESCAPE_HTML = false -- - class Line < String -- attr_reader :add_lineno, :rem_lineno -- def initialize(line, type, add_lineno, rem_lineno = add_lineno) -+ def initialize(line, line_number) - super(line) -- @type = type -- @add_lineno = add_lineno -- @rem_lineno = rem_lineno -+ @line_number = line_number -+ self - end - -+ def contains_inline_change? -+ @inline -+ end -+ - def number -- add_lineno ? add_lineno : rem_lineno -+ @line_number - end - -- def type -- @type -+ def decorate(&block) -+ yield self - end - -- class << self -- def add(line, add_lineno) -- AddLine.new(line, add_lineno) -+ def inline_add_open; '' end -+ def inline_add_close; '' end -+ def inline_rem_open; '' end -+ def inline_rem_close; '' end -+ -+ protected -+ -+ def escape -+ self - end - -- def rem(line, rem_lineno) -- RemLine.new(line, rem_lineno) -+ def expand -+ escape.gsub("\t", ' ' * tabwidth).gsub(/ ( +)|^ /) do |match| -+ (space + ' ') * (match.size / 2) + -+ space * (match.size % 2) -+ end - end - -- def unmod(line, lineno) -- UnModLine.new(line, lineno) -+ def tabwidth -+ 4 - end - -- def mod(line, lineno) -- ModLine.new(line, lineno) -+ -+ def space -+ ' ' - end -+ -+ class << self -+ def add(line, line_number, inline = false) -+ AddLine.new(line, line_number, inline) -+ end -+ -+ def rem(line, line_number, inline = false) -+ RemLine.new(line, line_number, inline) -+ end -+ -+ def unmod(line, line_number) -+ UnModLine.new(line, line_number) -+ end - end - end - - class AddLine < Line -- def initialize(line, add_lineno) -- super(line, 'add', add_lineno, nil) -+ def initialize(line, line_number, inline = false) -+ line = inline ? line % [inline_add_open, inline_add_close] : line -+ super(line, line_number) -+ @inline = inline -+ self - end - end - - class RemLine < Line -- def initialize(line, rem_lineno) -- super(line, 'rem', nil, rem_lineno) -+ def initialize(line, line_number, inline = false) -+ line = inline ? line % [inline_rem_open, inline_rem_close] : line -+ super(line, line_number) -+ @inline = inline -+ self - end - end - - class UnModLine < Line -- def initialize(line, lineno) -- super(line, 'unmod', lineno) -+ def initialize(line, line_number) -+ super(line, line_number) - end - end - -- class ModLine < Line -- def initialize(line, lineno) -- super(line, 'mod', lineno) -+ class SepLine < Line -+ def initialize(line = '...') -+ super(line, nil) - end - end - -+ # This class is an array which contains Line objects. Just like Line -+ # classes, several Block classes inherit from Block. If all the lines -+ # in the block are added lines then it is an AddBlock. If all lines -+ # in the block are removed lines then it is a RemBlock. If the lines -+ # in the block are all unmodified then it is an UnMod block. If the -+ # lines in the block are a mixture of added and removed lines then -+ # it is a ModBlock. There are no blocks that contain a mixture of -+ # modified and unmodified lines. - class Block < Array -- def initialize(type) -- super(0) -- @type = type -+ def initialize -+ super -+ @line_types = [] - end - - def <<(line_object) - super(line_object) -- (@line_types ||= []).push(line_object.type) -- @line_types.uniq! -+ line_class = line_object.class.name[/\w+$/] -+ @line_types.push(line_class) unless @line_types.include?(line_class) - self - end - -+ def decorate(&block) -+ yield self -+ end -+ - def line_types - @line_types - end - -- def type -- @type -+ class << self -+ def add; AddBlock.new end -+ def rem; RemBlock.new end -+ def mod; ModBlock.new end -+ def unmod; UnModBlock.new end - end - end - -- class Generator < Array -+ class AddBlock < Block; end -+ class RemBlock < Block; end -+ class ModBlock < Block; end -+ class UnModBlock < Block; end -+ class SepBlock < Block; end - -+ # This data object contains the generated diff data structure. It is an -+ # array of Block objects which are themselves arrays of Line objects. The -+ # Generator class returns a Data instance object after it is done -+ # processing the diff. -+ class Data < Array -+ def initialize -+ super -+ end -+ -+ def debug -+ demodularize = Proc.new {|obj| obj.class.name[/\w+$/]} -+ each do |diff_block| -+ print "*" * 40, ' ', demodularize.call(diff_block) -+ puts -+ puts diff_block.map {|line| -+ "%5d" % line.number + -+ " [#{demodularize.call(line)}]" + -+ line -+ }.join("\n") -+ puts "*" * 40, ' ' -+ end -+ end -+ -+ end -+ -+ # Processes the diff and generates a Data object which contains the -+ # resulting data structure. -+ class Generator -+ -+ # Extracts the line number info for a given diff section -+ LINE_NUM_RE = /@@ [+-]([0-9]+),([0-9]+) [+-]([0-9]+),([0-9]+) @@/ -+ LINE_TYPES = {'+' => :add, '-' => :rem, ' ' => :unmod} -+ - class << self -- def run(udiff, options = {}) -- generator = new(options) -- udiff.split("\n").each {|line| generator.build(line) } -- generator.close -- generator -+ -+ # Runs the generator on a diff and returns a Data object without -+ # instantiating a Generator object -+ def run(udiff) -+ raise ArgumentError, "Object must be enumerable" unless udiff.respond_to?(:each) -+ generator = new -+ udiff.each {|line| generator.process(line.chomp)} -+ generator.render - end - end - -- def initialize(options = {}) -- super(0) -- default_options = {:inline_add_open => INLINE_ADD_OPEN, -- :inline_add_close => INLINE_ADD_CLOSE, -- :inline_rem_open => INLINE_REM_OPEN, -- :inline_rem_close => INLINE_REM_CLOSE, -- :escape_html => ESCAPE_HTML, -- :tabwidth => TABWIDTH, -- :space => SPACE} -- -- @options = default_options.merge(options) -- @block = [] -- @ttype = nil -- @p_block = [] -- @p_type = nil -- @changeno = -1 -- @blockno = 0 -+ def initialize -+ @buffer = [] -+ @prev_buffer = [] -+ @line_type = nil -+ @prev_line_type = nil - @offset_base = 0 - @offset_changed = 0 -+ @data = Diff::Display::Unified::Data.new -+ self - end - -- def current_block -- last -+ # Operates on a single line from the diff and passes along the -+ # collected data to the appropriate method for further processing. The -+ # cycle of processing is in general: -+ # -+ # process --> identify_block --> process_block --> process_line -+ # -+ def process(line) -+ return if ['++', '--'].include?(line[0,2]) -+ -+ if match = LINE_NUM_RE.match(line) -+ identify_block -+ push SepBlock.new and current_block << SepLine.new unless @offset_changed.zero? -+ @line_type = nil -+ @offset_base = match[1].to_i - 1 -+ @offset_changed = match[3].to_i - 1 -+ return -+ end -+ -+ new_line_type, line = LINE_TYPES[car(line)], cdr(line) -+ -+ # Add line to the buffer if it's the same diff line type -+ # as the previous line -+ # -+ # e.g. -+ # -+ # + This is a new line -+ # + As is this one -+ # + And yet another one... -+ # -+ if new_line_type.eql?(@line_type) -+ @buffer.push(line) -+ else -+ # Side by side inline diff -+ # -+ # e.g. -+ # -+ # - This line just had to go -+ # + This line is on the way in -+ # -+ if new_line_type.eql?(LINE_TYPES['+']) and @line_type.eql?(LINE_TYPES['-']) -+ @prev_buffer = @buffer -+ @prev_line_type = @line_type -+ else -+ identify_block -+ end -+ @buffer = [line] -+ @line_type = new_line_type -+ end - end - -+ # Finishes up with the generation and returns the Data object (could -+ # probably use a better name...maybe just #data?) - def render - close -- self -+ @data - end -- -- def escape(text) -- return '' unless text -- return text unless @options[:escape_html] -- text.gsub('&', '&'). -- gsub('<', '<' ). -- gsub('>', '>' ). -- gsub('"', '"') -- end - -- def expand(text) -- escape(text).gsub(/ ( +)|^ /) do |match| -- (@options[:space] + ' ') * (match.size / 2) + -- @options[:space] * (match.size % 2) -- end -- end -+ protected - -- def inline_diff(line, start, ending, change) -- expand(line[0, start]) + -- change + -- expand(line[ending, ending.abs]) -- end -+ def identify_block -+ if @prev_line_type.eql?(LINE_TYPES['-']) and @line_type.eql?(LINE_TYPES['+']) -+ process_block(:mod, {:old => @prev_buffer, :new => @buffer}) -+ else -+ if LINE_TYPES.values.include?(@line_type) -+ process_block(@line_type, {:new => @buffer}) -+ end -+ end - -- def write_line(oldline, newline) -- start, ending = get_change_extent(oldline, newline) -- change = '' -- if oldline.size > start - ending -- change = @options[:inline_rem_open] + -- expand(oldline[start...ending]) + -- @options[:inline_rem_close] -+ @prev_line_type = nil - end - -- line = inline_diff(oldline, start, ending, change) -- current_block << Line.rem(line, @offset_base) -+ def process_block(diff_line_type, blocks = {:old => nil, :new => nil}) -+ push Block.send(diff_line_type) -+ old, new = blocks[:old], blocks[:new] - -- change = '' -- if newline.size > start - ending -- change = @options[:inline_add_open] + -- expand(newline[start...ending]) + -- @options[:inline_add_close] -+ # Mod block -+ if diff_line_type.eql?(:mod) and old.size & new.size == 1 -+ process_line(old.first, new.first) -+ return -+ end -+ -+ if old and not old.empty? -+ old.each do |line| -+ @offset_base += 1 -+ current_block << Line.send(@prev_line_type, line, @offset_base) -+ end -+ end -+ -+ if new and not new.empty? -+ new.each do |line| -+ @offset_changed += 1 -+ current_block << Line.send(@line_type, line, @offset_changed) -+ end -+ end - end - -- line = inline_diff(newline, start, ending, change) -- current_block << Line.add(line, @offset_changed) -- end -+ # TODO Needs a better name...it does process a line (two in fact) but -+ # its primary function is to add a Rem and an Add pair which -+ # potentially have inline changes -+ def process_line(oldline, newline) -+ start, ending = get_change_extent(oldline, newline) - -- def write_block(dtype, old = nil, new = nil) -- push Block.new(dtype) -+ # - -+ line = inline_diff(oldline, start, ending) -+ current_block << Line.rem(line, @offset_base += 1, true) - -- if dtype == 'mod' and old.size == 1 and new.size == 1 -- write_line(old.first, new.first) -- return -+ # + -+ line = inline_diff(newline, start, ending) -+ current_block << Line.add(line, @offset_changed += 1, true) - end - -- if old and not old.empty? -- old.each do |e| -- current_block << Line.send(dtype, expand(e), @offset_base) -- @offset_base += 1 -- end -+ # Inserts string formating characters around the section of a string -+ # that differs internally from another line so that the Line class -+ # can insert the desired formating -+ def inline_diff(line, start, ending) -+ line[0, start] + -+ '%s' + extract_change(line, start, ending) + '%s' + -+ line[ending, ending.abs] - end - -- if new and not new.empty? -- new.each do |e| -- current_block << Line.send(dtype, expand(e), @offset_changed) -- @offset_changed += 1 -- end -+ def extract_change(line, start, ending) -+ line.size > (start - ending) ? line[start...ending] : '' - end -- end - -- def print_block -- if @p_type.eql?('-') and @ttype.eql?('+') -- write_block('mod', @p_block, @block) -- else -- case @ttype -- when '+' -- write_block('add', @block) -- when '-' -- write_block('rem', @block) -- when ' ' -- write_block('unmod', @block) -- end -+ def car(line) -+ line[0,1] - end - -- @block = @p_block = [] -- @p_type = ' ' -- @blockno += 1 -- end -+ def cdr(line) -+ line[1..-1] -+ end - -- def build(text) -- # TODO Names of the files and their versions go here perhaps -+ # Returns the current Block object -+ def current_block -+ @data.last -+ end - -- return if ['++', '--'].include?(text[0,2]) -+ # Adds a Line object onto the current Block object -+ def push(line) -+ @data.push line -+ end - -- if match = LINE_RE.match(text) -- print_block -- @changeno += 1 -- @blockno = 0 -- @offset_base = match[1].to_i - 1 -- @offset_changed = match[3].to_i - 1 -- return -+ # This method is called once the generator is done with the unified -+ # diff. It is a finalizer of sorts. By the time it is called all data -+ # has been collected and processed. -+ def close -+ # certain things could be set now that processing is done -+ identify_block - end - -- # Set ttype to first character of line -- ttype = text[0, 1] -- text = text[1..-1] -- text = text.gsub("\t", ' ' * @options[:tabwidth]) if text -- # If it's the same type of mod as the last line push this line onto the -- # block stack -- if ttype.eql?(@ttype) -- @block.push(text) -- else -- # If we have a side by side subtraction/addition -- if ttype == '+' and @ttype == '-' -- @p_block = @block -- @p_type = @ttype -- else -- print_block -+ # Determines the extent of differences between two string. Returns -+ # an array containing the offset at which changes start, and then -+ # negative offset at which the chnages end. If the two strings have -+ # neither a common prefix nor a common suffic, [0, 0] is returned. -+ def get_change_extent(str1, str2) -+ start = 0 -+ limit = [str1.size, str2.size].sort.first -+ while start < limit and str1[start, 1] == str2[start, 1] -+ start += 1 - end -- @block = [text] -- @ttype = ttype -+ ending = -1 -+ limit -= start -+ while -ending <= limit and str1[ending, 1] == str2[ending, 1] -+ ending -= 1 -+ end -+ -+ return [start, ending + 1] - end -- end -+ end - -- def debug -- each do |diff_block| -- print "*" * (40 - diff_block.type.size / 2), ' ', diff_block.type -- puts -- puts diff_block.map {|line| "#{line.number}" << line << " [#{line.type}]"}.join("\n") -- print "Line types:" -- puts diff_block.line_types.join(", ") -- puts -- end -+ # Mostly a convinience class at this point that just overwrites various -+ # customization methods -+ class HTMLGenerator < Generator -+ -+ # This and the space method now don't work/make sense now that those -+ # methods are part of the Line class and there certainly won't be an -+ # HTMLLine class -+ def escape(text) -+ text.gsub('&', '&'). -+ gsub('<', '<' ). -+ gsub('>', '>' ). -+ gsub('"', '"') - end - -- def close -- # certain things could be set now that processing is done -- print_block -+ def space -+ ' ' - end - -- # Determines the extent of differences between two string. Returns -- # an array containing the offset at which changes start, and then -- # negative offset at which the chnages end. If the two strings have -- # neither a common prefix nor a common suffic, [0, 0] is returned. -- def get_change_extent(str1, str2) -- start = 0 -- limit = [str1.size, str2.size].sort.first -- while start < limit and str1[start, 1] == str2[start, 1] -- start += 1 -- end -- ending = -1 -- limit -= start -- while -ending <= limit and str1[ending, 1] == str2[ending, 1] -- ending -= 1 -- end -+ end - -- return [start, ending + 1] -- end -+ # See doc string for HTMLGenerator -+ class ASCIIGenerator < Generator - end -+ - end - end - end -- diff --git a/vendor/plugins/diff-display/test/fixtures/multiple_adds_after_rem.diff b/vendor/plugins/diff-display/test/fixtures/multiple_adds_after_rem.diff deleted file mode 100644 index 07682d2e6..000000000 --- a/vendor/plugins/diff-display/test/fixtures/multiple_adds_after_rem.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- a/one.txt -+++ b/one.txt -@@ -193,7 +193,21 @@ module One - pre yada yada -- -+ -+ foo -+ bar -+ baz -+ - post yada yada \ No newline at end of file diff --git a/vendor/plugins/diff-display/test/fixtures/multiple_rems_then_add.diff b/vendor/plugins/diff-display/test/fixtures/multiple_rems_then_add.diff deleted file mode 100644 index f5fd3f80d..000000000 --- a/vendor/plugins/diff-display/test/fixtures/multiple_rems_then_add.diff +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/strokedb-ruby/lib/stores/chainable_storage.rb b/strokedb-ruby/lib/stores/chainable_storage.rb -index 5326c92..1e2de8f 100644 ---- a/strokedb-ruby/lib/stores/chainable_storage.rb -+++ b/strokedb-ruby/lib/stores/chainable_storage.rb -@@ -44,9 +44,7 @@ module StrokeDB - def save_with_chained_storages!(chunk,source=nil) - perform_save!(chunk) - (@chained_storages||{}).each_pair do |storage,savings| -- unless storage == chunk -- savings << chunk unless savings.include?(chunk) -- end -+ savings << chunk unless storage == chunk || savings.include?(chunk) - end - end \ No newline at end of file diff --git a/vendor/plugins/diff-display/test/fixtures/only_add.diff b/vendor/plugins/diff-display/test/fixtures/only_add.diff deleted file mode 100644 index b95d7051e..000000000 --- a/vendor/plugins/diff-display/test/fixtures/only_add.diff +++ /dev/null @@ -1,4 +0,0 @@ ---- a.txt 2008-02-03 16:28:06.000000000 +0100 -+++ b.txt 2008-02-03 16:28:14.000000000 +0100 -@@ -0,0 +1 @@ -+foo diff --git a/vendor/plugins/diff-display/test/fixtures/only_rem.diff b/vendor/plugins/diff-display/test/fixtures/only_rem.diff deleted file mode 100644 index 42c6d8f89..000000000 --- a/vendor/plugins/diff-display/test/fixtures/only_rem.diff +++ /dev/null @@ -1,4 +0,0 @@ ---- b.txt 2008-02-03 16:28:14.000000000 +0100 -+++ a.txt 2008-02-03 16:28:06.000000000 +0100 -@@ -1 +0,0 @@ --foo diff --git a/vendor/plugins/diff-display/test/fixtures/pseudo_recursive.diff b/vendor/plugins/diff-display/test/fixtures/pseudo_recursive.diff deleted file mode 100644 index d9b635d3c..000000000 --- a/vendor/plugins/diff-display/test/fixtures/pseudo_recursive.diff +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/spec/fixtures/multiple_rems_then_add.diff b/spec/fixtures/multiple_rems_then_add.diff -new file mode 100644 -index 0000000..f5fd3f8 ---- /dev/null -+++ b/spec/fixtures/multiple_rems_then_add.diff -@@ -0,0 +1,14 @@ -+diff --git a/strokedb-ruby/lib/stores/chainable_storage.rb b/strokedb-ruby/lib/stores/chainable_storage.rb -+index 5326c92..1e2de8f 100644 -+--- a/strokedb-ruby/lib/stores/chainable_storage.rb -++++ b/strokedb-ruby/lib/stores/chainable_storage.rb -+@@ -44,9 +44,7 @@ module StrokeDB -+ def save_with_chained_storages!(chunk,source=nil) -+ perform_save!(chunk) -+ (@chained_storages||{}).each_pair do |storage,savings| -+- unless storage == chunk -+- savings << chunk unless savings.include?(chunk) -+- end -++ savings << chunk unless storage == chunk || savings.include?(chunk) -+ end -+ end -\ No newline at end of file diff --git a/vendor/plugins/diff-display/test/fixtures/simple.diff b/vendor/plugins/diff-display/test/fixtures/simple.diff deleted file mode 100644 index e2b9909b6..000000000 --- a/vendor/plugins/diff-display/test/fixtures/simple.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/History.txt b/History.txt -index 0ed7358..622c384 100644 ---- a/History.txt -+++ b/History.txt -@@ -1,4 +1,5 @@ - == 0.0.1 2008-01-28 - --* 1 major enhancement: -- * Initial release -+* 2 major enhancements: -+ * The Initial release -+ * stuff added \ No newline at end of file diff --git a/vendor/plugins/diff-display/test/fixtures/simple_oneliner.diff b/vendor/plugins/diff-display/test/fixtures/simple_oneliner.diff deleted file mode 100644 index 9ae4561ac..000000000 --- a/vendor/plugins/diff-display/test/fixtures/simple_oneliner.diff +++ /dev/null @@ -1,7 +0,0 @@ ---- a.txt 2009-03-04 17:20:15.000000000 +0100 -+++ b.txt 2009-03-04 17:20:33.000000000 +0100 -@@ -1,3 +1,3 @@ - foo --bar -+baz - baz diff --git a/vendor/plugins/diff-display/test/fixtures/simple_rewrite.diff b/vendor/plugins/diff-display/test/fixtures/simple_rewrite.diff deleted file mode 100644 index d7a7cff72..000000000 --- a/vendor/plugins/diff-display/test/fixtures/simple_rewrite.diff +++ /dev/null @@ -1,8 +0,0 @@ -diff --git a/text.txt b/text.txt -index 7b57bd2..7010a82 100644 ---- a/text.txt -+++ b/text.txt -@@ -1 +1 @@ --some text -+asdasdsa -\ No newline at end of file diff --git a/vendor/plugins/diff-display/test/test_api.rb b/vendor/plugins/diff-display/test/test_api.rb deleted file mode 100644 index f057d7db1..000000000 --- a/vendor/plugins/diff-display/test/test_api.rb +++ /dev/null @@ -1,12 +0,0 @@ -# -*- encoding : utf-8 -*- - -require File.dirname(__FILE__) + "/test_helper" - -class TestApi < Test::Unit::TestCase - include DiffFixtureHelper - - def test_it_has_a_simple_API - diff = Diff::Display::Unified.new(load_diff("simple")) - diff.render(Diff::Renderer::Base.new) - end -end diff --git a/vendor/plugins/diff-display/test/test_base_renderer.rb b/vendor/plugins/diff-display/test/test_base_renderer.rb deleted file mode 100644 index 1dcf99685..000000000 --- a/vendor/plugins/diff-display/test/test_base_renderer.rb +++ /dev/null @@ -1,101 +0,0 @@ -# -*- encoding : utf-8 -*- - -require File.dirname(__FILE__) + "/test_helper" - -class TestBaseRenderer < Test::Unit::TestCase - include DiffFixtureHelper - - def setup - @data = Diff::Display::Unified::Generator.run(load_diff("big")) - @base_renderer = Diff::Renderer::Base.new - end - - def test_it_classifies_a_classname - assert_equal "remblock", @base_renderer.send(:classify, Diff::Display::RemBlock.new) - end - - def test_it_calls_the_before_headerblock - @base_renderer.expects(:before_headerblock).at_least_once - @base_renderer.render(@data) - end - - # def test_it_calls_the_before_sepblock - # @base_renderer.expects(:before_sepblock).at_least_once - # @base_renderer.render(@data) - # end - - # def test_it_calls_the_before_modblock - # @base_renderer.expects(:before_modblock).at_least_once - # @base_renderer.render(@data) - # end - - def test_calls_the_before_unmodblock - @base_renderer.expects(:before_unmodblock).at_least_once - @base_renderer.render(@data) - end - - def test_should_calls_the_before_addblock - @base_renderer.expects(:before_addblock).at_least_once - @base_renderer.render(@data) - end - - def test_calls_the_before_remblock - @base_renderer.expects(:before_remblock).at_least_once - @base_renderer.render(@data) - end - - def test_calls_headerline - @base_renderer.expects(:headerline).at_least_once - @base_renderer.render(@data) - end - - def test_calls_unmodline - @base_renderer.expects(:unmodline).at_least_once - @base_renderer.render(@data) - end - - def test_calls_addline - @base_renderer.expects(:addline).at_least_once - @base_renderer.render(@data) - end - - def test_calls_remline - @base_renderer.expects(:remline).at_least_once - @base_renderer.render(@data) - end - - def test_calls_the_after_headerblock - @base_renderer.expects(:after_headerblock).at_least_once - @base_renderer.render(@data) - end - - # def test_calls_the_after_sepblock - # @base_renderer.expects(:after_sepblock).at_least_once - # @base_renderer.render(@data) - # end - - # def test_calls_the_after_modblock - # @base_renderer.expects(:after_modblock).at_least_once - # @base_renderer.render(@data) - # end - - def test_calls_the_after_unmodblock - @base_renderer.expects(:after_unmodblock).at_least_once - @base_renderer.render(@data) - end - - def test_calls_the_after_addblock - @base_renderer.expects(:after_addblock).at_least_once - @base_renderer.render(@data) - end - - def test_calls_the_after_remblock - @base_renderer.expects(:after_remblock).at_least_once - @base_renderer.render(@data) - end - - def test_renders_a_basic_datastructure - output = @base_renderer.render(@data) - assert_not_equal nil, output - end -end diff --git a/vendor/plugins/diff-display/test/test_datastructure.rb b/vendor/plugins/diff-display/test/test_datastructure.rb deleted file mode 100644 index b1219e9a4..000000000 --- a/vendor/plugins/diff-display/test/test_datastructure.rb +++ /dev/null @@ -1,100 +0,0 @@ -# -*- encoding : utf-8 -*- - -require File.dirname(__FILE__) + "/test_helper" - -class TestDatastructure < Test::Unit::TestCase - include DiffFixtureHelper - - # Data - def test_behaves_like_an_array - data = Diff::Display::Data.new - data << "foo" - data.push "bar" - assert_equal ["foo", "bar"], data - end - - # Line - def test_initializes_with_an_old_line_number - line = Diff::Display::Line.new("foo", 12) - assert_equal 12, line.old_number - end - - def test_initializes_with_numbers - line = Diff::Display::Line.new("foo", 12, 13) - assert_equal 12, line.old_number - assert_equal 13, line.new_number - end - - def test_has_a_class_method_for_creating_an_addline - line = Diff::Display::Line.add("foo", 7) - assert_instance_of Diff::Display::AddLine, line - end - - def test_has_a_class_method_for_creating_a_remline - line = Diff::Display::Line.rem("foo", 7) - assert_instance_of Diff::Display::RemLine, line - end - - def test_has_a_class_method_for_creating_a_unmodline - line = Diff::Display::Line.unmod("foo", 7, 8) - assert_instance_of Diff::Display::UnModLine, line - end - - def test_has_a_class_method_for_creating_a_header_line - line = Diff::Display::Line.header("foo") - assert_instance_of Diff::Display::HeaderLine, line - end - - def test_has_an_identifier - assert_equal :add, Diff::Display::Line.add("foo", 7).identifier - assert_equal :rem, Diff::Display::Line.rem("foo", 7).identifier - assert_equal :unmod, Diff::Display::Line.unmod("foo", 7, 8).identifier - assert_equal :header, Diff::Display::Line.header("foo").identifier - assert_equal :nonewline, Diff::Display::Line.nonewline("foo").identifier - end - - def test_expands_inline_changes - line = Diff::Display::AddLine.new('the \\0quick \\1brown fox', 42, true) - expanded = line.expand_inline_changes_with("START", "END") - assert_equal "the STARTquick ENDbrown fox", expanded.to_s - end - - def test_segments - line = Diff::Display::AddLine.new('the \\0quick \\1brown fox', 42, true) - assert_equal ["the ", "quick ", "brown fox"], line.segments - end - - # Block - def test_block_behaves_like_an_array - block = Diff::Display::Block.new - block.push 1,2,3 - assert_equal 3, block.size - assert_equal [1,2,3], block - end - - def test_has_class_method_for_creating_an_addblock - block = Diff::Display::Block.add - assert_instance_of Diff::Display::AddBlock, block - end - - def test_has_class_method_for_creating_an_remblock - block = Diff::Display::Block.rem - assert_instance_of Diff::Display::RemBlock, block - end - - def test_has_class_method_for_creating_an_modblock - block = Diff::Display::Block.mod - assert_instance_of Diff::Display::ModBlock, block - end - - def test_has_class_method_for_creating_an_unmodblock - block = Diff::Display::Block.unmod - assert_instance_of Diff::Display::UnModBlock, block - end - - def test_has_class_method_for_creating_an_headerblock - block = Diff::Display::Block.header - assert_instance_of Diff::Display::HeaderBlock, block - end - -end diff --git a/vendor/plugins/diff-display/test/test_diff_renderer.rb b/vendor/plugins/diff-display/test/test_diff_renderer.rb deleted file mode 100644 index d6bf013c0..000000000 --- a/vendor/plugins/diff-display/test/test_diff_renderer.rb +++ /dev/null @@ -1,14 +0,0 @@ -# -*- encoding : utf-8 -*- - -require File.dirname(__FILE__) + "/test_helper" - -class TestDiffRenderer < Test::Unit::TestCase - include DiffFixtureHelper - - def test_it_renders_a_diff_back_to_its_original_state - data = Diff::Display::Unified::Generator.run(load_diff("simple")) - base_renderer = Diff::Renderer::Diff.new - assert_equal load_diff("simple"), base_renderer.render(data) - end -end - diff --git a/vendor/plugins/diff-display/test/test_generator.rb b/vendor/plugins/diff-display/test/test_generator.rb deleted file mode 100644 index 984fb565c..000000000 --- a/vendor/plugins/diff-display/test/test_generator.rb +++ /dev/null @@ -1,148 +0,0 @@ -# -*- encoding : utf-8 -*- - -require File.dirname(__FILE__) + "/test_helper" - -class TestGenerator < Test::Unit::TestCase - include DiffFixtureHelper - - def setup - @generator = Diff::Display::Unified::Generator.new - end - - def test_generator_run_raises_if_doesnt_get_a_enumerable_object - assert_raises(ArgumentError) do - Diff::Display::Unified::Generator.run(nil) - end - end - - def test_generator_run_processes_each_line_in_the_diff - Diff::Display::Unified::Generator.expects(:new).returns(@generator) - @generator.expects(:process).with("foo") - @generator.expects(:process).with("bar") - Diff::Display::Unified::Generator.run("foo\nbar") - end - - def test_generator_run_returns_the_data - Diff::Display::Unified::Generator.expects(:new).returns(@generator) - generated = Diff::Display::Unified::Generator.run("foo\nbar") - assert_instance_of Diff::Display::Data, generated - end - - def test_the_returned_that_object_is_in_parity_with_the_diff - %w[multiple_rems_then_add only_rem simple multiple_adds_after_rem only_add pseudo_recursive simple_oneliner].each do |diff| - data = Diff::Display::Unified::Generator.run(load_diff(diff)) - assert_equal load_diff(diff).chomp, data.to_diff, "failed on #{diff}" - end - end - - def test_big - diff_data = load_diff("big") - data = Diff::Display::Unified::Generator.run(diff_data) - assert_equal diff_data.chomp, data.to_diff - end - - def test_multiple_rems_and_an_add_is_in_parity - diff_data = load_diff("multiple_rems_then_add") - data = Diff::Display::Unified::Generator.run(diff_data) - assert_equal diff_data.chomp, data.to_diff - end - - def test_doesnt_parse_linenumbers_that_isnt_part_if_the_diff - range = 1..14 - expected_lines = range.to_a.map{|l| [nil, l] } - assert_equal expected_lines, line_numbers_for(:pseudo_recursive).compact - end - - def test_parses_no_newline_at_end_of_file - diff_data = load_diff("pseudo_recursive") - data = Diff::Display::Unified::Generator.run(diff_data) - assert_equal diff_data.chomp, data.to_diff - assert_instance_of Diff::Display::NonewlineBlock, data.last - assert_equal 1, data.last.size - assert_instance_of Diff::Display::NonewlineLine, data.last[0] - assert_equal '\\ No newline at end of file', data.last[0] - end - - def test_a_changed_string_becomes_a_modblock - diff_data = load_diff("simple_oneliner") - data = Diff::Display::Unified::Generator.run(diff_data) - - assert_equal diff_data.chomp, data.to_diff - assert_equal 6, data.size - modblock = data[4] - assert_instance_of Diff::Display::ModBlock, modblock - assert_equal 2, modblock.size, modblock.inspect - - rem = modblock[0] - add = modblock[1] - assert_instance_of Diff::Display::RemLine, rem - assert_instance_of Diff::Display::AddLine, add - assert add.inline_changes? - assert rem.inline_changes? - end - - # line numbering - def test_numbers_correctly_for_multiple_adds_after_rem - expected = [ - [193, 193], - [194, nil], - [nil, 194], - [nil, 195], - [nil, 196], - [nil, 197], - [nil, 198], - [195, 199] - ] - assert_equal expected, line_numbers_for(:multiple_adds_after_rem) - end - - def test_numbers_correctly_for_simple - expected = [ - [1, 1], - [2, 2], - [3, nil], - [4, nil], - [nil, 3], - [nil, 4], - [nil, 5], - ] - assert_equal expected, line_numbers_for(:simple) - end - - def test_rewrite_line_does_not_set_inline_changes - diff_data = load_diff("simple_rewrite") - data = Diff::Display::Unified::Generator.run(diff_data) - - assert_equal diff_data.chomp, data.to_diff - modblock = data[5] - assert_instance_of Diff::Display::ModBlock, modblock - - assert_instance_of Diff::Display::RemLine, rem = modblock[0] - assert_instance_of Diff::Display::AddLine, add = modblock[1] - - assert !rem.inline_changes?, "rem has inline changes" - assert !add.inline_changes?, "add has inline_changes" - end - - def test_should_not_explode_on_invalid_byte_sequences - diff_data = "+s\x8B\xB5\x13\n" - assert_nothing_raised do - Diff::Display::Unified::Generator.run(diff_data) - end - end - - protected - def line_numbers_for(diff) - diff_data = load_diff(diff) - data = Diff::Display::Unified::Generator.run(diff_data) - linenos = [] - data.each do |blk| - blk.each do |line| - next if line.class == Diff::Display::HeaderLine - next if line.class == Diff::Display::NonewlineLine - linenos << [line.old_number, line.new_number] - end - end - linenos - end -end diff --git a/vendor/plugins/diff-display/test/test_helper.rb b/vendor/plugins/diff-display/test/test_helper.rb deleted file mode 100644 index 32d6bbf24..000000000 --- a/vendor/plugins/diff-display/test/test_helper.rb +++ /dev/null @@ -1,26 +0,0 @@ -# -*- encoding : utf-8 -*- -# require "test/unit" -# $:.unshift File.dirname(__FILE__) + "/../lib/" -# require "diff-display" -require File.join(File.dirname(__FILE__), "/../lib/diff-display") - -if RUBY_VERSION > '1.9' - gem 'test-unit', ">=0" - class Test::Unit::TestCase - PASSTHROUGH_EXCEPTIONS = [NoMemoryError, SignalException, Interrupt, SystemExit] - end -end -require 'test/unit' -require "rubygems" -gem("mocha", ">=0") -require "mocha" -begin - require "redgreen" -rescue LoadError -end - -module DiffFixtureHelper - def load_diff(name) - File.read(File.dirname(__FILE__) + "/fixtures/#{name}.diff") - end -end diff --git a/vendor/plugins/diff-display/test/test_unified.rb b/vendor/plugins/diff-display/test/test_unified.rb deleted file mode 100644 index 1d888ca72..000000000 --- a/vendor/plugins/diff-display/test/test_unified.rb +++ /dev/null @@ -1,23 +0,0 @@ -# -*- encoding : utf-8 -*- -require File.dirname(__FILE__) + "/test_helper" - -class TestUnified < Test::Unit::TestCase - include DiffFixtureHelper - - def test_generates_its_data_structure_via_the_generator - generator_data = mock("Generator mock") - Diff::Display::Unified::Generator.expects(:run).returns(generator_data) - diff = Diff::Display::Unified.new(load_diff("simple")) - assert_equal generator_data, diff.data - end - - def test_renders_a_diff_via_a_callback_and_renders_it_to_a_stringlike_object - diff = Diff::Display::Unified.new(load_diff("simple")) - callback = mock() - callback.expects(:render).returns("foo") - output = "" - diff.render(callback, output) - assert_equal "foo", output - end - -end diff --git a/vendor/plugins/diff-display/website/index.html b/vendor/plugins/diff-display/website/index.html deleted file mode 100644 index fa213042b..000000000 --- a/vendor/plugins/diff-display/website/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff-display - - - -

This page has not yet been created for RubyGem diff-display

-

To the developer: To generate it, update website/index.txt and run the rake task website to generate this index.html file.

- - \ No newline at end of file diff --git a/vendor/plugins/diff-display/website/index.txt b/vendor/plugins/diff-display/website/index.txt deleted file mode 100644 index d15ec4297..000000000 --- a/vendor/plugins/diff-display/website/index.txt +++ /dev/null @@ -1,39 +0,0 @@ -h1. diff display - -h1. → 'diff-display' - - -h2. What - - -h2. Installing - -
sudo gem install diff-display
- -h2. The basics - - -h2. Demonstration of usage - - - -h2. Forum - -"http://groups.google.com/group/diff-display":http://groups.google.com/group/diff-display - -TODO - create Google Group - diff-display - -h2. How to submit patches - -Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above. - -The trunk repository is svn://rubyforge.org/var/svn/diff-display/trunk for anonymous access. - -h2. License - -This code is free to use under the terms of the MIT license. - -h2. Contact - -Comments are welcome. Send an email to "FIXME full name":mailto:FIXME email via the "forum":http://groups.google.com/group/diff-display - diff --git a/vendor/plugins/diff-display/website/javascripts/rounded_corners_lite.inc.js b/vendor/plugins/diff-display/website/javascripts/rounded_corners_lite.inc.js deleted file mode 100644 index afc3ea327..000000000 --- a/vendor/plugins/diff-display/website/javascripts/rounded_corners_lite.inc.js +++ /dev/null @@ -1,285 +0,0 @@ - - /**************************************************************** - * * - * curvyCorners * - * ------------ * - * * - * This script generates rounded corners for your divs. * - * * - * Version 1.2.9 * - * Copyright (c) 2006 Cameron Cooke * - * By: Cameron Cooke and Tim Hutchison. * - * * - * * - * Website: http://www.curvycorners.net * - * Email: info@totalinfinity.com * - * Forum: http://www.curvycorners.net/forum/ * - * * - * * - * This library is free software; you can redistribute * - * it and/or modify it under the terms of the GNU * - * Lesser General Public License as published by the * - * Free Software Foundation; either version 2.1 of the * - * License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will * - * be useful, but WITHOUT ANY WARRANTY; without even the * - * implied warranty of MERCHANTABILITY or FITNESS FOR A * - * PARTICULAR PURPOSE. See the GNU Lesser General Public * - * License for more details. * - * * - * You should have received a copy of the GNU Lesser * - * General Public License along with this library; * - * Inc., 59 Temple Place, Suite 330, Boston, * - * MA 02111-1307 USA * - * * - ****************************************************************/ - -var isIE = navigator.userAgent.toLowerCase().indexOf("msie") > -1; var isMoz = document.implementation && document.implementation.createDocument; var isSafari = ((navigator.userAgent.toLowerCase().indexOf('safari')!=-1)&&(navigator.userAgent.toLowerCase().indexOf('mac')!=-1))?true:false; function curvyCorners() -{ if(typeof(arguments[0]) != "object") throw newCurvyError("First parameter of curvyCorners() must be an object."); if(typeof(arguments[1]) != "object" && typeof(arguments[1]) != "string") throw newCurvyError("Second parameter of curvyCorners() must be an object or a class name."); if(typeof(arguments[1]) == "string") -{ var startIndex = 0; var boxCol = getElementsByClass(arguments[1]);} -else -{ var startIndex = 1; var boxCol = arguments;} -var curvyCornersCol = new Array(); if(arguments[0].validTags) -var validElements = arguments[0].validTags; else -var validElements = ["div"]; for(var i = startIndex, j = boxCol.length; i < j; i++) -{ var currentTag = boxCol[i].tagName.toLowerCase(); if(inArray(validElements, currentTag) !== false) -{ curvyCornersCol[curvyCornersCol.length] = new curvyObject(arguments[0], boxCol[i]);} -} -this.objects = curvyCornersCol; this.applyCornersToAll = function() -{ for(var x = 0, k = this.objects.length; x < k; x++) -{ this.objects[x].applyCorners();} -} -} -function curvyObject() -{ this.box = arguments[1]; this.settings = arguments[0]; this.topContainer = null; this.bottomContainer = null; this.masterCorners = new Array(); this.contentDIV = null; var boxHeight = get_style(this.box, "height", "height"); var boxWidth = get_style(this.box, "width", "width"); var borderWidth = get_style(this.box, "borderTopWidth", "border-top-width"); var borderColour = get_style(this.box, "borderTopColor", "border-top-color"); var boxColour = get_style(this.box, "backgroundColor", "background-color"); var backgroundImage = get_style(this.box, "backgroundImage", "background-image"); var boxPosition = get_style(this.box, "position", "position"); var boxPadding = get_style(this.box, "paddingTop", "padding-top"); this.boxHeight = parseInt(((boxHeight != "" && boxHeight != "auto" && boxHeight.indexOf("%") == -1)? boxHeight.substring(0, boxHeight.indexOf("px")) : this.box.scrollHeight)); this.boxWidth = parseInt(((boxWidth != "" && boxWidth != "auto" && boxWidth.indexOf("%") == -1)? boxWidth.substring(0, boxWidth.indexOf("px")) : this.box.scrollWidth)); this.borderWidth = parseInt(((borderWidth != "" && borderWidth.indexOf("px") !== -1)? borderWidth.slice(0, borderWidth.indexOf("px")) : 0)); this.boxColour = format_colour(boxColour); this.boxPadding = parseInt(((boxPadding != "" && boxPadding.indexOf("px") !== -1)? boxPadding.slice(0, boxPadding.indexOf("px")) : 0)); this.borderColour = format_colour(borderColour); this.borderString = this.borderWidth + "px" + " solid " + this.borderColour; this.backgroundImage = ((backgroundImage != "none")? backgroundImage : ""); this.boxContent = this.box.innerHTML; if(boxPosition != "absolute") this.box.style.position = "relative"; this.box.style.padding = "0px"; if(isIE && boxWidth == "auto" && boxHeight == "auto") this.box.style.width = "100%"; if(this.settings.autoPad == true && this.boxPadding > 0) -this.box.innerHTML = ""; this.applyCorners = function() -{ for(var t = 0; t < 2; t++) -{ switch(t) -{ case 0: -if(this.settings.tl || this.settings.tr) -{ var newMainContainer = document.createElement("DIV"); newMainContainer.style.width = "100%"; newMainContainer.style.fontSize = "1px"; newMainContainer.style.overflow = "hidden"; newMainContainer.style.position = "absolute"; newMainContainer.style.paddingLeft = this.borderWidth + "px"; newMainContainer.style.paddingRight = this.borderWidth + "px"; var topMaxRadius = Math.max(this.settings.tl ? this.settings.tl.radius : 0, this.settings.tr ? this.settings.tr.radius : 0); newMainContainer.style.height = topMaxRadius + "px"; newMainContainer.style.top = 0 - topMaxRadius + "px"; newMainContainer.style.left = 0 - this.borderWidth + "px"; this.topContainer = this.box.appendChild(newMainContainer);} -break; case 1: -if(this.settings.bl || this.settings.br) -{ var newMainContainer = document.createElement("DIV"); newMainContainer.style.width = "100%"; newMainContainer.style.fontSize = "1px"; newMainContainer.style.overflow = "hidden"; newMainContainer.style.position = "absolute"; newMainContainer.style.paddingLeft = this.borderWidth + "px"; newMainContainer.style.paddingRight = this.borderWidth + "px"; var botMaxRadius = Math.max(this.settings.bl ? this.settings.bl.radius : 0, this.settings.br ? this.settings.br.radius : 0); newMainContainer.style.height = botMaxRadius + "px"; newMainContainer.style.bottom = 0 - botMaxRadius + "px"; newMainContainer.style.left = 0 - this.borderWidth + "px"; this.bottomContainer = this.box.appendChild(newMainContainer);} -break;} -} -if(this.topContainer) this.box.style.borderTopWidth = "0px"; if(this.bottomContainer) this.box.style.borderBottomWidth = "0px"; var corners = ["tr", "tl", "br", "bl"]; for(var i in corners) -{ if(i > -1 < 4) -{ var cc = corners[i]; if(!this.settings[cc]) -{ if(((cc == "tr" || cc == "tl") && this.topContainer != null) || ((cc == "br" || cc == "bl") && this.bottomContainer != null)) -{ var newCorner = document.createElement("DIV"); newCorner.style.position = "relative"; newCorner.style.fontSize = "1px"; newCorner.style.overflow = "hidden"; if(this.backgroundImage == "") -newCorner.style.backgroundColor = this.boxColour; else -newCorner.style.backgroundImage = this.backgroundImage; switch(cc) -{ case "tl": -newCorner.style.height = topMaxRadius - this.borderWidth + "px"; newCorner.style.marginRight = this.settings.tr.radius - (this.borderWidth*2) + "px"; newCorner.style.borderLeft = this.borderString; newCorner.style.borderTop = this.borderString; newCorner.style.left = -this.borderWidth + "px"; break; case "tr": -newCorner.style.height = topMaxRadius - this.borderWidth + "px"; newCorner.style.marginLeft = this.settings.tl.radius - (this.borderWidth*2) + "px"; newCorner.style.borderRight = this.borderString; newCorner.style.borderTop = this.borderString; newCorner.style.backgroundPosition = "-" + (topMaxRadius + this.borderWidth) + "px 0px"; newCorner.style.left = this.borderWidth + "px"; break; case "bl": -newCorner.style.height = botMaxRadius - this.borderWidth + "px"; newCorner.style.marginRight = this.settings.br.radius - (this.borderWidth*2) + "px"; newCorner.style.borderLeft = this.borderString; newCorner.style.borderBottom = this.borderString; newCorner.style.left = -this.borderWidth + "px"; newCorner.style.backgroundPosition = "-" + (this.borderWidth) + "px -" + (this.boxHeight + (botMaxRadius + this.borderWidth)) + "px"; break; case "br": -newCorner.style.height = botMaxRadius - this.borderWidth + "px"; newCorner.style.marginLeft = this.settings.bl.radius - (this.borderWidth*2) + "px"; newCorner.style.borderRight = this.borderString; newCorner.style.borderBottom = this.borderString; newCorner.style.left = this.borderWidth + "px" -newCorner.style.backgroundPosition = "-" + (botMaxRadius + this.borderWidth) + "px -" + (this.boxHeight + (botMaxRadius + this.borderWidth)) + "px"; break;} -} -} -else -{ if(this.masterCorners[this.settings[cc].radius]) -{ var newCorner = this.masterCorners[this.settings[cc].radius].cloneNode(true);} -else -{ var newCorner = document.createElement("DIV"); newCorner.style.height = this.settings[cc].radius + "px"; newCorner.style.width = this.settings[cc].radius + "px"; newCorner.style.position = "absolute"; newCorner.style.fontSize = "1px"; newCorner.style.overflow = "hidden"; var borderRadius = parseInt(this.settings[cc].radius - this.borderWidth); for(var intx = 0, j = this.settings[cc].radius; intx < j; intx++) -{ if((intx +1) >= borderRadius) -var y1 = -1; else -var y1 = (Math.floor(Math.sqrt(Math.pow(borderRadius, 2) - Math.pow((intx+1), 2))) - 1); if(borderRadius != j) -{ if((intx) >= borderRadius) -var y2 = -1; else -var y2 = Math.ceil(Math.sqrt(Math.pow(borderRadius,2) - Math.pow(intx, 2))); if((intx+1) >= j) -var y3 = -1; else -var y3 = (Math.floor(Math.sqrt(Math.pow(j ,2) - Math.pow((intx+1), 2))) - 1);} -if((intx) >= j) -var y4 = -1; else -var y4 = Math.ceil(Math.sqrt(Math.pow(j ,2) - Math.pow(intx, 2))); if(y1 > -1) this.drawPixel(intx, 0, this.boxColour, 100, (y1+1), newCorner, -1, this.settings[cc].radius); if(borderRadius != j) -{ for(var inty = (y1 + 1); inty < y2; inty++) -{ if(this.settings.antiAlias) -{ if(this.backgroundImage != "") -{ var borderFract = (pixelFraction(intx, inty, borderRadius) * 100); if(borderFract < 30) -{ this.drawPixel(intx, inty, this.borderColour, 100, 1, newCorner, 0, this.settings[cc].radius);} -else -{ this.drawPixel(intx, inty, this.borderColour, 100, 1, newCorner, -1, this.settings[cc].radius);} -} -else -{ var pixelcolour = BlendColour(this.boxColour, this.borderColour, pixelFraction(intx, inty, borderRadius)); this.drawPixel(intx, inty, pixelcolour, 100, 1, newCorner, 0, this.settings[cc].radius, cc);} -} -} -if(this.settings.antiAlias) -{ if(y3 >= y2) -{ if (y2 == -1) y2 = 0; this.drawPixel(intx, y2, this.borderColour, 100, (y3 - y2 + 1), newCorner, 0, 0);} -} -else -{ if(y3 >= y1) -{ this.drawPixel(intx, (y1 + 1), this.borderColour, 100, (y3 - y1), newCorner, 0, 0);} -} -var outsideColour = this.borderColour;} -else -{ var outsideColour = this.boxColour; var y3 = y1;} -if(this.settings.antiAlias) -{ for(var inty = (y3 + 1); inty < y4; inty++) -{ this.drawPixel(intx, inty, outsideColour, (pixelFraction(intx, inty , j) * 100), 1, newCorner, ((this.borderWidth > 0)? 0 : -1), this.settings[cc].radius);} -} -} -this.masterCorners[this.settings[cc].radius] = newCorner.cloneNode(true);} -if(cc != "br") -{ for(var t = 0, k = newCorner.childNodes.length; t < k; t++) -{ var pixelBar = newCorner.childNodes[t]; var pixelBarTop = parseInt(pixelBar.style.top.substring(0, pixelBar.style.top.indexOf("px"))); var pixelBarLeft = parseInt(pixelBar.style.left.substring(0, pixelBar.style.left.indexOf("px"))); var pixelBarHeight = parseInt(pixelBar.style.height.substring(0, pixelBar.style.height.indexOf("px"))); if(cc == "tl" || cc == "bl"){ pixelBar.style.left = this.settings[cc].radius -pixelBarLeft -1 + "px";} -if(cc == "tr" || cc == "tl"){ pixelBar.style.top = this.settings[cc].radius -pixelBarHeight -pixelBarTop + "px";} -switch(cc) -{ case "tr": -pixelBar.style.backgroundPosition = "-" + Math.abs((this.boxWidth - this.settings[cc].radius + this.borderWidth) + pixelBarLeft) + "px -" + Math.abs(this.settings[cc].radius -pixelBarHeight -pixelBarTop - this.borderWidth) + "px"; break; case "tl": -pixelBar.style.backgroundPosition = "-" + Math.abs((this.settings[cc].radius -pixelBarLeft -1) - this.borderWidth) + "px -" + Math.abs(this.settings[cc].radius -pixelBarHeight -pixelBarTop - this.borderWidth) + "px"; break; case "bl": -pixelBar.style.backgroundPosition = "-" + Math.abs((this.settings[cc].radius -pixelBarLeft -1) - this.borderWidth) + "px -" + Math.abs((this.boxHeight + this.settings[cc].radius + pixelBarTop) -this.borderWidth) + "px"; break;} -} -} -} -if(newCorner) -{ switch(cc) -{ case "tl": -if(newCorner.style.position == "absolute") newCorner.style.top = "0px"; if(newCorner.style.position == "absolute") newCorner.style.left = "0px"; if(this.topContainer) this.topContainer.appendChild(newCorner); break; case "tr": -if(newCorner.style.position == "absolute") newCorner.style.top = "0px"; if(newCorner.style.position == "absolute") newCorner.style.right = "0px"; if(this.topContainer) this.topContainer.appendChild(newCorner); break; case "bl": -if(newCorner.style.position == "absolute") newCorner.style.bottom = "0px"; if(newCorner.style.position == "absolute") newCorner.style.left = "0px"; if(this.bottomContainer) this.bottomContainer.appendChild(newCorner); break; case "br": -if(newCorner.style.position == "absolute") newCorner.style.bottom = "0px"; if(newCorner.style.position == "absolute") newCorner.style.right = "0px"; if(this.bottomContainer) this.bottomContainer.appendChild(newCorner); break;} -} -} -} -var radiusDiff = new Array(); radiusDiff["t"] = Math.abs(this.settings.tl.radius - this.settings.tr.radius) -radiusDiff["b"] = Math.abs(this.settings.bl.radius - this.settings.br.radius); for(z in radiusDiff) -{ if(z == "t" || z == "b") -{ if(radiusDiff[z]) -{ var smallerCornerType = ((this.settings[z + "l"].radius < this.settings[z + "r"].radius)? z +"l" : z +"r"); var newFiller = document.createElement("DIV"); newFiller.style.height = radiusDiff[z] + "px"; newFiller.style.width = this.settings[smallerCornerType].radius+ "px" -newFiller.style.position = "absolute"; newFiller.style.fontSize = "1px"; newFiller.style.overflow = "hidden"; newFiller.style.backgroundColor = this.boxColour; switch(smallerCornerType) -{ case "tl": -newFiller.style.bottom = "0px"; newFiller.style.left = "0px"; newFiller.style.borderLeft = this.borderString; this.topContainer.appendChild(newFiller); break; case "tr": -newFiller.style.bottom = "0px"; newFiller.style.right = "0px"; newFiller.style.borderRight = this.borderString; this.topContainer.appendChild(newFiller); break; case "bl": -newFiller.style.top = "0px"; newFiller.style.left = "0px"; newFiller.style.borderLeft = this.borderString; this.bottomContainer.appendChild(newFiller); break; case "br": -newFiller.style.top = "0px"; newFiller.style.right = "0px"; newFiller.style.borderRight = this.borderString; this.bottomContainer.appendChild(newFiller); break;} -} -var newFillerBar = document.createElement("DIV"); newFillerBar.style.position = "relative"; newFillerBar.style.fontSize = "1px"; newFillerBar.style.overflow = "hidden"; newFillerBar.style.backgroundColor = this.boxColour; newFillerBar.style.backgroundImage = this.backgroundImage; switch(z) -{ case "t": -if(this.topContainer) -{ if(this.settings.tl.radius && this.settings.tr.radius) -{ newFillerBar.style.height = topMaxRadius - this.borderWidth + "px"; newFillerBar.style.marginLeft = this.settings.tl.radius - this.borderWidth + "px"; newFillerBar.style.marginRight = this.settings.tr.radius - this.borderWidth + "px"; newFillerBar.style.borderTop = this.borderString; if(this.backgroundImage != "") -newFillerBar.style.backgroundPosition = "-" + (topMaxRadius + this.borderWidth) + "px 0px"; this.topContainer.appendChild(newFillerBar);} -this.box.style.backgroundPosition = "0px -" + (topMaxRadius - this.borderWidth) + "px";} -break; case "b": -if(this.bottomContainer) -{ if(this.settings.bl.radius && this.settings.br.radius) -{ newFillerBar.style.height = botMaxRadius - this.borderWidth + "px"; newFillerBar.style.marginLeft = this.settings.bl.radius - this.borderWidth + "px"; newFillerBar.style.marginRight = this.settings.br.radius - this.borderWidth + "px"; newFillerBar.style.borderBottom = this.borderString; if(this.backgroundImage != "") -newFillerBar.style.backgroundPosition = "-" + (botMaxRadius + this.borderWidth) + "px -" + (this.boxHeight + (topMaxRadius + this.borderWidth)) + "px"; this.bottomContainer.appendChild(newFillerBar);} -} -break;} -} -} -if(this.settings.autoPad == true && this.boxPadding > 0) -{ var contentContainer = document.createElement("DIV"); contentContainer.style.position = "relative"; contentContainer.innerHTML = this.boxContent; contentContainer.className = "autoPadDiv"; var topPadding = Math.abs(topMaxRadius - this.boxPadding); var botPadding = Math.abs(botMaxRadius - this.boxPadding); if(topMaxRadius < this.boxPadding) -contentContainer.style.paddingTop = topPadding + "px"; if(botMaxRadius < this.boxPadding) -contentContainer.style.paddingBottom = botMaxRadius + "px"; contentContainer.style.paddingLeft = this.boxPadding + "px"; contentContainer.style.paddingRight = this.boxPadding + "px"; this.contentDIV = this.box.appendChild(contentContainer);} -} -this.drawPixel = function(intx, inty, colour, transAmount, height, newCorner, image, cornerRadius) -{ var pixel = document.createElement("DIV"); pixel.style.height = height + "px"; pixel.style.width = "1px"; pixel.style.position = "absolute"; pixel.style.fontSize = "1px"; pixel.style.overflow = "hidden"; var topMaxRadius = Math.max(this.settings["tr"].radius, this.settings["tl"].radius); if(image == -1 && this.backgroundImage != "") -{ pixel.style.backgroundImage = this.backgroundImage; pixel.style.backgroundPosition = "-" + (this.boxWidth - (cornerRadius - intx) + this.borderWidth) + "px -" + ((this.boxHeight + topMaxRadius + inty) -this.borderWidth) + "px";} -else -{ pixel.style.backgroundColor = colour;} -if (transAmount != 100) -setOpacity(pixel, transAmount); pixel.style.top = inty + "px"; pixel.style.left = intx + "px"; newCorner.appendChild(pixel);} -} -function insertAfter(parent, node, referenceNode) -{ parent.insertBefore(node, referenceNode.nextSibling);} -function BlendColour(Col1, Col2, Col1Fraction) -{ var red1 = parseInt(Col1.substr(1,2),16); var green1 = parseInt(Col1.substr(3,2),16); var blue1 = parseInt(Col1.substr(5,2),16); var red2 = parseInt(Col2.substr(1,2),16); var green2 = parseInt(Col2.substr(3,2),16); var blue2 = parseInt(Col2.substr(5,2),16); if(Col1Fraction > 1 || Col1Fraction < 0) Col1Fraction = 1; var endRed = Math.round((red1 * Col1Fraction) + (red2 * (1 - Col1Fraction))); if(endRed > 255) endRed = 255; if(endRed < 0) endRed = 0; var endGreen = Math.round((green1 * Col1Fraction) + (green2 * (1 - Col1Fraction))); if(endGreen > 255) endGreen = 255; if(endGreen < 0) endGreen = 0; var endBlue = Math.round((blue1 * Col1Fraction) + (blue2 * (1 - Col1Fraction))); if(endBlue > 255) endBlue = 255; if(endBlue < 0) endBlue = 0; return "#" + IntToHex(endRed)+ IntToHex(endGreen)+ IntToHex(endBlue);} -function IntToHex(strNum) -{ base = strNum / 16; rem = strNum % 16; base = base - (rem / 16); baseS = MakeHex(base); remS = MakeHex(rem); return baseS + '' + remS;} -function MakeHex(x) -{ if((x >= 0) && (x <= 9)) -{ return x;} -else -{ switch(x) -{ case 10: return "A"; case 11: return "B"; case 12: return "C"; case 13: return "D"; case 14: return "E"; case 15: return "F";} -} -} -function pixelFraction(x, y, r) -{ var pixelfraction = 0; var xvalues = new Array(1); var yvalues = new Array(1); var point = 0; var whatsides = ""; var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(x,2))); if ((intersect >= y) && (intersect < (y+1))) -{ whatsides = "Left"; xvalues[point] = 0; yvalues[point] = intersect - y; point = point + 1;} -var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(y+1,2))); if ((intersect >= x) && (intersect < (x+1))) -{ whatsides = whatsides + "Top"; xvalues[point] = intersect - x; yvalues[point] = 1; point = point + 1;} -var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(x+1,2))); if ((intersect >= y) && (intersect < (y+1))) -{ whatsides = whatsides + "Right"; xvalues[point] = 1; yvalues[point] = intersect - y; point = point + 1;} -var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(y,2))); if ((intersect >= x) && (intersect < (x+1))) -{ whatsides = whatsides + "Bottom"; xvalues[point] = intersect - x; yvalues[point] = 0;} -switch (whatsides) -{ case "LeftRight": -pixelfraction = Math.min(yvalues[0],yvalues[1]) + ((Math.max(yvalues[0],yvalues[1]) - Math.min(yvalues[0],yvalues[1]))/2); break; case "TopRight": -pixelfraction = 1-(((1-xvalues[0])*(1-yvalues[1]))/2); break; case "TopBottom": -pixelfraction = Math.min(xvalues[0],xvalues[1]) + ((Math.max(xvalues[0],xvalues[1]) - Math.min(xvalues[0],xvalues[1]))/2); break; case "LeftBottom": -pixelfraction = (yvalues[0]*xvalues[1])/2; break; default: -pixelfraction = 1;} -return pixelfraction;} -function rgb2Hex(rgbColour) -{ try{ var rgbArray = rgb2Array(rgbColour); var red = parseInt(rgbArray[0]); var green = parseInt(rgbArray[1]); var blue = parseInt(rgbArray[2]); var hexColour = "#" + IntToHex(red) + IntToHex(green) + IntToHex(blue);} -catch(e){ alert("There was an error converting the RGB value to Hexadecimal in function rgb2Hex");} -return hexColour;} -function rgb2Array(rgbColour) -{ var rgbValues = rgbColour.substring(4, rgbColour.indexOf(")")); var rgbArray = rgbValues.split(", "); return rgbArray;} -function setOpacity(obj, opacity) -{ opacity = (opacity == 100)?99.999:opacity; if(isSafari && obj.tagName != "IFRAME") -{ var rgbArray = rgb2Array(obj.style.backgroundColor); var red = parseInt(rgbArray[0]); var green = parseInt(rgbArray[1]); var blue = parseInt(rgbArray[2]); obj.style.backgroundColor = "rgba(" + red + ", " + green + ", " + blue + ", " + opacity/100 + ")";} -else if(typeof(obj.style.opacity) != "undefined") -{ obj.style.opacity = opacity/100;} -else if(typeof(obj.style.MozOpacity) != "undefined") -{ obj.style.MozOpacity = opacity/100;} -else if(typeof(obj.style.filter) != "undefined") -{ obj.style.filter = "alpha(opacity:" + opacity + ")";} -else if(typeof(obj.style.KHTMLOpacity) != "undefined") -{ obj.style.KHTMLOpacity = opacity/100;} -} -function inArray(array, value) -{ for(var i = 0; i < array.length; i++){ if (array[i] === value) return i;} -return false;} -function inArrayKey(array, value) -{ for(key in array){ if(key === value) return true;} -return false;} -function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true;} -else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); return r;} -else { elm['on' + evType] = fn;} -} -function removeEvent(obj, evType, fn, useCapture){ if (obj.removeEventListener){ obj.removeEventListener(evType, fn, useCapture); return true;} else if (obj.detachEvent){ var r = obj.detachEvent("on"+evType, fn); return r;} else { alert("Handler could not be removed");} -} -function format_colour(colour) -{ var returnColour = "#ffffff"; if(colour != "" && colour != "transparent") -{ if(colour.substr(0, 3) == "rgb") -{ returnColour = rgb2Hex(colour);} -else if(colour.length == 4) -{ returnColour = "#" + colour.substring(1, 2) + colour.substring(1, 2) + colour.substring(2, 3) + colour.substring(2, 3) + colour.substring(3, 4) + colour.substring(3, 4);} -else -{ returnColour = colour;} -} -return returnColour;} -function get_style(obj, property, propertyNS) -{ try -{ if(obj.currentStyle) -{ var returnVal = eval("obj.currentStyle." + property);} -else -{ if(isSafari && obj.style.display == "none") -{ obj.style.display = ""; var wasHidden = true;} -var returnVal = document.defaultView.getComputedStyle(obj, '').getPropertyValue(propertyNS); if(isSafari && wasHidden) -{ obj.style.display = "none";} -} -} -catch(e) -{ } -return returnVal;} -function getElementsByClass(searchClass, node, tag) -{ var classElements = new Array(); if(node == null) -node = document; if(tag == null) -tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)"); for (i = 0, j = 0; i < elsLen; i++) -{ if(pattern.test(els[i].className)) -{ classElements[j] = els[i]; j++;} -} -return classElements;} -function newCurvyError(errorMessage) -{ return new Error("curvyCorners Error:\n" + errorMessage) -} diff --git a/vendor/plugins/diff-display/website/stylesheets/screen.css b/vendor/plugins/diff-display/website/stylesheets/screen.css deleted file mode 100644 index 2c84cd00c..000000000 --- a/vendor/plugins/diff-display/website/stylesheets/screen.css +++ /dev/null @@ -1,138 +0,0 @@ -body { - background-color: #E1D1F1; - font-family: "Georgia", sans-serif; - font-size: 16px; - line-height: 1.6em; - padding: 1.6em 0 0 0; - color: #333; -} -h1, h2, h3, h4, h5, h6 { - color: #444; -} -h1 { - font-family: sans-serif; - font-weight: normal; - font-size: 4em; - line-height: 0.8em; - letter-spacing: -0.1ex; - margin: 5px; -} -li { - padding: 0; - margin: 0; - list-style-type: square; -} -a { - color: #5E5AFF; - background-color: #DAC; - font-weight: normal; - text-decoration: underline; -} -blockquote { - font-size: 90%; - font-style: italic; - border-left: 1px solid #111; - padding-left: 1em; -} -.caps { - font-size: 80%; -} - -#main { - width: 45em; - padding: 0; - margin: 0 auto; -} -.coda { - text-align: right; - color: #77f; - font-size: smaller; -} - -table { - font-size: 90%; - line-height: 1.4em; - color: #ff8; - background-color: #111; - padding: 2px 10px 2px 10px; - border-style: dashed; -} - -th { - color: #fff; -} - -td { - padding: 2px 10px 2px 10px; -} - -.success { - color: #0CC52B; -} - -.failed { - color: #E90A1B; -} - -.unknown { - color: #995000; -} -pre, code { - font-family: monospace; - font-size: 90%; - line-height: 1.4em; - color: #ff8; - background-color: #111; - padding: 2px 10px 2px 10px; -} -.comment { color: #aaa; font-style: italic; } -.keyword { color: #eff; font-weight: bold; } -.punct { color: #eee; font-weight: bold; } -.symbol { color: #0bb; } -.string { color: #6b4; } -.ident { color: #ff8; } -.constant { color: #66f; } -.regex { color: #ec6; } -.number { color: #F99; } -.expr { color: #227; } - -#version { - float: right; - text-align: right; - font-family: sans-serif; - font-weight: normal; - background-color: #B3ABFF; - color: #141331; - padding: 15px 20px 10px 20px; - margin: 0 auto; - margin-top: 15px; - border: 3px solid #141331; -} - -#version .numbers { - display: block; - font-size: 4em; - line-height: 0.8em; - letter-spacing: -0.1ex; - margin-bottom: 15px; -} - -#version p { - text-decoration: none; - color: #141331; - background-color: #B3ABFF; - margin: 0; - padding: 0; -} - -#version a { - text-decoration: none; - color: #141331; - background-color: #B3ABFF; -} - -.clickable { - cursor: pointer; - cursor: hand; -} - diff --git a/vendor/plugins/diff-display/website/template.rhtml b/vendor/plugins/diff-display/website/template.rhtml deleted file mode 100644 index e8517350d..000000000 --- a/vendor/plugins/diff-display/website/template.rhtml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - <%= title %> - - - - - - -
- -

<%= title %>

-
-

Get Version

- <%= version %> -
- <%= body %> -

- FIXME full name, <%= modified.pretty %>
- Theme extended from Paul Battley -

-
- - - - - diff --git a/vendor/plugins/related_models/MIT-LICENSE b/vendor/plugins/related_models/MIT-LICENSE deleted file mode 100644 index bfe93818e..000000000 --- a/vendor/plugins/related_models/MIT-LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2011 [name of plugin creator] - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/plugins/related_models/README b/vendor/plugins/related_models/README deleted file mode 100644 index 66273bc62..000000000 --- a/vendor/plugins/related_models/README +++ /dev/null @@ -1,13 +0,0 @@ -RelatedModels -============= - -Introduction goes here. - - -Example -======= - -Example goes here. - - -Copyright (c) 2011 [name of plugin creator], released under the MIT license diff --git a/vendor/plugins/related_models/Rakefile b/vendor/plugins/related_models/Rakefile deleted file mode 100644 index 7e2cd366e..000000000 --- a/vendor/plugins/related_models/Rakefile +++ /dev/null @@ -1,23 +0,0 @@ -require 'rake' -require 'rake/testtask' -require 'rdoc/task' - -desc 'Default: run unit tests.' -task :default => :test - -desc 'Test the related_models plugin.' -Rake::TestTask.new(:test) do |t| - t.libs << 'lib' - t.libs << 'test' - t.pattern = 'test/**/*_test.rb' - t.verbose = true -end - -desc 'Generate documentation for the related_models plugin.' -RDoc::Task.new(:rdoc) do |rdoc| - rdoc.rdoc_dir = 'rdoc' - rdoc.title = 'RelatedModels' - rdoc.options << '--line-numbers' << '--inline-source' - rdoc.rdoc_files.include('README') - rdoc.rdoc_files.include('lib/**/*.rb') -end diff --git a/vendor/plugins/related_models/init.rb b/vendor/plugins/related_models/init.rb deleted file mode 100644 index d300237db..000000000 --- a/vendor/plugins/related_models/init.rb +++ /dev/null @@ -1,3 +0,0 @@ -# -*- encoding : utf-8 -*- -# Include hook code here -require 'related_models' diff --git a/vendor/plugins/related_models/install.rb b/vendor/plugins/related_models/install.rb deleted file mode 100644 index c447292d8..000000000 --- a/vendor/plugins/related_models/install.rb +++ /dev/null @@ -1,2 +0,0 @@ -# -*- encoding : utf-8 -*- -# Install hook code here diff --git a/vendor/plugins/related_models/lib/related_models.rb b/vendor/plugins/related_models/lib/related_models.rb deleted file mode 100644 index 4699032a7..000000000 --- a/vendor/plugins/related_models/lib/related_models.rb +++ /dev/null @@ -1,15 +0,0 @@ -# -*- encoding : utf-8 -*- -# RelatedModels -module RelatedModels - autoload :ClassMethods, 'related_models/class_methods' - autoload :BelongsToHelpers, 'related_models/belongs_to_helpers' - autoload :PolymorphicHelpers, 'related_models/polymorphic_helpers' - autoload :UrlHelpers, 'related_models/url_helpers' -end - -class ActionController::Base - #include ClassMethods - def self.is_related_controller! - RelatedModels::Base.is_child!(self) - end -end diff --git a/vendor/plugins/related_models/test/related_models_test.rb b/vendor/plugins/related_models/test/related_models_test.rb deleted file mode 100644 index 12184f568..000000000 --- a/vendor/plugins/related_models/test/related_models_test.rb +++ /dev/null @@ -1,9 +0,0 @@ -# -*- encoding : utf-8 -*- -require 'test_helper' - -class RelatedModelsTest < ActiveSupport::TestCase - # Replace this with your real tests. - test "the truth" do - assert true - end -end diff --git a/vendor/plugins/related_models/test/test_helper.rb b/vendor/plugins/related_models/test/test_helper.rb deleted file mode 100644 index 934cac47a..000000000 --- a/vendor/plugins/related_models/test/test_helper.rb +++ /dev/null @@ -1,4 +0,0 @@ -# -*- encoding : utf-8 -*- -require 'rubygems' -require 'test/unit' -require 'active_support' diff --git a/vendor/plugins/related_models/uninstall.rb b/vendor/plugins/related_models/uninstall.rb deleted file mode 100644 index f6e78fdab..000000000 --- a/vendor/plugins/related_models/uninstall.rb +++ /dev/null @@ -1,2 +0,0 @@ -# -*- encoding : utf-8 -*- -# Uninstall hook code here