has_moderated 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -1
- data/lib/has_moderated.rb +1 -1
- data/lib/has_moderated/associations/base.rb +7 -1
- data/lib/has_moderated/moderation_model.rb +3 -1
- data/lib/has_moderated/version.rb +1 -1
- data/spec/has_moderated/associations_spec.rb +44 -0
- data/spec/has_moderated/attributes_spec.rb +31 -0
- data/spec/has_moderated/common_features_spec.rb +56 -0
- data/spec/has_moderated/has_and_belongs_to_many_spec.rb +98 -0
- data/spec/has_moderated/has_many_spec.rb +108 -0
- data/spec/has_moderated/has_many_through_spec.rb +91 -0
- data/spec/has_moderated/has_one_spec.rb +119 -0
- data/spec/has_moderated/hooks_spec.rb +18 -0
- data/spec/has_moderated/moderated_create_spec.rb +41 -0
- data/spec/has_moderated/moderated_destroy_spec.rb +24 -0
- data/{test/dummy/spec/models → spec/has_moderated}/photo_spec.rb +23 -29
- data/spec/has_moderated/polymorphic_spec.rb +70 -0
- data/spec/has_moderated/preview_spec.rb +182 -0
- data/spec/has_moderated/without_moderation_spec.rb +38 -0
- metadata +195 -247
- data/test/dummy/Rakefile +0 -7
- data/test/dummy/app/assets/javascripts/application.js +0 -9
- data/test/dummy/app/assets/stylesheets/application.css +0 -7
- data/test/dummy/app/controllers/application_controller.rb +0 -3
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/models/moderation.rb +0 -5
- data/test/dummy/app/uploaders/generic_uploader.rb +0 -49
- data/test/dummy/app/views/layouts/application.html.erb +0 -14
- data/test/dummy/config.ru +0 -4
- data/test/dummy/config/application.rb +0 -50
- data/test/dummy/config/boot.rb +0 -10
- data/test/dummy/config/database.yml +0 -25
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -30
- data/test/dummy/config/environments/production.rb +0 -60
- data/test/dummy/config/environments/test.rb +0 -42
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/inflections.rb +0 -10
- data/test/dummy/config/initializers/mime_types.rb +0 -5
- data/test/dummy/config/initializers/secret_token.rb +0 -7
- data/test/dummy/config/initializers/session_store.rb +0 -8
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/test/dummy/config/locales/en.yml +0 -5
- data/test/dummy/config/routes.rb +0 -58
- data/test/dummy/db/migrate/20120520215008_initial_schema.rb +0 -48
- data/test/dummy/db/migrate/20120520215224_create_photos.rb +0 -13
- data/test/dummy/db/schema.rb +0 -71
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +0 -19029
- data/test/dummy/public/404.html +0 -26
- data/test/dummy/public/422.html +0 -26
- data/test/dummy/public/500.html +0 -26
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/public/test.jpg +0 -0
- data/test/dummy/public/uploads/tmp/20121108-2105-18143-8298/test.jpg +0 -0
- data/test/dummy/public/uploads/tmp/20121108-2105-18143-8298/thumb_test.jpg +0 -0
- data/test/dummy/script/rails +0 -6
- data/test/dummy/spec/models/task_spec.rb +0 -886
- data/test/dummy/spec/spec_helper.rb +0 -1
- data/test/dummy/spec/support/crazy_models.rb +0 -85
- data/test/dummy/spec/support/photos.rb +0 -33
@@ -1 +0,0 @@
|
|
1
|
-
require File.expand_path("../../../../spec/spec_helper", __FILE__)
|
@@ -1,85 +0,0 @@
|
|
1
|
-
# This is crazy and ugly and a hack! But it works and I don't want to have 100 different model files in models/
|
2
|
-
# Please do not use this code for your stuff, it's not optimal in any way. I will probably do this more properly when
|
3
|
-
# I have the time.
|
4
|
-
|
5
|
-
def crazy_model_classes
|
6
|
-
[:Task, :Subtask, :TaskConnection, :Photo]
|
7
|
-
end
|
8
|
-
|
9
|
-
def crazy_models
|
10
|
-
$crazy_models ||= CrazyModels.new
|
11
|
-
end
|
12
|
-
|
13
|
-
class CrazyModels
|
14
|
-
module SetupHelpers
|
15
|
-
crazy_model_classes.each do |name|
|
16
|
-
self.send(:define_method, "#{name.to_s.underscore}_class_name") do
|
17
|
-
crazy_models.get_klass(name).to_s
|
18
|
-
end
|
19
|
-
self.send(:define_method, "#{name.to_s.underscore}_fk") do
|
20
|
-
name.to_s.underscore + "_id"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
class SetupHelperHolder
|
26
|
-
extend SetupHelpers
|
27
|
-
end
|
28
|
-
|
29
|
-
def initialize
|
30
|
-
@counter = 0
|
31
|
-
@current_models = Hash.new
|
32
|
-
end
|
33
|
-
|
34
|
-
def with_helpers &block
|
35
|
-
SetupHelperHolder.class_eval &block
|
36
|
-
end
|
37
|
-
|
38
|
-
crazy_model_classes.each do |name|
|
39
|
-
self.send(:define_method, name.to_s.underscore) do |&block|
|
40
|
-
@current_models[name].class_eval(&block)
|
41
|
-
self
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def reset
|
46
|
-
@counter += 1
|
47
|
-
crazy_model_classes.each do |name|
|
48
|
-
klass_name = "#{name}#{@counter}"
|
49
|
-
table_name = name.to_s.underscore.pluralize
|
50
|
-
klass = Class.new(ActiveRecord::Base) do
|
51
|
-
self.table_name = table_name
|
52
|
-
extend SetupHelpers
|
53
|
-
self
|
54
|
-
end
|
55
|
-
klass = Object.const_set(klass_name, klass)
|
56
|
-
@current_models[name] = klass
|
57
|
-
end
|
58
|
-
self
|
59
|
-
end
|
60
|
-
|
61
|
-
def get_klass model_name
|
62
|
-
@current_models[model_name]
|
63
|
-
end
|
64
|
-
|
65
|
-
def access model_name, method, *args, &block
|
66
|
-
@current_models[model_name].send(method, *args, &block) if @current_models[model_name]
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
# This part is especially ugly and unncessary, but I'm lazy...
|
71
|
-
crazy_model_classes.each do |name|
|
72
|
-
begin
|
73
|
-
Object.instance_eval{ remove_const name }
|
74
|
-
rescue ; end
|
75
|
-
# proxy module, proxies to current AR model
|
76
|
-
m = Module.new do
|
77
|
-
def self.method_missing(m, *args, &block)
|
78
|
-
$crazy_models.access(name.to_sym, m, *args, &block)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
Object.const_set name.to_s, m
|
82
|
-
end
|
83
|
-
|
84
|
-
# initialize
|
85
|
-
crazy_models.reset
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
|
3
|
-
def dirEmpty? dirname
|
4
|
-
return true unless File.directory?(dirname)
|
5
|
-
Dir.entries(dirname).size == 2
|
6
|
-
end
|
7
|
-
|
8
|
-
def tmpEmpty?
|
9
|
-
dirEmpty?(TEMPDIR)
|
10
|
-
end
|
11
|
-
|
12
|
-
def uploadEmpty?
|
13
|
-
photoModel = crazy_models.get_klass(:Photo)
|
14
|
-
dir = File.expand_path("../../../public/uploads/#{photoModel.to_s.underscore}/avatar", __FILE__)
|
15
|
-
dirEmpty?(dir)
|
16
|
-
end
|
17
|
-
|
18
|
-
TEMPDIR = File.expand_path("../../../public/uploads/tmp", __FILE__)
|
19
|
-
|
20
|
-
def carrierwave_test_photo
|
21
|
-
test_photo_path = File.expand_path("../../../public/test.jpg", __FILE__)
|
22
|
-
File.open(test_photo_path, "rb")
|
23
|
-
end
|
24
|
-
|
25
|
-
def assert_photo_uploaded photo
|
26
|
-
photo.should_not be_nil
|
27
|
-
photo.file.should_not be_nil
|
28
|
-
photo.file.file.should_not be_nil
|
29
|
-
|
30
|
-
filename = photo.file.file
|
31
|
-
File.exist?(filename)
|
32
|
-
assert(filename =~ /avatar\/1\/test.jpg\Z/)
|
33
|
-
end
|