Class: AcademicBenchmarks::Api::Standards
- Inherits:
-
Object
- Object
- AcademicBenchmarks::Api::Standards
- Defined in:
- lib/academic_benchmarks/api/standards.rb
Constant Summary collapse
- DEFAULT_PER_PAGE =
100
- STANDARDS_FIELDS =
%w[ guid education_levels.grades.code label level section.guid section.descr number.prefix_enhanced status disciplines.subjects.code document.guid document.descr document.adopt_year document.publication.descr document.publication.guid document.publication.authorities statement.descr utilizations.type parent ]
Instance Method Summary collapse
- #authorities ⇒ Object
- #authority_publications(authority_or_auth_code_guid_or_desc) ⇒ Object
- #authority_tree(authority_or_auth_code_guid_or_desc, include_obsolete_standards: true, exclude_examples: false) ⇒ Object
-
#initialize(handle) ⇒ Standards
constructor
A new instance of Standards.
- #publication_tree(publication_or_pub_code_guid_or_desc, include_obsolete_standards: true, exclude_examples: false) ⇒ Object
- #publications(authority_guid: nil) ⇒ Object
-
#search(authority_guid: nil, publication_guid: nil) ⇒ Object
TODO: in the future, support OData filtering for flexible querying.
Constructor Details
#initialize(handle) ⇒ Standards
Returns a new instance of Standards.
32 33 34 |
# File 'lib/academic_benchmarks/api/standards.rb', line 32 def initialize(handle) @handle = handle end |
Instance Method Details
#authorities ⇒ Object
43 44 45 46 47 |
# File 'lib/academic_benchmarks/api/standards.rb', line 43 def raw_facet("document.publication.authorities").map do |a| AcademicBenchmarks::Standards::Authority.from_hash(a["data"]) end end |
#authority_publications(authority_or_auth_code_guid_or_desc) ⇒ Object
55 56 57 58 |
# File 'lib/academic_benchmarks/api/standards.rb', line 55 def () = auth_from_code_guid_or_desc() publications(authority_guid: .guid) end |
#authority_tree(authority_or_auth_code_guid_or_desc, include_obsolete_standards: true, exclude_examples: false) ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/academic_benchmarks/api/standards.rb', line 60 def (, include_obsolete_standards: true, exclude_examples: false) = auth_from_code_guid_or_desc() auth_children = raw_search(authority: .guid, include_obsoletes: include_obsolete_standards, exclude_examples: exclude_examples) AcademicBenchmarks::Standards::StandardsForest.new( auth_children ).consolidate_under_root() end |
#publication_tree(publication_or_pub_code_guid_or_desc, include_obsolete_standards: true, exclude_examples: false) ⇒ Object
68 69 70 71 72 73 74 |
# File 'lib/academic_benchmarks/api/standards.rb', line 68 def publication_tree(publication_or_pub_code_guid_or_desc, include_obsolete_standards: true, exclude_examples: false) publication = pub_from_guid(publication_or_pub_code_guid_or_desc) pub_children = raw_search(publication: publication.guid, include_obsoletes: include_obsolete_standards, exclude_examples: exclude_examples) AcademicBenchmarks::Standards::StandardsForest.new( pub_children ).consolidate_under_root(publication) end |
#publications(authority_guid: nil) ⇒ Object
49 50 51 52 53 |
# File 'lib/academic_benchmarks/api/standards.rb', line 49 def publications(authority_guid: nil) raw_facet("document.publication", authority: ).map do |a| AcademicBenchmarks::Standards::Publication.from_hash(a["data"]) end end |
#search(authority_guid: nil, publication_guid: nil) ⇒ Object
TODO: in the future, support OData filtering for flexible querying
37 38 39 40 41 |
# File 'lib/academic_benchmarks/api/standards.rb', line 37 def search(authority_guid: nil, publication_guid: nil) raw_search(authority: , publication: publication_guid).map do |standard| AcademicBenchmarks::Standards::Standard.new(standard) end end |