Class: Lcms::Engine::CurriculumResourceSerializer
- Inherits:
-
ActiveModel::Serializer
- Object
- ActiveModel::Serializer
- Lcms::Engine::CurriculumResourceSerializer
- Defined in:
- app/serializers/lcms/engine/curriculum_resource_serializer.rb
Instance Method Summary collapse
- #children ⇒ Object
- #descendants ⇒ Object
-
#initialize(object, options = {}) ⇒ CurriculumResourceSerializer
constructor
A new instance of CurriculumResourceSerializer.
- #lesson_count ⇒ Object
- #module? ⇒ Boolean
- #module_count ⇒ Object
- #module_sizes ⇒ Object
- #resource ⇒ Object
- #type ⇒ Object
- #unit_count ⇒ Object
- #unit_sizes ⇒ Object
Constructor Details
#initialize(object, options = {}) ⇒ CurriculumResourceSerializer
11 12 13 14 15 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 11 def initialize(object, = {}) super(object, ) @depth = [:depth] || 0 @depth_branch = [:depth_branch] end |
Instance Method Details
#children ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 25 def children return [] if !module? && @depth.zero? return [] if !module? && @depth_branch && !@depth_branch.include?(object.id) object.children .includes(:copyright_attributions) .eager_load(:standards) .ordered.map do |res| CurriculumResourceSerializer.new( res, depth: @depth - 1, depth_branch: @depth_branch ).as_json end end |
#descendants ⇒ Object
69 70 71 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 69 def descendants @descendants ||= object.self_and_descendants.ordered end |
#lesson_count ⇒ Object
41 42 43 44 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 41 def lesson_count count = descendants.select(&:lesson?).count object.assessment? ? count + 1 : count end |
#module? ⇒ Boolean
50 51 52 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 50 def module? type.casecmp('module').zero? end |
#module_count ⇒ Object
54 55 56 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 54 def module_count descendants.select(&:module?).count end |
#module_sizes ⇒ Object
58 59 60 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 58 def module_sizes descendants.select(&:module?).map { |r| r.self_and_descendants.lessons.count } end |
#resource ⇒ Object
17 18 19 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 17 def resource ResourceDetailsSerializer.new(object).as_json end |
#type ⇒ Object
21 22 23 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 21 def type object.curriculum_type end |
#unit_count ⇒ Object
46 47 48 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 46 def unit_count descendants.select(&:unit?).count end |
#unit_sizes ⇒ Object
62 63 64 65 66 67 |
# File 'app/serializers/lcms/engine/curriculum_resource_serializer.rb', line 62 def unit_sizes descendants.select(&:unit?).map do |r| count = r.self_and_descendants.lessons.count r.assessment? ? count + 1 : count end end |