mangusta 0.4.1 → 0.4.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 15eb923a10368b0469a56d1f2bd242d4cb4db9b620507a112b88019513545f8a
4
- data.tar.gz: 07c350dee9fd7b7030dc2af7bd8d8e97629644de1eb7eef1678f82aef53a1cda
3
+ metadata.gz: 4d2f20cc69e65ae5f20dc801665a0251238fb74ddb128a3952616c62145aac15
4
+ data.tar.gz: 04bcf00cb49c97528926b9fd5b0338f92718a99dfc35c68ca570c1ea811e076e
5
5
  SHA512:
6
- metadata.gz: '091623e71fef9b3cc84a3134bafdcc9fe324389bdbdbcc8fd7f4b40db0ee4f3ffd81b8bcf470d2a05b856364ffa547ce39c9c9d996d5f95ad71b136b77db9a34'
7
- data.tar.gz: c97bb990f0b7e0cdffd0e29ec1c0222e7f881ab989967605aa59e839e35a867fc4d397056fb9b438921494fd0292c2131f58ac9001de0d7343ba1075e20ebd62
6
+ metadata.gz: 4a913616f90146b989f11582d7d2c4a401983cc1841f3f87c4f5d63c555a401e5f5dac6177e280f7671b6ec49ebf5ad0e3cbba2d060bd9be1ad1ba7196ecd79a
7
+ data.tar.gz: 023f8792d2c6d8d45310a7e3c09def270db9c6a3966c7a97bc5308e32a213b3b03dd18fabc4f427b2ae8060dce1101c967fe792082b3518f050930bc91685d21
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /.italian-ruby/
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
@@ -1,6 +1,7 @@
1
- require "mongo"
2
- require "italian/ruby/core_ext/gems/bson"
3
- require_relative "mangusta/core_ext/mongo"
1
+ richiedi "bson"
2
+ richiedi "mongo"
3
+ richiedi "italian/ruby/core_ext/gems/bson"
4
+ richiedi_relativo "mangusta/core_ext/mongo"
4
5
  richiedi_tutti "mangusta"
5
6
 
6
7
  modulo Mangusta
@@ -19,8 +20,8 @@ modulo Mangusta
19
20
  ritorna connessione se connessione.esiste?
20
21
 
21
22
  se_stessa.connessione = Mongo::Client.nuovo(
22
- [ parametri.ottieni(:indirizzo) ],
23
- database: parametri.ottieni(:base_dati))
23
+ [ parametri.prendi(:indirizzo) ],
24
+ database: parametri.prendi(:base_dati))
24
25
 
25
26
  se_stessa.base_dati = connessione.database
26
27
  se_stessa.collezioni = base_dati.collections
@@ -13,7 +13,9 @@ modulo Mangusta
13
13
  # includi Mangusta::Documento
14
14
  #
15
15
  # campo :titolo, valore_iniziale: "Il Signore degli Anelli"
16
- # appartiene_a :autore, classe: "Autore"
16
+ # appartiene_a :autore,
17
+ # ripostiglio: "RipostiglioAutori",
18
+ # nome_campo: :id_autore
17
19
  # fine
18
20
  #
19
21
  # Il metodo di classe `campo` ha come primo argomento obbligatorio il nome del campo,
@@ -120,7 +122,7 @@ modulo Mangusta
120
122
  # Accede al valore dell'attributo originale del documento,
121
123
  # passando oltre gli accessori, per accedere a campi non modellati.
122
124
  definisci [](attributo)
123
- @_attributi_originali.ottieni attributo
125
+ @_attributi_originali.prendi attributo
124
126
  fine
125
127
 
126
128
  ##
@@ -150,7 +152,7 @@ modulo Mangusta
150
152
  ##
151
153
  # Genera il puntatore al documento padre.
152
154
  definisci _genera_documento_padre(**attributi)
153
- @_padre = attributi.ottieni :_padre
155
+ @_padre = attributi.prendi :_padre
154
156
  fine
155
157
 
156
158
  ##
@@ -11,7 +11,7 @@ modulo Mangusta
11
11
  # Imposta nome e valore iniziale.
