diff --git a/Gemfile b/Gemfile index 6d9fa06f..576aa790 100644 --- a/Gemfile +++ b/Gemfile @@ -35,6 +35,7 @@ gem 'simple-navigation-bootstrap' gem 'meta_search' gem 'acts_as_versioned', git: 'git://github.com/technoweenie/acts_as_versioned.git' # Use this instead of rubygem gem 'acts_as_tree' +gem 'acts_as_configurable', git: 'git://github.com/bwalding/acts_as_configurable.git' group :production do gem 'exception_notification', :require => 'exception_notifier' diff --git a/Gemfile.lock b/Gemfile.lock index 9f510c64..99b09a60 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,6 +4,13 @@ GIT specs: localize_input (0.1.0) +GIT + remote: git://github.com/bwalding/acts_as_configurable.git + revision: cdf6f6f979019275b523d10684b748f08e2dd8e8 + specs: + acts_as_configurable (0.0.1) + rake + GIT remote: git://github.com/technoweenie/acts_as_versioned.git revision: 63b1fc8529d028fae632fe80ec0cb25df56cd76b @@ -189,6 +196,7 @@ PLATFORMS ruby DEPENDENCIES + acts_as_configurable! acts_as_tree acts_as_versioned! client_side_validations diff --git a/app/models/page.rb b/app/models/page.rb index 8f79c2de..e8b2f3bb 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -1,6 +1,6 @@ class Page < ActiveRecord::Base include ActsAsTree - + belongs_to :user, :foreign_key => 'updated_by' acts_as_versioned version_column: :lock_version, limit: 20 diff --git a/vendor/plugins/acts_as_configurable/MIT-LICENSE b/vendor/plugins/acts_as_configurable/MIT-LICENSE deleted file mode 100644 index b445594d..00000000 --- a/vendor/plugins/acts_as_configurable/MIT-LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2006 Jacob Radford - -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/acts_as_configurable/README b/vendor/plugins/acts_as_configurable/README deleted file mode 100644 index cfe12ff8..00000000 --- a/vendor/plugins/acts_as_configurable/README +++ /dev/null @@ -1,94 +0,0 @@ -= acts_as_configurable - -This mixin adds a number of methods to an ActiveRecord module which -enable saving any settings you want (see examples below). -ActiveRecord is required. - -== Install - - ./script/plugin install http://svn.nkryptic.com/plugins/acts_as_configurable - -== Usage - -This mixin will provide your model with a large variety of configuration options. - class User < ActiveRecord::Base - acts_as_configurable - end - -Example: - - user = User.create(:name => 'joe') - user.settings # => [] - - user.settings[:friends] = ['jane','sam','karl'] - user.settings[:friends] # => ['jane','sam','karl'] - user.settings[:age] = 25 - user.settings[:age] # => 25 - -OR - - user = User.create(:name => 'joe') - post = Post.find(:first) - - user.settings_for(post) # => [] - user.settings_for(post)[:show_headlines] = true - - user.settings_for(post)[:show_headlines] # => true - user.settings_for(post).size # => 1 - - # but the user's untargeted settings are still empty - user.settings # => [] - - update: now there is a method each_with_key - user.settings.each_with_key {|k,s| do something} # k is the key (a string) and s is the setting - and - user.settings_for(post).each_with_key {|k,s| do something} # k is the key (a string) and s is the setting - - -This mixin will provide your model with the ability to see where it is used as a target of acts_as_configurable - class Post < ActiveRecord::Base - acts_as_configurable_target - end - -Example: - - user = User.create(:name => 'joe') - post = Post.find(:first) - - user.settings_for(post) # => [] - user.settings_for(post)[:num_lines] = 15 - - user.settings_for(post)[:num_lines] # => 15 - post.targeted_settings[:num_lines].size # => 1 - post.targeted_settings[:num_lines].first # => 15 - post.targeted_settings[:num_lines].first.owner # => user - -OR - - user = User.create(:name => 'joe') - post = Post.find(:first) - - user.settings_for(post) # => [] - user.settings_for(post)[:num_lines] = 15 - - user.settings_for(post)[:num_lines] # => 15 - user.settings_for(post)[:hide_comments] # => true - post.targeted_settings_for(user)[:num_lines] # => 15 - post.targeted_settings_for(user) # => [15,true] - post.targeted_settings_for(user).collect {|x| x.name} # => ['num_lines','hide_comments'] - -== Subversion - - http://svn.nkryptic.com/plugins/acts_as_configurable - -== Credits - -I was insprired by the following people/works - -* Rick Olson - acts_as_versioned plugin (plugin design) -* Bill Katz - authorization plugin (roles applied to any model) -* Tobias Luetke - Typo (configuration settings manager with ruby-typing of value) -* Rails core - AssociationCollection and AssociationProxy classes - - - diff --git a/vendor/plugins/acts_as_configurable/Rakefile b/vendor/plugins/acts_as_configurable/Rakefile deleted file mode 100644 index 3281c528..00000000 --- a/vendor/plugins/acts_as_configurable/Rakefile +++ /dev/null @@ -1,22 +0,0 @@ -require 'rake' -require 'rake/testtask' -require 'rake/rdoctask' - -desc 'Default: run unit tests.' -task :default => :test - -desc 'Test the acts_as_configurable plugin.' -Rake::TestTask.new(:test) do |t| - t.libs << 'lib' - t.pattern = 'test/**/*_test.rb' - t.verbose = true -end - -desc 'Generate documentation for the acts_as_configurable plugin.' -Rake::RDocTask.new(:rdoc) do |rdoc| - rdoc.rdoc_dir = 'rdoc' - rdoc.title = 'ActsAsConfigurable' - rdoc.options << '--line-numbers' << '--inline-source' - rdoc.rdoc_files.include('README') - rdoc.rdoc_files.include('lib/**/*.rb') -end diff --git a/vendor/plugins/acts_as_configurable/init.rb b/vendor/plugins/acts_as_configurable/init.rb deleted file mode 100644 index 43930e6a..00000000 --- a/vendor/plugins/acts_as_configurable/init.rb +++ /dev/null @@ -1,5 +0,0 @@ - -require 'acts_as_configurable' -ActiveRecord::Base.send(:include, Nkryptic::ActsAsConfigurable) - -require 'configurable_setting' \ No newline at end of file diff --git a/vendor/plugins/acts_as_configurable/install.rb b/vendor/plugins/acts_as_configurable/install.rb deleted file mode 100644 index bd23f1bb..00000000 --- a/vendor/plugins/acts_as_configurable/install.rb +++ /dev/null @@ -1 +0,0 @@ -puts IO.read(File.join(File.dirname(__FILE__), 'README')) diff --git a/vendor/plugins/acts_as_configurable/lib/acts_as_configurable.rb b/vendor/plugins/acts_as_configurable/lib/acts_as_configurable.rb deleted file mode 100644 index 5c2e4264..00000000 --- a/vendor/plugins/acts_as_configurable/lib/acts_as_configurable.rb +++ /dev/null @@ -1,497 +0,0 @@ - -module Nkryptic # :nodoc: - module ActsAsConfigurable #:nodoc: - def self.included(base) # :nodoc: - base.extend ClassMethods - end - - # These methods will be available to any ActiveRecord::Base descended model. - module ClassMethods - - # == Acts As Configurable - # requirements:: - # model descended from ActiveRecord::Base - # configurable_settings table has been created - # - # class User < ActiveRecord::Base - # acts_as_configurable - # end - # - # This mixin will provide your model with a large variety of configuration options. - # - # see:: settings and settins_for - # - def acts_as_configurable(options = {}) - - # don't allow multiple calls - return if self.included_modules.include?(Nkryptic::ActsAsConfigurable::InstanceMethods) - send :include, Nkryptic::ActsAsConfigurable::InstanceMethods - - cattr_accessor :defaults - self.defaults = (options.class == Hash ? options : {}).with_indifferent_access - - has_many :_configurable_settings, - :as => :configurable, - :class_name => 'ConfigurableSetting', - :dependent => :destroy - - end - - # == Acts As Configurable Target - # requirements:: - # model descended from ActiveRecord::Base - # configurable_settings table has been created - # - # class User < ActiveRecord::Base - # acts_as_configurable_target - # end - # - # This mixin will provide your model with the ability to see where it is used as a target of acts_as_configurable - # - # see:: targetable_settings and targetable_settings_for - # - def acts_as_configurable_target(options = {}) - return if self.included_modules.include?(Nkryptic::ActsAsConfigurable::TargetInstanceMethods) - send :include, Nkryptic::ActsAsConfigurable::TargetInstanceMethods - - has_many :_targetable_settings, - :as => :targetable, - :class_name => 'ConfigurableSetting', - :dependent => :destroy - - end - end - - module InstanceMethods - - def self.included(base) # :nodoc: - base.extend Nkryptic::ActsAsConfigurable::InstanceMethods::ClassMethods - end - - # * specify any setting you want for an instance of a model - # - # Example: - # - # user = User.create(:name => 'joe') - # user.settings # => [] - # - # user.settings[:friends] = ['jane','sam','karl'] - # user.settings[:friends] # => ['jane','sam','karl'] - # user.settings[:age] = 25 - # user.settings[:age] # => 25 - # - def settings - @general_settings ||= ConfigurableSettings.new(self) - end - - # * specify any setting you want for an instance of a model targeting another object - # - # Example: - # - # user = User.create(:name => 'joe') - # post = Post.find(:first) - # - # user.settings_for(post) # => [] - # user.settings_for(post)[:show_headlines] = true - # - # user.settings_for(post)[:show_headlines] # => true - # user.settings_for(post).size # => 1 - # - # # but the user's untargeted settings are still empty - # user.settings # => [] - # - def settings_for(obj) - if obj.is_a? Class - # wire the settings object to only deal with settings targeting this class obj - variable_name = "settings_for_class_#{obj.name}" - else - # wire the settings object to only deal with settings targeting this instance obj - variable_name = "settings_for_#{obj.class}_#{obj.id}" - end - settings_obj = instance_variable_get("@#{variable_name}") - settings_obj = instance_variable_set("@#{variable_name}",ConfigurableSettings.new(self, obj)) if settings_obj.nil? - settings_obj - end - - # These are class methods that are mixed in with the model class. - module ClassMethods # :nodoc: - - end - end - - module TargetInstanceMethods - - def self.included(base) # :nodoc: - base.extend Nkryptic::ActsAsConfigurable::TargetInstanceMethods::ClassMethods - end - - # * specify any setting you want for an instance of a model targeting another object - # - # Example: - # - # user = User.create(:name => 'joe') - # post = Post.find(:first) - # - # user.settings_for(post) # => [] - # user.settings_for(post)[:num_lines] = 15 - # - # user.settings_for(post)[:num_lines] # => 15 - # post.targeted_settings[:num_lines].size # => 1 - # post.targeted_settings[:num_lines].first # => 15 - # post.targeted_settings[:num_lines].first.owner # => user - # - def targeted_settings - @targeted_settings ||= TargetedSettings.new(self) - end - - # * specify any setting you want for an instance of a model targeting another object - # - # Example: - # - # user = User.create(:name => 'joe') - # post = Post.find(:first) - # - # user.settings_for(post) # => [] - # user.settings_for(post)[:num_lines] = 15 - # - # user.settings_for(post)[:num_lines] # => 15 - # user.settings_for(post)[:hide_comments] # => true - # post.targeted_settings_for(user)[:num_lines] # => 15 - # post.targeted_settings_for(user) # => [15,true] - # post.targeted_settings_for(user).collect {|x| x.name} # => ['num_lines','hide_comments'] - # - def targeted_settings_for(obj) - if obj.is_a? Class - # wire the targeted_settings object to only deal with settings targeting this class obj - variable_name = "targeted_settings_for_class_#{obj.name}" - else - # wire the targeted_settings object to only deal with settings targeting this instance obj - variable_name = "targeted_settings_for_#{obj.class}_#{obj.id}" - end - settings_obj = instance_variable_get("@#{variable_name}") - settings_obj = instance_variable_set("@#{variable_name}",TargetedSettings.new(self, obj)) if settings_obj.nil? - settings_obj - end - - # These are class methods that are mixed in with the model class. - module ClassMethods # :nodoc: - - end - end - - - class ProxySettings # :nodoc: - alias_method '__class', 'class' - instance_methods.each { |m| undef_method m unless m =~ /(^__|^nil\?$|^send$)/ } - - #class_inheritable_accessor(:sql_word) - - def initialize(source, reference=nil) - @source = source - @reference = reference - true - end - - def real_class - __class - end - - def settings - @source.send(@settings) - end - - def to_ary - find_settings.collect do |x| - ProxySetting.new(x) - end - end - - def responds_to?(what) - settings.responds_to?(what) - end - - def ==(what) - find_settings == what - end - - def size - find_settings.size - end - - def inspect - find_settings.inspect - end - - def each(&block) - find_settings.each do |x| - yield ProxySetting.new(x) - end - end - - def each_with_key(&block) - find_settings.each do |x| - yield(x.name, ProxySetting.new(x)) - end - end - - def select(&block) - find_settings.select do |x| - yield ProxySetting.new(x) - end - end - - def reject(&block) - find_settings.reject do |x| - yield ProxySetting.new(x) - end - end - - def collect(&block) - find_settings.collect do |x| - yield ProxySetting.new(x) - end - end - - def has_key?(name) - name = name.to_s - setting = find_setting(name) - if setting.nil? - false - else - if setting.is_a? Array - setting.size == 0 ? false : true - else - true - end - end - end - - def [](name) - name = name.to_s - setting = find_setting(name) - return nil if setting.nil? - if setting.is_a? Array - setting.collect {|x| ProxySetting.new(x)} - else - ProxySetting.new(setting) - end - end - - def []=(name, value) - name = name.to_s - setting = find_setting(name) - if setting.is_a? Array - setting.collect do |x| - x.value_type = value.class.to_s - x.value = value.to_yaml - x.save - ProxySetting.new(x) - end - else - if setting.nil? - setting = create_setting(name) - end - setting.value_type = value.class.to_s - setting.value = value.to_yaml - setting.save - ProxySetting.new(setting) - end - end - - private - - def find_settings; nil end - - def find_setting(name); nil end - - def create_setting(name); nil end - - def method_missing(method, *args, &block) - settings.send(method, *args, &block) - end - - end - - class ConfigurableSettings < ProxySettings # :nodoc: - - def initialize(source, reference=nil) - super - @settings = '_configurable_settings' - @@sql_word = "targetable" - true - end - - private - - def find_settings - if @reference.is_a? Class - settings.find( :all, - :conditions => [ "#{@@sql_word}_type = ? and #{@@sql_word}_id IS NULL", @reference.to_s ] ) - elsif @reference - settings.find( :all, - :conditions => [ "#{@@sql_word}_type = ? and #{@@sql_word}_id = ?", @reference.class.to_s, @reference.id ] ) - else - settings.find( :all, - :conditions => [ "#{@@sql_word}_type is null and #{@@sql_word}_id is null" ] ) - end - end - - def find_setting(name) - if @reference.is_a? Class - settings.find( :first, - :conditions => [ "name = ? and #{@@sql_word}_type = ? and #{@@sql_word}_id IS NULL", name, @reference.to_s ] ) - elsif @reference - settings.find( :first, - :conditions => [ "name = ? and #{@@sql_word}_type = ? and #{@@sql_word}_id = ?", name, @reference.class.to_s, @reference.id ] ) - else - settings.find( :first, - :conditions => [ "name = ? and #{@@sql_word}_type is null and #{@@sql_word}_id is null", name ] ) - end - end - - def create_setting(name) - if @reference.is_a? Class - settings.create( :name => name, "#{@@sql_word}_type" => @reference.to_s ) - elsif @reference - settings.create( :name => name, "#{@@sql_word}_type" => @reference.class.to_s, "#{@@sql_word}_id" => @reference.id ) - else - settings.create( :name => name ) - end - end - - end - - class TargetedSettings < ProxySettings # :nodoc: - - def initialize(target, owner=nil) - super - @settings = '_targetable_settings' - @@sql_word = "configurable" - true - end - - private - - def find_settings - if @reference.is_a? Class - settings.find( :all, - :conditions => [ "#{@@sql_word}_type = ? and #{@@sql_word}_id IS NULL", @reference.to_s ] ) - elsif @reference - settings.find( :all, - :conditions => [ "#{@@sql_word}_type = ? and #{@@sql_word}_id = ?", @reference.class.to_s, @reference.id ] ) - else - settings.find( :all ) - end - end - - def find_setting(name) - if @reference.is_a? Class - settings.find( :first, - :conditions => [ "name = ? and #{@@sql_word}_type = ? and #{@@sql_word}_id IS NULL", name, @reference.to_s ] ) - elsif @reference - settings.find( :first, - :conditions => [ "name = ? and #{@@sql_word}_type = ? and #{@@sql_word}_id = ?", name, @reference.class.to_s, @reference.id ] ) - else - settings.find( :all, - :conditions => [ "name = ?", name ] ) - end - end - - def create_setting(name) - if @reference.is_a? Class - settings.create( :name => name, "#{@@sql_word}_type" => @reference.to_s ) - elsif @reference - settings.create( :name => name, "#{@@sql_word}_type" => @reference.class.to_s, "#{@@sql_word}_id" => @reference.id ) - end - end - - end - - class ProxySetting # :nodoc: - - alias_method '__class', 'class' - instance_methods.each { |m| undef_method m unless m =~ /(^__|^nil\?$|^send$)/ } - - def initialize(setting) - @_setting = setting - true - end - - def real_class - ProxySetting - end - - def target - unless @_setting.targetable_type.blank? or @_setting.targetable_id.blank? - ConfigurableSetting.find_targetable(@_setting.targetable_type, @_setting.targetable_id) - else - nil - end - end - - def owner - unless @_setting.configurable_type.blank? or @_setting.configurable_id.blank? - ConfigurableSetting.find_configurable(@_setting.configurable_type, @_setting.configurable_id) - else - nil - end - end - - def []=(name, val) - obj = self.value - if obj.responds_to? '[]=' - obj[name] = val - self.value = obj - self.save - else - method_missing('[]=', [name,val]) - end - end - - def delete(name) - obj = self.value - if obj.responds_to? 'delete' - obj.delete(name) - self.value = obj - self.save - else - method_missing('delete', [name,val]) - end - end - - def save - @_setting.save - end - - protected - - def value - @value ||= YAML.load(@_setting.value) - end - - def value=(val) - @value = val - self.set_value - end - - def set_value - @_setting.value_type = @value.class.to_s - @_setting.value = @value.to_yaml - end - - private - - def method_missing(method, *args, &block) - return_value = self.value.send(method, *args, &block) - if @value != YAML.load(@_setting.value) - STDERR.puts "#{method} called with args #{args} for ProxySetting" - self.set_value - end - return_value - end - - end - - - end -end \ No newline at end of file diff --git a/vendor/plugins/acts_as_configurable/lib/configurable_setting.rb b/vendor/plugins/acts_as_configurable/lib/configurable_setting.rb deleted file mode 100644 index ec9a6f74..00000000 --- a/vendor/plugins/acts_as_configurable/lib/configurable_setting.rb +++ /dev/null @@ -1,50 +0,0 @@ -# this is the base class of all configurable settings -class ConfigurableSetting < ActiveRecord::Base - belongs_to :configurable, :polymorphic => true - belongs_to :targetable, :polymorphic => true - - # ==For migration up - # in your migration self.up method: - # ConfigurableSetting.create_table - def self.create_table - self.connection.create_table :configurable_settings, :options => 'ENGINE=InnoDB' do |t| - t.column :configurable_id, :integer - t.column :configurable_type, :string - t.column :targetable_id, :integer - t.column :targetable_type, :string - t.column :name, :string, :null => false - t.column :value_type, :string - t.column :value, :text, :null => true - end - self.connection.add_index :configurable_settings, :name - end - - # ==For migration down - # in your migration self.down method: - # ConfigurableSetting.drop_table - def self.drop_table - self.connection.remove_index :configurable_settings, :name - self.connection.drop_table :configurable_settings - end - - # returns a string with the classname of configurable - def self.configurable_class(configurable) # :nodoc: - ActiveRecord::Base.send(:class_name_of_active_record_descendant, configurable.class).to_s - end - - # returns a string with the classname of configurable - def self.targetable_class(targetable) # :nodoc: - ActiveRecord::Base.send(:class_name_of_active_record_descendant, targetable.class).to_s - end - - # returns the instance of the "owner" of the setting - def self.find_configurable(configured_class, configured_id) # :nodoc: - configured_class.constantize.find(configured_id) - end - - # returns the instance of the "target" of the setting - def self.find_targetable(targeted_class, targeted_id) # :nodoc: - targeted_class.constantize.find(targeted_id) - end - -end \ No newline at end of file diff --git a/vendor/plugins/acts_as_configurable/tasks/acts_as_configurable_tasks.rake b/vendor/plugins/acts_as_configurable/tasks/acts_as_configurable_tasks.rake deleted file mode 100644 index bdcde759..00000000 --- a/vendor/plugins/acts_as_configurable/tasks/acts_as_configurable_tasks.rake +++ /dev/null @@ -1,28 +0,0 @@ -require 'rake/testtask' -require 'rake/rdoctask' - -namespace :test do - desc "run the acts as configurable test suite" - task :acts_as_configurable do - Rake::TestTask.new(:aac_test) do |t| - t.libs << File.join(File.dirname(__FILE__), '/../lib') - t.pattern = File.join(File.dirname(__FILE__), '/../test/**/*_test.rb') - t.verbose = true - end - Rake::Task[:aac_test].invoke - end -end - -namespace :doc do - desc "generate the acts as configurable rdoc files" - task :acts_as_configurable do - Rake::RDocTask.new(:aac_rdoc) do |rdoc| - rdoc.rdoc_dir = File.join(File.dirname(__FILE__), '/../rdoc') - rdoc.title = 'Acts As Configurable' - rdoc.options << '--line-numbers' << '--inline-source' - rdoc.rdoc_files.include(File.join(File.dirname(__FILE__), '/../README')) - rdoc.rdoc_files.include(File.join(File.dirname(__FILE__), '/../lib/**/*.rb')) - end - Rake::Task[:aac_rdoc].invoke - end -end \ No newline at end of file diff --git a/vendor/plugins/acts_as_configurable/test/acts_as_configurable_test.rb b/vendor/plugins/acts_as_configurable/test/acts_as_configurable_test.rb deleted file mode 100644 index d4739fc6..00000000 --- a/vendor/plugins/acts_as_configurable/test/acts_as_configurable_test.rb +++ /dev/null @@ -1,117 +0,0 @@ -require 'test/unit' -require File.dirname(__FILE__) + '/test_helper' -require File.join(File.dirname(__FILE__), 'fixtures/entities') - - -class ActsAsConfigurableTest < Test::Unit::TestCase - fixtures :test_users, :test_groups - - def setup - @group = TestGroup.create(:display_name => 'Rails Core') - @user = TestUser.create(:login => 'sam', :name => 'Sam Testuser', :email => 'sam@example.com') - end - - SETTINGS = ActiveRecord::Base.const_get('ConfigurableSettings') - TARGETEDSETTINGS = ActiveRecord::Base.const_get('TargetedSettings') - PROXYSETTING = ActiveRecord::Base.const_get('ProxySetting') - USR_CFG = { - :how_many_time_i_eat_out_a_week => 4, - 'what i am made of' => 'steel', - :friends => ['bob', 'ken'] - } - GR_ROLES = ['creator', 'member', 'fundraiser'] - - def test_user_model_settings - - assert_equal 'sam', @user.login - assert_equal 'Rails Core', @group.display_name - - assert_equal 0, @user._configurable_settings.size - assert_equal Array, @user.settings.class - assert_equal SETTINGS, @user.settings.real_class - assert_equal 0, @user.settings.size - - @user.settings[:config] = USR_CFG - - assert_equal 1, @user._configurable_settings.size - assert_equal USR_CFG, @user.settings[:config] - assert_equal 1, @user.settings.size - assert_equal Hash, @user.settings[:config].class - assert_equal PROXYSETTING, @user.settings[:config].real_class - assert_equal 3, @user.settings[:config].keys.size - assert_equal 4, @user.settings[:config][:how_many_time_i_eat_out_a_week] - assert_equal Array, @user.settings[:config][:friends].class - assert_equal 2, @user.settings[:config][:friends].size - - @user.settings[:my_group] = @group - - assert_equal 2, @user.settings.size - assert_equal TestGroup, @user.settings[:my_group].class - - end - - def test_new_each_with_key - @user.settings[:config] = USR_CFG - @user.settings.each_with_key do |key, setting| - assert_equal :config.to_s, key - assert_equal USR_CFG, setting - end - end - - - def test_valid_raw_setting - - assert ConfigurableSetting.find(:first).nil? - - @user.settings[:config] = USR_CFG - - first_setting = ConfigurableSetting.find(:first) - - assert_equal 'config', first_setting.name - assert_equal 'TestUser', first_setting.configurable_type - assert_equal @user.id, first_setting.configurable_id - assert_equal nil, first_setting.targetable_type - assert_equal nil, first_setting.targetable_id - assert_equal USR_CFG.to_yaml, first_setting.value - - end - - - def test_associated_settings - - assert_equal [], @user.settings - assert_equal [], @user.settings_for(@group) - - @user.settings_for(@group)[:roles] = GR_ROLES - - assert_equal GR_ROLES, @user.settings_for(@group)[:roles] - assert_equal 1, @user.settings_for(@group).size - assert_equal 0, @user.settings.size - - end - - - def test_associated_target_settings - - assert_equal [], @group.targeted_settings - assert_equal TARGETEDSETTINGS, @group.targeted_settings.real_class - - @user.settings_for(@group)[:roles] = GR_ROLES - - assert_equal 1, @group._targetable_settings.size - assert_equal 1, @group.targeted_settings.size - assert_equal 1, @group.targeted_settings_for(@user).size - assert_equal GR_ROLES, @group.targeted_settings_for(@user)[:roles] - @group.targeted_settings.each do |x| - assert x.owner == @user and x.target == @group and x.name == 'roles' - end - @group.targeted_settings.each do |x| - assert x == GR_ROLES - end - @group.targeted_settings[:roles].each do |x| - assert x.owner == @user and x == GR_ROLES - end - - end - -end \ No newline at end of file diff --git a/vendor/plugins/acts_as_configurable/test/fixtures/entities.rb b/vendor/plugins/acts_as_configurable/test/fixtures/entities.rb deleted file mode 100644 index cdffde3b..00000000 --- a/vendor/plugins/acts_as_configurable/test/fixtures/entities.rb +++ /dev/null @@ -1,14 +0,0 @@ -class TestUser < ActiveRecord::Base - - acts_as_configurable - -end - - - -class TestGroup < ActiveRecord::Base - - acts_as_configurable - acts_as_configurable_target - -end diff --git a/vendor/plugins/acts_as_configurable/test/fixtures/test_groups.yml b/vendor/plugins/acts_as_configurable/test/fixtures/test_groups.yml deleted file mode 100644 index e20efdc9..00000000 --- a/vendor/plugins/acts_as_configurable/test/fixtures/test_groups.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -test_groups_001: - id: "1" - display_name: Clan of the Cavebear diff --git a/vendor/plugins/acts_as_configurable/test/fixtures/test_users.yml b/vendor/plugins/acts_as_configurable/test/fixtures/test_users.yml deleted file mode 100644 index 8ec0af99..00000000 --- a/vendor/plugins/acts_as_configurable/test/fixtures/test_users.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -test_users_001: - name: Bob Testuser - id: "1" - login: bob - email: bob@example.com -test_users_002: - name: Ken Testuser - id: "2" - login: ken - email: ken@example.com diff --git a/vendor/plugins/acts_as_configurable/test/schema.rb b/vendor/plugins/acts_as_configurable/test/schema.rb deleted file mode 100644 index fedbe4a8..00000000 --- a/vendor/plugins/acts_as_configurable/test/schema.rb +++ /dev/null @@ -1,28 +0,0 @@ -ActiveRecord::Migration.verbose = false - -ActiveRecord::Schema.define(:version => 0) do - - create_table :configurable_settings, :force => true do |t| - t.column :configurable_id, :integer - t.column :configurable_type, :string - t.column :targetable_id, :integer - t.column :targetable_type, :string - t.column :name, :string, :default => "", :null => false - t.column :value_type, :string - t.column :value, :text - end - add_index :configurable_settings, :name - - create_table :test_groups, :force => true do |t| - t.column :display_name, :string, :limit => 80 - end - - create_table :test_users, :force => true do |t| - t.column :login, :string, :limit => 20 - t.column :name, :string, :limit => 80 - t.column :email, :string - end - -end - -ActiveRecord::Migration.verbose = true \ No newline at end of file diff --git a/vendor/plugins/acts_as_configurable/test/test_helper.rb b/vendor/plugins/acts_as_configurable/test/test_helper.rb deleted file mode 100644 index c54f915c..00000000 --- a/vendor/plugins/acts_as_configurable/test/test_helper.rb +++ /dev/null @@ -1,30 +0,0 @@ -ENV["RAILS_ENV"] = "test" -require File.expand_path(File.dirname(__FILE__) + "/../../../../config/environment") - -require 'test/unit' -require 'active_record/fixtures' - -ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log") - -load(File.dirname(__FILE__) + '/schema.rb') - -Test::Unit::TestCase.fixture_path = File.dirname(__FILE__) + '/fixtures/' -$LOAD_PATH.unshift(Test::Unit::TestCase.fixture_path) - -class Test::Unit::TestCase #:nodoc: - def create_fixtures(*table_names) - if block_given? - Fixtures.create_fixtures(Test::Unit::TestCase.fixture_path, table_names) { yield } - else - Fixtures.create_fixtures(Test::Unit::TestCase.fixture_path, table_names) - end - end - - # Turn off transactional fixtures if you're working with MyISAM tables in MySQL - self.use_transactional_fixtures = true - - # Instantiated fixtures are slow, but give you @david where you otherwise would need people(:david) - self.use_instantiated_fixtures = false - - # Add more helper methods to be used by all tests here... -end \ No newline at end of file