Module: CodeApe

Defined in:
lib/code_ape.rb,
lib/code_ape/class.rb,
lib/code_ape/group.rb,
lib/code_ape/section.rb,
lib/code_ape/version.rb,
lib/code_ape/division.rb,
lib/code_ape/constants.rb,
lib/code_ape/subsection.rb

Overview

All CodeApe functionality

Defined Under Namespace

Classes: Class, Division, Group, Section, Subsection

Constant Summary collapse

REGEX_CLASS =

Regex to parse ape code class (notably in ape)

/\A(\d{2})\.?(\d{2})([A-Z])\z/i
CLASSES =

List of ape code classes

NAF_REV2[:classes].map { |k, v| Class.new(k, v[:label], v[:section], v[:subsection], v[:division], v[:group]) }.freeze
REGEX_GROUP =

Regex to parse ape code group (notably in ape)

/\A(\d{2})\.?(\d{2})\z/i
GROUPS =

List of ape code groups

NAF_REV2[:groups].map { |k, v| Group.new(k, v) }.freeze
SECTIONS =

List of ape code sections

NAF_REV2[:sections].map { |k, v| Section.new(k, v) }.freeze
VERSION =

The current version of code_ape

"3.0.0".freeze
REGEX_DIVISION =

Regex to parse ape code division (notably in ape)

/\A(\d{2})\.?(\d{1})\z/i
DIVISIONS =

List of ape code divisions

NAF_REV2[:divisions].map { |k, v| Division.new(k, v) }.freeze
NAF_REV2 =

The content of naf_rev2.json (all ape code data)

JSON.parse(File.read(File.join(File.dirname(__FILE__), "../naf_rev2.json")), symbolize_names: true)
REGEX_SUBSECTION =

Regex to parse ape code subsection (notably in ape)

/\A(\d{2})\z/i
SUBSECTIONS =

List of ape code subsections

NAF_REV2[:subsections].map { |k, v| Subsection.new(k, v) }.freeze

Class Method Summary collapse

Class Method Details

.ape(code) ⇒ CodeApe::Subsection, ...

Takes a ape code and returns data if possible

Parameters:

  • code (String)

    The ape code to search

Returns:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/code_ape.rb', line 16

def self.ape(code)
  upcased_code = code&.upcase

  case upcased_code
  when REGEX_SUBSECTION
    SUBSECTIONS.find { |e| e.key == upcased_code }
  when REGEX_DIVISION
    DIVISIONS.find { |e| e.key == upcased_code || e.key.delete(".") == upcased_code }
  when REGEX_GROUP
    GROUPS.find { |e| e.key == upcased_code || e.key.delete(".") == upcased_code }
  when REGEX_CLASS
    CLASSES.find { |e| e.key == upcased_code || e.key.delete(".") == upcased_code }
  end
end

.section(code) ⇒ CodeApe::Section?

Takes a section code and returns data if possible

Parameters:

  • code (String)

    The section code to search

Returns:



34
35
36
# File 'lib/code_ape.rb', line 34

def self.section(code)
  SECTIONS.find { |e| e.key == code&.upcase }
end