mongosteen 0.1.3 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.gitignore +3 -0
  4. data/Gemfile +8 -0
  5. data/Gemfile.lock +204 -0
  6. data/README.md +32 -55
  7. data/Rakefile +16 -2
  8. data/lib/mongosteen.rb +24 -13
  9. data/lib/mongosteen/actions.rb +6 -0
  10. data/lib/mongosteen/base_helpers.rb +6 -7
  11. data/lib/mongosteen/class_methods.rb +6 -2
  12. data/lib/mongosteen/permitted_params.rb +3 -34
  13. data/lib/mongosteen/version.rb +1 -1
  14. data/mongosteen.gemspec +13 -4
  15. data/test/.DS_Store +0 -0
  16. data/test/controllers/.keep +0 -0
  17. data/test/helpers/.keep +0 -0
  18. data/test/integration/api_test.rb +95 -0
  19. data/test/rails_app/.DS_Store +0 -0
  20. data/test/rails_app/Rakefile +6 -0
  21. data/test/rails_app/app/assets/images/.keep +0 -0
  22. data/test/rails_app/app/assets/javascripts/application.js +16 -0
  23. data/test/rails_app/app/assets/stylesheets/application.css +15 -0
  24. data/test/rails_app/app/controllers/application_controller.rb +5 -0
  25. data/test/rails_app/app/controllers/concerns/.keep +0 -0
  26. data/test/rails_app/app/controllers/test_items_controller.rb +5 -0
  27. data/test/rails_app/app/controllers/test_permit_items_controller.rb +9 -0
  28. data/test/rails_app/app/helpers/application_helper.rb +2 -0
  29. data/test/rails_app/app/mailers/.keep +0 -0
  30. data/test/rails_app/app/models/concerns/.keep +0 -0
  31. data/test/rails_app/app/models/test_item.rb +16 -0
  32. data/test/rails_app/app/models/test_permit_item.rb +7 -0
  33. data/test/rails_app/app/views/layouts/application.html.erb +14 -0
  34. data/test/rails_app/bin/bundle +3 -0
  35. data/test/rails_app/bin/rails +8 -0
  36. data/test/rails_app/bin/rake +8 -0
  37. data/test/rails_app/bin/setup +29 -0
  38. data/test/rails_app/bin/spring +15 -0
  39. data/test/rails_app/config.ru +4 -0
  40. data/test/rails_app/config/application.rb +32 -0
  41. data/test/rails_app/config/boot.rb +3 -0
  42. data/test/rails_app/config/environment.rb +5 -0
  43. data/test/rails_app/config/environments/development.rb +38 -0
  44. data/test/rails_app/config/environments/production.rb +76 -0
  45. data/test/rails_app/config/environments/test.rb +42 -0
  46. data/test/rails_app/config/initializers/assets.rb +11 -0
  47. data/test/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  48. data/test/rails_app/config/initializers/cookies_serializer.rb +3 -0
  49. data/test/rails_app/config/initializers/filter_parameter_logging.rb +4 -0
  50. data/test/rails_app/config/initializers/inflections.rb +16 -0
  51. data/test/rails_app/config/initializers/mime_types.rb +4 -0
  52. data/test/rails_app/config/initializers/session_store.rb +3 -0
  53. data/test/rails_app/config/initializers/wrap_parameters.rb +9 -0
  54. data/test/rails_app/config/locales/en.yml +23 -0
  55. data/test/rails_app/config/mongoid.yml +9 -0
  56. data/test/rails_app/config/routes.rb +6 -0
  57. data/test/rails_app/config/secrets.yml +22 -0
  58. data/test/rails_app/db/seeds.rb +7 -0
  59. data/test/rails_app/lib/assets/.keep +0 -0
  60. data/test/rails_app/lib/tasks/.keep +0 -0
  61. data/test/rails_app/public/404.html +67 -0
  62. data/test/rails_app/public/422.html +67 -0
  63. data/test/rails_app/public/500.html +66 -0
  64. data/test/rails_app/public/favicon.ico +0 -0
  65. data/test/rails_app/public/robots.txt +5 -0
  66. data/test/rails_app/vendor/assets/javascripts/.keep +0 -0
  67. data/test/rails_app/vendor/assets/stylesheets/.keep +0 -0
  68. data/test/test_helper.rb +16 -0
  69. metadata +158 -22
  70. data/CONTRIBUTING.md +0 -24
  71. data/lib/mongoid/fake_criteria.rb +0 -24
  72. data/lib/mongoid/serializable_id.rb +0 -19
  73. data/lib/mongoid/sorted_relations.rb +0 -61
  74. data/lib/mongosteen/engine.rb +0 -5