12
12
  definisci inizializzatore(nome, **parametri)
13
13
  se_stesso.nome = nome
14
- se_stesso.valore_iniziale = parametri.ottieni(:valore_iniziale, nullo)
14
+ se_stesso.valore_iniziale = parametri.prendi(:valore_iniziale, nullo)
15
15
  fine
16
16
 
17
17
  ##
@@ -34,18 +34,18 @@ modulo Mangusta
34
34
 
35
35
  @campi_richiesti.per_ognuno esegui |campo_richiesto|
36
36
  prossimo se campo_richiesto.non_è_un? Simbolo
37
- esposizione_filtrata.deposita campo_richiesto, @documento_convertito.ottieni(campo_richiesto, nullo)
37
+ esposizione_filtrata.deposita campo_richiesto, @documento_convertito.prendi(campo_richiesto, nullo)
38
38
  fine
39
39
 
40
40
  @relazioni_dirette.per_ognuna esegui |relazione_richiesta|
41
41
  alza Relazione::NonInclusa, "per poter esporre la relazione `#{relazione_richiesta}` è necessario prima includerla" se
42
42
  relazione_richiesta.non_è_un? Simbolo o @documento_convertito.non_ha_chiave? relazione_richiesta
43
- esposizione_filtrata.deposita relazione_richiesta, @documento_convertito.ottieni(relazione_richiesta)
43
+ esposizione_filtrata.deposita relazione_richiesta, @documento_convertito.prendi(relazione_richiesta)
44
44
  fine
45
45
 
46
46
  @relazioni_richieste.per_ognuna esegui |nome_relazione, campi_relazione_richiesti|
47
47
  prossima se campi_relazione_richiesti.non_è_una? Lista
48
- valore_relazione = @documento_convertito.ottieni nome_relazione, nulla
48
+ valore_relazione = @documento_convertito.prendi nome_relazione, nulla
49
49
  se valore_relazione.è_una? Mappa
50
50
  esposizione_filtrata.deposita nome_relazione, valore_relazione
51
51
  .seleziona { |chiave, valore| chiave.in? campi_relazione_richiesti }
@@ -12,8 +12,8 @@ modulo Mangusta
12
12
  # Imposta nome e valore iniziale.
13
13
  definisci inizializzatore(nome, **parametri)
14
14
  se_stesso.nome = nome
15
- se_stesso.tipologia = parametri.ottieni(:tipologia)
16
- se_stesso.nome_classe = parametri.ottieni(:nome_classe)
15
+ se_stesso.tipologia = parametri.prendi(:tipologia)
16
+ se_stesso.nome_classe = parametri.prendi(:nome_classe)
17
17
  fine
18
18
 
19
19
  ##
@@ -12,9 +12,9 @@ modulo Mangusta
12
12
  definisci inizializzatore(tipologia, nome, **parametri)
13
13
  se_stessa.nome = nome
14
14
  se_stessa.tipologia = tipologia
15
- se_stessa.nome_ripostiglio = parametri.ottieni(:ripostiglio, nullo)
16
- se_stessa.nome_campo = parametri.ottieni(:nome_campo, nullo)
17
- se_stessa.nome_campo_relazionato = parametri.ottieni(:nome_campo_relazionato, nullo)
15
+ se_stessa.nome_ripostiglio = parametri.prendi(:ripostiglio, nullo)
16
+ se_stessa.nome_campo = parametri.prendi(:nome_campo, nullo)
17
+ se_stessa.nome_campo_relazionato = parametri.prendi(:nome_campo_relazionato, nullo)
18
18
 
19
19
  alza NonValida, "È necessario specificare una chiave :ripostiglio per la relazione" se
20
20
  nome_ripostiglio.nullo?
@@ -67,7 +67,7 @@ modulo Mangusta
67
67
  definisci _risolvi_ha_molti(documento)
68
68
  se @documenti_in_memoria.esiste?
69
69
  @documenti_in_memoria.seleziona esegui |documento_relazionato|
