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.
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