mongosteen 0.1.3 → 0.1.7

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