onoma 0.3.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +3 -0
  3. data/.gitlab-ci.yml +14 -0
  4. data/Gemfile +2 -0
  5. data/Rakefile +3 -6
  6. data/bin/rake +29 -0
  7. data/config/locales/eng.yml +134 -46
  8. data/config/locales/fra.yml +233 -195
  9. data/db/migrate/20170904223101_add_cultivable_zone_registry.xml +4 -0
  10. data/db/migrate/20190718130243_remove_services_expenses.xml +5 -0
  11. data/db/migrate/20190801142431_remove_accounts_from_pcg82.xml +5 -0
  12. data/db/migrate/20190807125202_add_nature_to_product_natures.xml +326 -0
  13. data/db/migrate/20190823091727_fix-cubic-meter-per-hectare-symbol.xml +5 -0
  14. data/db/migrate/20190909150402_add_staff_supply_stock_account.xml +4 -0
  15. data/db/migrate/20190913102036_add_caliber_indicator.xml +4 -0
  16. data/db/migrate/20190917161215_add_missing_mass_area_density_units.xml +21 -0
  17. data/db/migrate/20190917161216_update_quintal_symbol.xml +4 -0
  18. data/db/migrate/20190917161217_adds_more_info_to_units.xml +133 -0
  19. data/db/migrate/20190918074757_add_new_accounts.xml +8 -0
  20. data/db/migrate/20191001122750_add_accounts_fixed_assets_related.xml +10 -0
  21. data/db/migrate/20191016152118_add_missing_document_templates.xml +6 -0
  22. data/db/migrate/20191028175001_add_short_balance_sheet.xml +4 -0
  23. data/db/migrate/20191029131921_add_vine_equipments.xml +117 -0
  24. data/db/migrate/20191112132413_remove_roller_from_product_natures.xml +5 -0
  25. data/db/migrate/20191113134626_add_nature_to_new_product_natures.xml +11 -0
  26. data/db/migrate/20191125133327_add_missing_units_and_indicators.xml +5 -0
  27. data/db/migrate/20200107095554_add_signed_field_to_document_nature.xml +9 -0
  28. data/db/migrate/20200305160358_add_varieties_for_phytosanitary.xml +11 -0
  29. data/db/migrate/20200421123503_add_type_to_categories_and_variants.xml +1136 -0
  30. data/db/migrate/20200514092205_add_liter_per_hectoliter_unit.xml +4 -0
  31. data/db/migrate/20200722091859_triticale_derivative_of.xml +5 -0
  32. data/db/migrate/20200925153320_fix_outgoing_payment_list_document_nature.xml +7 -0
  33. data/db/reference.xml +1434 -1265
  34. data/lib/onoma.rb +82 -24
  35. data/lib/onoma/item.rb +19 -3
  36. data/lib/onoma/migration/actions/base.rb +1 -5
  37. data/lib/onoma/migration/actions/item_change.rb +1 -5
  38. data/lib/onoma/migration/actions/item_creation.rb +2 -6
  39. data/lib/onoma/migration/actions/item_merging.rb +1 -5
  40. data/lib/onoma/migration/actions/item_removal.rb +1 -1
  41. data/lib/onoma/migration/actions/nomenclature_change.rb +1 -1
  42. data/lib/onoma/migration/actions/nomenclature_creation.rb +1 -1
  43. data/lib/onoma/migration/actions/nomenclature_removal.rb +1 -5
  44. data/lib/onoma/migration/actions/property_creation.rb +4 -4
  45. data/lib/onoma/migration/base.rb +38 -0
  46. data/lib/onoma/migrator.rb +13 -0
  47. data/lib/onoma/migrator/reference.rb +71 -0
  48. data/lib/onoma/migrator/translation.rb +76 -0
  49. data/lib/onoma/models/ability.rb +4 -0
  50. data/lib/onoma/models/account.rb +4 -0
  51. data/lib/onoma/models/accounting_system.rb +12 -0
  52. data/lib/onoma/models/activity_family.rb +4 -0
  53. data/lib/onoma/models/administrative_area.rb +4 -0
  54. data/lib/onoma/models/administrative_area_nature.rb +4 -0
  55. data/lib/onoma/models/analysis_nature.rb +4 -0
  56. data/lib/onoma/models/animal_life_state.rb +4 -0
  57. data/lib/onoma/models/cation_exchange_capacity_analysis_method.rb +4 -0
  58. data/lib/onoma/models/certification.rb +4 -0
  59. data/lib/onoma/models/certification_label.rb +4 -0
  60. data/lib/onoma/models/chemical_classification.rb +4 -0
  61. data/lib/onoma/models/chemical_element.rb +4 -0
  62. data/lib/onoma/models/country.rb +4 -0
  63. data/lib/onoma/models/crop_set.rb +4 -0
  64. data/lib/onoma/models/currency.rb +4 -0
  65. data/lib/onoma/models/delivery_mode.rb +4 -0
  66. data/lib/onoma/models/dimension.rb +4 -0
  67. data/lib/onoma/models/document_category.rb +4 -0
  68. data/lib/onoma/models/document_nature.rb +4 -0
  69. data/lib/onoma/models/entity_link_nature.rb +4 -0
  70. data/lib/onoma/models/event_nature.rb +4 -0
  71. data/lib/onoma/models/fence_perimeter.rb +4 -0
  72. data/lib/onoma/models/figure.rb +4 -0
  73. data/lib/onoma/models/fiscal_position.rb +4 -0
  74. data/lib/onoma/models/guide_nature.rb +4 -0
  75. data/lib/onoma/models/identifier_nature.rb +4 -0
  76. data/lib/onoma/models/indicator.rb +7 -0
  77. data/lib/onoma/models/issue_nature.rb +4 -0
  78. data/lib/onoma/models/land.rb +4 -0
  79. data/lib/onoma/models/language.rb +4 -0
  80. data/lib/onoma/models/mammalia_birth_condition.rb +4 -0
  81. data/lib/onoma/models/mammalia_reproduction_state.rb +4 -0
  82. data/lib/onoma/models/molecule.rb +4 -0
  83. data/lib/onoma/models/net_service.rb +4 -0
  84. data/lib/onoma/models/opportunity_origin.rb +4 -0
  85. data/lib/onoma/models/phosphorus_analysis_method.rb +4 -0
  86. data/lib/onoma/models/plant_life_state.rb +4 -0
  87. data/lib/onoma/models/plant_reproduction_state.rb +4 -0
  88. data/lib/onoma/models/plants_growth_level.rb +4 -0
  89. data/lib/onoma/models/procedure_action.rb +4 -0
  90. data/lib/onoma/models/procedure_category.rb +4 -0
  91. data/lib/onoma/models/procedure_nature.rb +4 -0
  92. data/lib/onoma/models/procedure_role.rb +4 -0
  93. data/lib/onoma/models/product_nature.rb +4 -0
  94. data/lib/onoma/models/product_nature_category.rb +4 -0
  95. data/lib/onoma/models/product_nature_variant.rb +4 -0
  96. data/lib/onoma/models/production_nature.rb +4 -0
  97. data/lib/onoma/models/production_system.rb +4 -0
  98. data/lib/onoma/models/production_usage.rb +4 -0
  99. data/lib/onoma/models/residue_elimination_method.rb +4 -0
  100. data/lib/onoma/models/role.rb +4 -0
  101. data/lib/onoma/models/running_cost.rb +4 -0
  102. data/lib/onoma/models/sex.rb +4 -0
  103. data/lib/onoma/models/soil_cultural_state.rb +4 -0
  104. data/lib/onoma/models/soil_nature.rb +4 -0
  105. data/lib/onoma/models/spatial_reference_system.rb +4 -0
  106. data/lib/onoma/models/tax.rb +4 -0
  107. data/lib/onoma/models/tax_nature.rb +4 -0
  108. data/lib/onoma/models/unit.rb +4 -0
  109. data/lib/onoma/models/variety.rb +31 -0
  110. data/lib/onoma/models/working_set.rb +4 -0
  111. data/lib/onoma/nomenclature.rb +19 -23
  112. data/lib/onoma/{database.rb → nomenclature_set.rb} +25 -57
  113. data/lib/onoma/{property.rb → property_nature.rb} +5 -8
  114. data/lib/onoma/record/base.rb +15 -0
  115. data/lib/onoma/reflection.rb +3 -3
  116. data/lib/onoma/version.rb +3 -1
  117. data/onoma.gemspec +16 -17
  118. metadata +119 -30
  119. data/db/db.xml +0 -0
  120. data/lib/onoma/migration.rb +0 -122
  121. data/lib/onoma/migration/actions.rb +0 -9
