clir-data_manager 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.travis.yml +6 -0
- data/CHANGELOG.md +29 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +44 -0
- data/Manual/Manuel_fr.md +784 -0
- data/Manual/Manuel_fr.pdf +0 -0
- data/README.md +279 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/clir-data_manager.gemspec +34 -0
- data/lib/clir/data_manager/Displayer.rb +30 -0
- data/lib/clir/data_manager/Editor.rb +208 -0
- data/lib/clir/data_manager/Manager.rb +1184 -0
- data/lib/clir/data_manager/Periode.rb +366 -0
- data/lib/clir/data_manager/PrecedencedList.rb +98 -0
- data/lib/clir/data_manager/Property.rb +438 -0
- data/lib/clir/data_manager/Validator.rb +157 -0
- data/lib/clir/data_manager/constants.rb +14 -0
- data/lib/clir/data_manager/errors_and_messages.rb +123 -0
- data/lib/clir/data_manager/module_constants.rb +13 -0
- data/lib/clir/data_manager/version.rb +5 -0
- data/lib/clir/data_manager.rb +21 -0
- metadata +114 -0
@@ -0,0 +1,123 @@
|
|
1
|
+
module Clir
|
2
|
+
module DataManager
|
3
|
+
|
4
|
+
ERRORS__ = {
|
5
|
+
'fr' => {
|
6
|
+
undefined_class: 'La classe %s est indéfinie…',
|
7
|
+
require_data_properties: 'La classe %s doit définir DATA_PROPERTIES.',
|
8
|
+
require_save_system: 'La class %s doit définir @@save_system dans la classe propriétaire du manager pour définir le système d’enregistrement à utiliser (:card, :file ou :conf — cf. manuel)',
|
9
|
+
require_save_format: 'La class %s doit définir @@save_format, le format de sauvegarde, entre :yaml et :csv',
|
10
|
+
require_save_location:'La class %s doit définir @@save_location, le lieu de sauvegarde des données (fichier ou dossier)',
|
11
|
+
bad_save_system: '%s@@save_system doit valoir :card (enregistrement par fiche) :file (enregistrement dans un unique fichier) ou :conf (par configuration)',
|
12
|
+
require_save_location_folder: '%s@@save_location devrait être un dossier (pour enregistrer les fiches de données)',
|
13
|
+
require_save_location_file: '%s@@save_location doit être un fichier, pas un dossier, pour :file et :conf.',
|
14
|
+
bas_save_format: '%s@@save_format doit être :csv ou :yaml exclusivement.',
|
15
|
+
no_csv_format_with_card: 'L’enregistrement par fiche (:card) ne permet pas le format :csv.',
|
16
|
+
require_relative_class: 'Pour la propriété "%s", la classe relative doit absolument exister, correspondant au nom de la propriété sans _id(s).',
|
17
|
+
choice_unfound_in_choices_list: "Impossible de trouver la valeur (:value) '%s' dans la liste des valeurs de la propriété %s (%s)…",
|
18
|
+
unknown_if_attribut: "Je ne sais pas traiter la valeur %s pour l'attribut :if…",
|
19
|
+
unable_to_get_class_from_class_min: "Impossible de tirer la classe relative de '%s'%s",
|
20
|
+
specs_undefined: "La propriété :%s doit définir ses :specs",
|
21
|
+
value_doesnt_respond_to: "La valeur %s:%s ne répond pas à %s",
|
22
|
+
no_name_for_property: "La propriété %s doit absolument définir son :name (si c'est une procédure, s'assurer qu'elle retourne bien une valeur).",
|
23
|
+
unknown_values_method: "Personne ne semble comprendre la méthode %s…",
|
24
|
+
no_time_property: "La classe %s n'utilisant aucune des propriétés :date, :created_at ou :time, il faut qu'elle définisse la propriété à prendre comme temps de référence (en mettant 'property_time:true' dans la définission de la propriété) ou en n'utilisant pas de période sur ces instances.",
|
25
|
+
invalid_property: "La propriété %s est invalide : %s.",
|
26
|
+
|
27
|
+
required_property: "La propriété %s est absolument requise.",
|
28
|
+
invalid_mail: "Le mail '%s' est invalide.",
|
29
|
+
invalid_date: "La date '%s' est invalide (format requis : JJ/MM/AAAA)",
|
30
|
+
invalid_url: "L'URL '%s' est invalide : %s.",
|
31
|
+
invalid_people: "La donnée %s est invalide : %s…",
|
32
|
+
too_long_name: "Le nom '%s' contient trop de mots pour être un nom",
|
33
|
+
bad_chars_in_name: "Le nom '%s' contient des caractères impossibles dans un nom",
|
34
|
+
|
35
|
+
},
|
36
|
+
'us' => {
|
37
|
+
undefined_class: 'Class %s is undefined…',
|
38
|
+
require_data_properties: 'Class %s should define DATA_PROPERTIES.',
|
39
|
+
require_save_system: 'Owner class %s should define @@save_system, the save system to use (:card, :file ou :conf — see manual)',
|
40
|
+
require_save_format: 'Owner class %s should define @@save_format, among :yaml and :csv',
|
41
|
+
require_save_location:'Owner class %s should define @@save_location, this file or the folder where save data.',
|
42
|
+
bad_save_system: '%s@@save_system should equal :card (save in card) :file (save in a one file) or :conf (configuration)',
|
43
|
+
require_save_location_folder: '%s@@save_location should be a folder (where save cards)',
|
44
|
+
require_save_location_file: '%s@@save_location should be a file, not a folder, for :file et :conf save_system.',
|
45
|
+
bas_save_format: '%s@@save_format should be exclusively :csv or :yaml.',
|
46
|
+
no_csv_format_with_card: 'Save system by card (:card) does not allow :csv format.',
|
47
|
+
require_relative_class: 'For property "%s", a relative class should be defined, corresponding to property name.',
|
48
|
+
choice_unfound_in_choices_list: "Unfound value (:value) '%s' in values of %s property… (%s)",
|
49
|
+
unknown_if_attribut: "Can't treat %s value for :if attribute…",
|
50
|
+
unable_to_get_class_from_class_min: "Unable to get relative class from '%s'%s",
|
51
|
+
specs_undefined: ":%s property should defined its :specs",
|
52
|
+
value_doesnt_respond_to: "%s:%s value doesn't respond to %s",
|
53
|
+
no_name_for_property: "%s property should defined its :name attribute (if it's a Proc, make sure it returns a value).",
|
54
|
+
unknown_values_method: "Can't deal with %s values method…",
|
55
|
+
no_time_property: "Class %s defines none of these properties :date, :created_at or :time, so one should define the reference property to take as time (by setting 'property_time:true' in its attributes) or do not use periode filter with instances of this class.",
|
56
|
+
invalid_property: "%s property is invalid: %s.",
|
57
|
+
|
58
|
+
required_property: "Property %s is required.",
|
59
|
+
invalid_mail: "Invalid email address '%s'.",
|
60
|
+
invalid_date: "Invalid date '%s' (format: MM/DD/YYYY)",
|
61
|
+
invalid_url: "Invalid URL '%s'. Reason: %s.",
|
62
|
+
invalid_people: "Invalid data: %s (%s)…",
|
63
|
+
too_long_name: "The name '%s' contains too much word to be a real name",
|
64
|
+
bad_chars_in_name: "The name '%s' contains unexpected characters",
|
65
|
+
}
|
66
|
+
|
67
|
+
}
|
68
|
+
|
69
|
+
MESSAGES__ = {
|
70
|
+
'fr' => {
|
71
|
+
date_format: '%d/%m/%Y',
|
72
|
+
reg_date_format: /^[0-3]?[0-9]\/[0-1]?[0-9]\/2[0-5][0-9][0-9]$/,
|
73
|
+
cancel: 'Renoncer',
|
74
|
+
choose: 'Choisir',
|
75
|
+
create_new: 'Créer nouvel item',
|
76
|
+
define: 'Définir',
|
77
|
+
define_thing: 'Définir %s',
|
78
|
+
finir: 'Finir',
|
79
|
+
no: 'Non',
|
80
|
+
not_treated: '%s non traité',
|
81
|
+
save: 'Enregistrer',
|
82
|
+
yes: 'Oui',
|
83
|
+
still_required_values: "valeurs requises à définir",
|
84
|
+
all_required_data_must_be_defined: "Toutes les données requises doivent être définies.",
|
85
|
+
q_confirm_data: 'Confirmez-vous ces données ?',
|
86
|
+
data_not_saved_cancel: "Les données n'ont pas été sauvegardées. Voulez-vous vraiment renoncer et les perdre ?",
|
87
|
+
item_created: "Nouveau %{element} créé avec succès !",
|
88
|
+
item_created_fem: "Nouvelle %{element} créée avec succès !",
|
89
|
+
item_updated: "%s #%s actualisé.",
|
90
|
+
item_updated_fem: "%s #%s actualisée.",
|
91
|
+
no_items_to_display: "Aucun élément à afficher.",
|
92
|
+
|
93
|
+
},
|
94
|
+
'us' => {
|
95
|
+
date_format: '%m/%d/%Y',
|
96
|
+
reg_date_format: /^[0-1]?[0-9]\/[0-3]?[0-9]\/2[0-5][0-9][0-9]$/,
|
97
|
+
cancel: 'Cancel',
|
98
|
+
choose: 'Choose',
|
99
|
+
create_new: 'Create new item',
|
100
|
+
define: 'Define',
|
101
|
+
define_thing: 'Définir %s',
|
102
|
+
finir: 'Complete',
|
103
|
+
no: 'No',
|
104
|
+
not_treated: '%s not traited',
|
105
|
+
save: 'Save',
|
106
|
+
yes: 'Yes',
|
107
|
+
still_required_values: "still required values",
|
108
|
+
all_required_data_must_be_defined: "All required data must be defined.",
|
109
|
+
q_confirm_data: 'Confirm theses data?',
|
110
|
+
data_not_saved_cancel: "Data not saved. Do you really want to cancel?",
|
111
|
+
item_created: "New %{element} created with success!",
|
112
|
+
item_created_fem: "New %{element} created with success!",
|
113
|
+
item_updated: "%s #%s updated.",
|
114
|
+
item_updated_fem: "%s #%s updated.",
|
115
|
+
no_items_to_display: "No item to display.",
|
116
|
+
}
|
117
|
+
}
|
118
|
+
|
119
|
+
ERRORS = ERRORS__[LANG]
|
120
|
+
MESSAGES = MSG = MESSAGES__[LANG]
|
121
|
+
|
122
|
+
end #/module DataManager
|
123
|
+
end #/module Clir
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Pour pouvoir exposer publiquement, au niveau d'une classe,
|
2
|
+
# les constantes utiles
|
3
|
+
module ClirDataManagerConstants
|
4
|
+
|
5
|
+
# --- Properties Constants ---
|
6
|
+
REQUIRED = 1
|
7
|
+
DISPLAYABLE = 2
|
8
|
+
EDITABLE = 4
|
9
|
+
REMOVABLE = 8
|
10
|
+
TABLEIZABLE = 16 # pour affiche pluriel dans une Clir::Table
|
11
|
+
|
12
|
+
ALL_SPECS = ALL = REQUIRED|DISPLAYABLE|EDITABLE|REMOVABLE|TABLEIZABLE
|
13
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'csv'
|
3
|
+
require 'clir'
|
4
|
+
require "clir/data_manager/version"
|
5
|
+
require 'clir/data_manager/module_constants'
|
6
|
+
require 'clir/data_manager/constants'
|
7
|
+
require 'clir/data_manager/errors_and_messages'
|
8
|
+
require 'clir/data_manager/Periode'
|
9
|
+
require 'clir/data_manager/Manager'
|
10
|
+
require 'clir/data_manager/Property'
|
11
|
+
require 'clir/data_manager/Displayer'
|
12
|
+
require 'clir/data_manager/Editor'
|
13
|
+
require 'clir/data_manager/Validator'
|
14
|
+
require 'clir/data_manager/PrecedencedList'
|
15
|
+
|
16
|
+
module Clir
|
17
|
+
module DataManager
|
18
|
+
class Error < StandardError; end
|
19
|
+
# Your code goes here...
|
20
|
+
end
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: clir-data_manager
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- PhilippePerret
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-07-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: clir
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.4'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.4'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '5.10'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.10'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest-color
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5'
|
55
|
+
description: This gem provides useful Classes and methods to deal with instances properties
|
56
|
+
edition and display
|
57
|
+
email:
|
58
|
+
- philippe.perret@yahoo.fr
|
59
|
+
executables: []
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- ".gitignore"
|
64
|
+
- ".travis.yml"
|
65
|
+
- CHANGELOG.md
|
66
|
+
- Gemfile
|
67
|
+
- Gemfile.lock
|
68
|
+
- Manual/Manuel_fr.md
|
69
|
+
- Manual/Manuel_fr.pdf
|
70
|
+
- README.md
|
71
|
+
- Rakefile
|
72
|
+
- bin/console
|
73
|
+
- bin/setup
|
74
|
+
- clir-data_manager.gemspec
|
75
|
+
- lib/clir/data_manager.rb
|
76
|
+
- lib/clir/data_manager/Displayer.rb
|
77
|
+
- lib/clir/data_manager/Editor.rb
|
78
|
+
- lib/clir/data_manager/Manager.rb
|
79
|
+
- lib/clir/data_manager/Periode.rb
|
80
|
+
- lib/clir/data_manager/PrecedencedList.rb
|
81
|
+
- lib/clir/data_manager/Property.rb
|
82
|
+
- lib/clir/data_manager/Validator.rb
|
83
|
+
- lib/clir/data_manager/constants.rb
|
84
|
+
- lib/clir/data_manager/errors_and_messages.rb
|
85
|
+
- lib/clir/data_manager/module_constants.rb
|
86
|
+
- lib/clir/data_manager/version.rb
|
87
|
+
homepage: https://github.com/PhilippePerret/clir-data_manager
|
88
|
+
licenses:
|
89
|
+
- Nonstandard
|
90
|
+
metadata:
|
91
|
+
allowed_push_host: https://rubygems.org
|
92
|
+
homepage_uri: https://github.com/PhilippePerret/clir-data_manager
|
93
|
+
source_code_uri: https://github.com/PhilippePerret/clir-data_manager
|
94
|
+
changelog_uri: https://github.com/PhilippePerret/clir-data_manager/CHANGELOG.md
|
95
|
+
post_install_message:
|
96
|
+
rdoc_options: []
|
97
|
+
require_paths:
|
98
|
+
- lib
|
99
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.3.0
|
104
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0'
|
109
|
+
requirements: []
|
110
|
+
rubygems_version: 3.5.15
|
111
|
+
signing_key:
|
112
|
+
specification_version: 4
|
113
|
+
summary: Properties Manager for classes and instances
|
114
|
+
test_files: []
|