has_moderated 1.2.2 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|