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.
Files changed (61) hide show
  1. data/Rakefile +1 -1
  2. data/lib/has_moderated.rb +1 -1
  3. data/lib/has_moderated/associations/base.rb +7 -1
  4. data/lib/has_moderated/moderation_model.rb +3 -1
  5. data/lib/has_moderated/version.rb +1 -1
  6. data/spec/has_moderated/associations_spec.rb +44 -0
  7. data/spec/has_moderated/attributes_spec.rb +31 -0
  8. data/spec/has_moderated/common_features_spec.rb +56 -0
  9. data/spec/has_moderated/has_and_belongs_to_many_spec.rb +98 -0
  10. data/spec/has_moderated/has_many_spec.rb +108 -0
  11. data/spec/has_moderated/has_many_through_spec.rb +91 -0
  12. data/spec/has_moderated/has_one_spec.rb +119 -0
  13. data/spec/has_moderated/hooks_spec.rb +18 -0
  14. data/spec/has_moderated/moderated_create_spec.rb +41 -0
  15. data/spec/has_moderated/moderated_destroy_spec.rb +24 -0
  16. data/{test/dummy/spec/models → spec/has_moderated}/photo_spec.rb +23 -29
  17. data/spec/has_moderated/polymorphic_spec.rb +70 -0
  18. data/spec/has_moderated/preview_spec.rb +182 -0
  19. data/spec/has_moderated/without_moderation_spec.rb +38 -0
  20. metadata +195 -247
  21. data/test/dummy/Rakefile +0 -7
  22. data/test/dummy/app/assets/javascripts/application.js +0 -9
  23. data/test/dummy/app/assets/stylesheets/application.css +0 -7
  24. data/test/dummy/app/controllers/application_controller.rb +0 -3
  25. data/test/dummy/app/helpers/application_helper.rb +0 -2
  26. data/test/dummy/app/models/moderation.rb +0 -5
  27. data/test/dummy/app/uploaders/generic_uploader.rb +0 -49
  28. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  29. data/test/dummy/config.ru +0 -4
  30. data/test/dummy/config/application.rb +0 -50
  31. data/test/dummy/config/boot.rb +0 -10
  32. data/test/dummy/config/database.yml +0 -25
  33. data/test/dummy/config/environment.rb +0 -5
  34. data/test/dummy/config/environments/development.rb +0 -30
  35. data/test/dummy/config/environments/production.rb +0 -60
  36. data/test/dummy/config/environments/test.rb +0 -42
  37. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  38. data/test/dummy/config/initializers/inflections.rb +0 -10
  39. data/test/dummy/config/initializers/mime_types.rb +0 -5
  40. data/test/dummy/config/initializers/secret_token.rb +0 -7
  41. data/test/dummy/config/initializers/session_store.rb +0 -8
  42. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  43. data/test/dummy/config/locales/en.yml +0 -5
  44. data/test/dummy/config/routes.rb +0 -58
  45. data/test/dummy/db/migrate/20120520215008_initial_schema.rb +0 -48
  46. data/test/dummy/db/migrate/20120520215224_create_photos.rb +0 -13
  47. data/test/dummy/db/schema.rb +0 -71
  48. data/test/dummy/db/test.sqlite3 +0 -0
  49. data/test/dummy/log/test.log +0 -19029
  50. data/test/dummy/public/404.html +0 -26
  51. data/test/dummy/public/422.html +0 -26
  52. data/test/dummy/public/500.html +0 -26
  53. data/test/dummy/public/favicon.ico +0 -0
  54. data/test/dummy/public/test.jpg +0 -0
  55. data/test/dummy/public/uploads/tmp/20121108-2105-18143-8298/test.jpg +0 -0
  56. data/test/dummy/public/uploads/tmp/20121108-2105-18143-8298/thumb_test.jpg +0 -0
  57. data/test/dummy/script/rails +0 -6
  58. data/test/dummy/spec/models/task_spec.rb +0 -886
  59. data/test/dummy/spec/spec_helper.rb +0 -1
  60. data/test/dummy/spec/support/crazy_models.rb +0 -85
  61. 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