data/db/db.xml DELETED
File without changes
@@ -1,122 +0,0 @@
1
- require 'active_support/core_ext/string'
2
- require 'active_support/core_ext/array'
3
- require 'benchmark'
4
-
5
- class ::Hash
6
- def simple_print
7
- map { |k, v| "#{k}: #{v.inspect}" }.join(', ')
8
- end
9
- end
10
-
11
- module Onoma
12
- # Migration instance represents a migration file
13
- class Migration
14
- class << self
15
- # Parse en XML migration to a Onoma::Migration object
16
- def parse(file)
17
- # puts "Parse #{file}"
18
- f = File.open(file, 'rb')
19
- document = Nokogiri::XML(f) do |config|
20
- config.strict.nonet.noblanks.noent
21
- end
22
- f.close
23
- root = document.root
24
- number = file.basename.to_s.split('_').first.to_i
25
- new(number, root['name']) do |m|
26
- root.children.each do |child|
27
- next unless child.is_a? Nokogiri::XML::Element
28
- m.add "Onoma::Migration::Actions::#{child.name.underscore.classify}".constantize.new(child)
29
- end
30
- end
31
- end
32
- end
33
-
34
- attr_reader :number, :name
35
-
36
- def initialize(number, name)
37
- @number = number
38
- @name = name
39
- @actions = []
40
- yield self if block_given?
41
- end
42
-
43
- def label
44
- "#{number} #{name}"
45
- end
46
-
47
- def add(action)
48
- @actions << action
49
- end
50
-
51
- def each_action(&block)
52
- @actions.each(&block)
53
- end
54
-
55
- def inspect
56
- "#<#{self.class.name}:#{format('%#x', object_id)} ##{number} #{name.inspect} (#{@actions.size} actions)>"
57
- end
58
-
59
- def migrate(conn)
60
- puts ''
61
- puts "== #{label}: migrating ".ljust(80, '=')
62
- duration = Benchmark.measure do
63
- each_action do |action|
64
- puts "-- #{action.label}"
65
- conn.exec_action(action)
66
- end
67
- conn.version = number
68
- end
69
- puts "== #{label}: migrated (#{duration.real.round(4)}s)".ljust(80, '=')
70
- # puts "Write DB in #{Onoma.reference_path.relative_path_from(Onoma.root)}".yellow
71
- if @steps
72
- versions_dir = Onoma.root.join('tmp', 'versions')
73
- FileUtils.mkdir_p(versions_dir)
74
- conn.copy(versions_dir.join("#{number}.xml"))
75
- end
76
- end
77
- end
78
-
79
- # Migrator is a tool class to launch migrations
80
- class Migrator
81
- class << self
82
- def migrate
83
- Onoma::Migrator.new(Onoma.reference_path, Onoma.migrations_path).migrate
84
- end
85
- end
86
-
87
- attr_accessor :database_path, :migrations_path
88
-
89
- def initialize(database_path, migrations_path)
90
- @database_path = database_path
91
- @migrations_path = migrations_path
92
- end
93
-
94
- # Returns list of Onoma::Migration
95
- def migrations
96
- Dir.glob(@migrations_path.join('*.xml')).sort.collect do |f|
97
- Onoma::Migration.parse(Pathname.new(f))
98
- end
99
- end
100
-
101
- # Returns list of migrations since last done
102
- def missing_migrations
103
- last_version = connection.version
104
- migrations.select do |m|
105
- m.number > last_version
106
- end
107
- end
108
-
109
- def migrate
110
- missing_migrations.each do |migration|
111
- migration.migrate(connection)
112
- end
113
- connection.write
114
- end
115
-
116
- def connection
117
- @connection ||= Database.open(@database_path)
118
- end
119
- end
120
- end
121
-
122
- require 'onoma/migration/actions'
@@ -1,9 +0,0 @@
1
- require 'onoma/migration/actions/base'
2
- require 'onoma/migration/actions/item_change'
3
- require 'onoma/migration/actions/item_creation'
4
- require 'onoma/migration/actions/item_merging'
5
- require 'onoma/migration/actions/item_removal'
6
- require 'onoma/migration/actions/nomenclature_change'
7
- require 'onoma/migration/actions/nomenclature_creation'
8
- require 'onoma/migration/actions/nomenclature_removal'
9
- require 'onoma/migration/actions/property_creation'