70
- documento_relazionato.nome_campo_relazionato == documento._id
70
+ documento_relazionato.ottieni_valore(nome_campo_relazionato) == documento._id
71
71
  fine
72
72
  altrimenti
73
73
  _ripostiglio.cerca(nome_campo_relazionato => documento._id).lista
@@ -114,13 +114,14 @@ modulo Mangusta
114
114
  fine
115
115
 
116
116
  collezione_relazionata = Mangusta.connessione[_ripostiglio._nome_collezione]
117
- ricerca_documenti_relazionati = Mappa[_id: Mappa["$in": documenti_relazionati]]
118
117
 
119
118
  se documenti_relazionati.almeno_uno?
119
+ ricerca_documenti_relazionati = Mappa[_id: Mappa["$in": documenti_relazionati]]
120
120
  collezione_relazionata.aggiorna_molti ricerca_documenti_relazionati,
121
121
  "$addToSet" => Mappa[nome_campo_relazionato => documento._id]
122
122
  altrimenti
123
- collezione_relazionata.aggiorna_molti Mappa.nuova,
123
+ ricerca_documenti_relazionati = Mappa(nome_campo_relazionato => Mappa("$type": "array"))
124
+ collezione_relazionata.aggiorna_molti ricerca_documenti_relazionati,
124
125
  "$pullAll" => Mappa[nome_campo_relazionato => [ documento._id ]]
125
126
  fine
126
127
  fine
@@ -93,9 +93,10 @@ modulo Mangusta
93
93
  alza "L'argomento passato deve essere un #{_nome_classe_documento} o una Mappa" se
94
94
  documento.non_è_un? _classe_documento e documento.non_è_una? Mappa
95
95
 
96
- documento_in_json = Mangusta::Utilità.converti_in_json(documento)
96
+ documento_in_json = Mangusta::Utilità.converti_in_json documento
97
97
  documento_in_json.deposita :_id, IdOggetto.nuovo se documento_in_json.non_ha_chiave? :_id
98
98
  _collezione.inserisci_uno documento_in_json
99
+
99
100
  documento = Mangusta::Utilità.converti_in_documento documento, _classe_documento
100
101
  _propaga_relazioni documento, documento_in_json
101
102
  documento
@@ -117,10 +118,13 @@ modulo Mangusta
117
118
  alza "Il primo argomento deve essere una Stringa o un documento" a_meno_che
118
119
  documento.è_una? Stringa o documento.risponde_a? :_id
119
120
 
120
- id_documento = documento.risponde_a?(:_id) ? documento._id : documento
121
- id_documento = IdOggetto.converti id_documento
122
- _collezione.aggiorna_uno Mappa[_id: id_documento], Mappa["$set" => valori_da_aggiornare]
123
- cerca_per_id(id_documento)
121
+ documento = cerca_per_id id_documento.in_id se documento.è_una? Stringa
122
+ _collezione.aggiorna_uno Mappa[_id: documento._id], Mappa["$set" => valori_da_aggiornare]
123
+
124
+ documento = cerca_per_id documento._id
125
+ documento_in_json = Mangusta::Utilità.converti_in_json documento
126
+ _propaga_relazioni documento, documento_in_json
127
+ documento
124
128
  fine
125
129
 
126
130
  ##
@@ -189,7 +193,7 @@ modulo Mangusta
189
193
  definisci _propaga_relazioni(documento, documento_in_json)
190
194
  _classe_documento.relazioni.per_ognuna esegui |relazione|
191
195
  se documento_in_json.ha_chiave? relazione.nome_campo
192
- relazione.propaga documento, documento_in_json.ottieni(relazione.nome_campo)
196
+ relazione.propaga documento, documento_in_json.prendi(relazione.nome_campo)
193
197
  fine
194
198
  fine
195
199
  fine
@@ -1,3 +1,3 @@
1
1
  modulo Mangusta
2
- VERSIONE = "0.4.1"
2
+ VERSIONE = "0.4.6"
3
3
  fine
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mangusta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Ballardin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-13 00:00:00.000000000 Z
11
+ date: 2020-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: italian-ruby