@@ -1,24 +0,0 @@
1
- # NOTE: this is required by sorted_relations.rb
2
- module Mongoid
3
- class FakeCriteria
4
- def initialize(documents)
5
- @documents = documents
6
- end
7
-
8
- def limit(quantity)
9
- Mongoid::FakeCriteria.new(@documents[0..quantity-1])
10
- end
11
-
12
- def raw
13
- @documents
14
- end
15
-
16
- def as_json(options={})
17
- @documents.as_json(options)
18
- end
19
-
20
- def method_missing(*args, &block)
21
- @documents.send(*args, &block)
22
- end
23
- end
24
- end
@@ -1,19 +0,0 @@
1
- module Mongoid
2
- module SerializableId
3
- extend ActiveSupport::Concern
4
-
5
- def serializable_hash(options={})
6
- attrs = super(options)
7
- attrs.each_pair do |k, v|
8
- if k.end_with?('_id')
9
- attrs[k] = v.to_s
10
- end
11
-
12
- if k.end_with?('_ids')
13
- attrs[k] = attrs[k].collect { |id| id.to_s }
14
- end
15
- end
16
- attrs
17
- end
18
- end
19
- end
@@ -1,61 +0,0 @@
1
- # NOTE: this is an updated version of mongoid-sorted-relations gem
2
- # https://github.com/demarque/mongoid-sorted-relations
3
-
4
- # NOTE: the problem is that mongoid returnes object in random order
5
- # for relation queries, this patch stores relations ids order
6
- # and sort objects using cached order.
7
-
8
- module Mongoid
9
- module SortedRelations
10
- extend ActiveSupport::Concern
11
-
12
- included do
13
- after_initialize :define_sorted_methods
14
- after_initialize :cache_relations_ids_order
15
- after_save :cache_relations_ids_order
16
- end
17
-
18
- def define_sorted_methods
19
- self.relations.each do |key, relation|
20
- if [:has_many, :has_and_belongs_to_many].include? relation.macro
21
- self.class.send(:define_method, "sorted_#{relation.name}") do
22
- sorted_relation(relation)
23
- end
24
- end
25
- end
26
- end
27
-
28
- def cache_relations_ids_order
29
- @__sorted_relation_criterias = {}
30
- @__sorted_relation_ids = {}
31
-
32
- self.relations.each do |key, relation|
33
- if [:has_many, :has_and_belongs_to_many].include? relation.macro
34
- relation_ids = self.send(relation.key)
35
-
36
- @__sorted_relation_ids[relation.key] = [ relation_ids ].flatten.map do |rid|
37
- rid.to_s
38
- end
39
- end
40
- end
41
- end
42
-
43
- def sorted_relation(relation)
44
- @__sorted_relation_criterias[relation.name] ||= sorted_related_criteria(relation)
45
- end
46
-
47
- def sorted_related_criteria(relation)
48
- related_documents = self.send(relation.name)
49
-
50
- sorted_documents = related_documents.sort_by do |x|
51
- @__sorted_relation_ids[relation.key].index(x.id.to_s)
52
- end
53
-
54
- return Mongoid::FakeCriteria.new(sorted_documents)
55
- end
56
- end
57
- end
58
-
59
-
60
-
61
-
@@ -1,5 +0,0 @@
1
- module Mongosteen
2
- class Engine < Rails::Engine
3
- # auto wire
4
- end
5
- end