Module: Onoma
- Defined in:
- lib/onoma/record/base.rb,
lib/onoma.rb,
lib/onoma/item.rb,
lib/onoma/version.rb,
lib/onoma/migrator.rb,
lib/onoma/relation.rb,
lib/onoma/reference.rb,
lib/onoma/models/sex.rb,
lib/onoma/models/tax.rb,
lib/onoma/reflection.rb,
lib/onoma/models/role.rb,
lib/onoma/models/unit.rb,
lib/onoma/nomenclature.rb,
lib/onoma/models/figure.rb,
lib/onoma/migration/base.rb,
lib/onoma/models/ability.rb,
lib/onoma/models/account.rb,
lib/onoma/models/country.rb,
lib/onoma/models/variety.rb,
lib/onoma/models/crop_set.rb,
lib/onoma/models/currency.rb,
lib/onoma/models/language.rb,
lib/onoma/models/molecule.rb,
lib/onoma/property_nature.rb,
lib/onoma/models/dimension.rb,
lib/onoma/models/indicator.rb,
lib/onoma/nomenclature_set.rb,
lib/onoma/models/tax_nature.rb,
lib/onoma/migrator/reference.rb,
lib/onoma/models/net_service.rb,
lib/onoma/models/soil_nature.rb,
lib/onoma/models/working_set.rb,
lib/onoma/models/event_nature.rb,
lib/onoma/models/guide_nature.rb,
lib/onoma/models/issue_nature.rb,
lib/onoma/models/running_cost.rb,
lib/onoma/migrator/translation.rb,
lib/onoma/models/delivery_mode.rb,
lib/onoma/models/procedure_role.rb,
lib/onoma/models/product_nature.rb,
lib/onoma/migration/actions/base.rb,
lib/onoma/models/activity_family.rb,
lib/onoma/models/analysis_nature.rb,
lib/onoma/models/document_nature.rb,
lib/onoma/models/fence_perimeter.rb,
lib/onoma/models/fiscal_position.rb,
lib/onoma/models/chemical_element.rb,
lib/onoma/models/plant_life_state.rb,
lib/onoma/models/procedure_action.rb,
lib/onoma/models/procedure_nature.rb,
lib/onoma/models/production_usage.rb,
lib/onoma/models/accounting_system.rb,
lib/onoma/models/animal_life_state.rb,
lib/onoma/models/document_category.rb,
lib/onoma/models/identifier_nature.rb,
lib/onoma/models/production_nature.rb,
lib/onoma/models/production_system.rb,
lib/onoma/models/entity_link_nature.rb,
lib/onoma/models/opportunity_origin.rb,
lib/onoma/models/procedure_category.rb,
lib/onoma/models/administrative_area.rb,
lib/onoma/models/plants_growth_level.rb,
lib/onoma/models/soil_cultural_state.rb,
lib/onoma/migration/actions/item_change.rb,
lib/onoma/models/product_nature_variant.rb,
lib/onoma/migration/actions/item_merging.rb,
lib/onoma/migration/actions/item_removal.rb,
lib/onoma/models/chemical_classification.rb,
lib/onoma/models/product_nature_category.rb,
lib/onoma/migration/actions/item_creation.rb,
lib/onoma/models/mammalia_birth_condition.rb,
lib/onoma/models/plant_reproduction_state.rb,
lib/onoma/models/spatial_reference_system.rb,
lib/onoma/models/production_support_nature.rb,
lib/onoma/migration/actions/property_change.rb,
lib/onoma/models/administrative_area_nature.rb,
lib/onoma/models/phosphorus_analysis_method.rb,
lib/onoma/models/residue_elimination_method.rb,
lib/onoma/models/mammalia_reproduction_state.rb,
lib/onoma/migration/actions/property_creation.rb,
lib/onoma/migration/actions/nomenclature_change.rb,
lib/onoma/migration/actions/nomenclature_removal.rb,
lib/onoma/migration/actions/nomenclature_creation.rb,
lib/onoma/models/cation_exchange_capacity_analysis_method.rb
Overview
rubocop:disable Style/MissingRespondToMissing
Defined Under Namespace
Modules: Migration, Migrator, Record Classes: Ability, Account, AccountingSystem, ActivityFamily, AdministrativeArea, AdministrativeAreaNature, AnalysisNature, AnimalLifeState, CationExchangeCapacityAnalysisMethod, ChemicalClassification, ChemicalElement, Country, CropSet, Currency, DeliveryMode, Dimension, DocumentCategory, DocumentNature, EntityLinkNature, Error, EventNature, FencePerimeter, Figure, FiscalPosition, GuideNature, IdentifierNature, Indicator, InvalidProperty, InvalidPropertyNature, IssueNature, Item, ItemNotFound, Language, MammaliaBirthCondition, MammaliaReproductionState, MissingChoices, MissingNomenclature, Molecule, NetService, Nomenclature, NomenclatureSet, OpportunityOrigin, PhosphorusAnalysisMethod, PlantLifeState, PlantReproductionState, PlantsGrowthLevel, ProcedureAction, ProcedureCategory, ProcedureNature, ProcedureRole, ProductNature, ProductNatureCategory, ProductNatureVariant, ProductionNature, ProductionSupportNature, ProductionSystem, ProductionUsage, PropertyNature, Reference, Reflection, Relation, ResidueEliminationMethod, Role, RunningCost, Sex, SoilCulturalState, SoilNature, SpatialReferenceSystem, Tax, TaxNature, Unit, Variety, WorkingSet
Constant Summary collapse
- XMLNS =
'http://www.ekylibre.org/XML/2013/nomenclatures'.freeze
- NS_SEPARATOR =
'-'.freeze
- PROPERTY_TYPES =
%i[boolean item item_list choice choice_list string_list date decimal integer nomenclature string symbol].freeze
- VERSION =
'0.9.2'
Class Method Summary collapse
-
.[](index) ⇒ Object
Give access to named nomenclatures delegate :[], to: :set.
- .all ⇒ Object
- .database_path ⇒ Object
-
.each(&block) ⇒ Object
Browse all nomenclatures.
- .escape_key(key) ⇒ Object
-
.find(*args) ⇒ Object
Give access to named nomenclatures.
- .find_or_initialize(name) ⇒ Object
-
.load! ⇒ Object
Force loading of nomenclatures.
- .load_locales ⇒ Object
-
.migrations ⇒ Object
Returns list of Onoma::Migration.
- .migrations_path ⇒ Object
-
.missing_migrations ⇒ Object
Returns list of migrations since last done.
-
.names ⇒ Object
Returns the names of the nomenclatures.
- .reference_document ⇒ Object
- .reference_path ⇒ Object
-
.reference_version ⇒ Object
Returns version of DB.
- .root ⇒ Object
- .set ⇒ Object
Class Method Details
.[](index) ⇒ Object
Give access to named nomenclatures delegate :[], to: :set
106 107 108 |
# File 'lib/onoma.rb', line 106 def [](index) set[index] end |
.all ⇒ Object
100 101 102 |
# File 'lib/onoma.rb', line 100 def all set.nomenclatures end |
.database_path ⇒ Object
50 51 52 |
# File 'lib/onoma.rb', line 50 def database_path root.join('db') end |
.each(&block) ⇒ Object
Browse all nomenclatures
134 135 136 |
# File 'lib/onoma.rb', line 134 def each(&block) set.each(&block) end |
.escape_key(key) ⇒ Object
42 43 44 |
# File 'lib/onoma.rb', line 42 def escape_key(key) key.to_s.gsub('.', '-').to_sym end |
.find(*args) ⇒ Object
Give access to named nomenclatures
111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/onoma.rb', line 111 def find(*args) args. name = args.shift nomenclature = find_or_initialize(name) if args.empty? return nomenclature elsif args.size == 1 return nomenclature.find(args.shift) if nomenclature end nil end |
.find_or_initialize(name) ⇒ Object
124 125 126 |
# File 'lib/onoma.rb', line 124 def find_or_initialize(name) set[name] || set.load_data_from_xml(name) end |
.load! ⇒ Object
Force loading of nomenclatures
129 130 131 |
# File 'lib/onoma.rb', line 129 def load! @@set = NomenclatureSet.load_file(reference_path) end |
.load_locales ⇒ Object
142 143 144 |
# File 'lib/onoma.rb', line 142 def load_locales I18n.load_path.concat(Dir.glob(Onoma.root.join('config', 'locales', '*.yml'))) end |
.migrations ⇒ Object
Returns list of Onoma::Migration
81 82 83 84 85 |
# File 'lib/onoma.rb', line 81 def migrations Dir.glob(migrations_path.join('*.xml')).sort.collect do |f| Onoma::Migration::Base.parse(Pathname.new(f)) end end |
.migrations_path ⇒ Object
54 55 56 |
# File 'lib/onoma.rb', line 54 def migrations_path database_path.join('migrate') end |
.missing_migrations ⇒ Object
Returns list of migrations since last done
88 89 90 91 92 93 |
# File 'lib/onoma.rb', line 88 def missing_migrations last_version = reference_version migrations.select do |m| m.number > last_version end end |
.names ⇒ Object
Returns the names of the nomenclatures
96 97 98 |
# File 'lib/onoma.rb', line 96 def names set.nomenclature_names end |
.reference_document ⇒ Object
69 70 71 72 73 74 75 76 77 78 |
# File 'lib/onoma.rb', line 69 def reference_document unless @document f = File.open(reference_path, 'rb') @document = Nokogiri::XML(f) do |config| config.strict.nonet.noblanks.noent end f.close end @document end |
.reference_path ⇒ Object
58 59 60 |
# File 'lib/onoma.rb', line 58 def reference_path database_path.join('reference.xml') end |
.reference_version ⇒ Object
Returns version of DB
63 64 65 66 67 |
# File 'lib/onoma.rb', line 63 def reference_version return 0 unless reference_path.exist? reference_document.root['version'].to_i end |
.root ⇒ Object
46 47 48 |
# File 'lib/onoma.rb', line 46 def root Pathname.new(__FILE__).dirname.dirname end |
.set ⇒ Object
138 139 140 |
# File 'lib/onoma.rb', line 138 def set @@set ||= NomenclatureSet.new end |