mangusta 0.4.0 → 0.4.5

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: bff50278825611edfa69d4ccebdfa9124b9ffcad606e104d7b1142037839ff40
4
- data.tar.gz: 535adcf8ec855208a1983e4764a6ddf4f76907f6c1acb7873da36c1aa771b269
3
+ metadata.gz: 34e54505d74f725f68f16e6c80bee4a548d5c09345b2e86494aeaed76e76278e
4
+ data.tar.gz: '0904487e9df8873b90d70a1a5d9bf84d564a8d0c5010cff5f93fcff1ff291d86'
5
5
  SHA512:
6
- metadata.gz: 7b0e95b992a83dec8b7068c1a3db695870703f1258a07cfba9cb5526d0474cb940044783eb1d58320e778cbd49b78bcb990efb4c5f079403100e8472811a9c85
7
- data.tar.gz: 5e10f3c0afe2e901a7cd29e6cc393de215a21ac273a0fe2d96a28701d0813c1d3896c08c4ab247ab6b9998c7f1675630513f885206a1b871ba991ae8989f2f38
6
+ metadata.gz: b249cd6b10cc43aa54fd449b69bda05645d81ef632fde346acc52a5fefdc51cb54ea32f056a5d144d5980d9e5a88d4657bb7cee8497bfb64628ed4aec9c537a0
7
+ data.tar.gz: 754ca388a432a0c81adbb2cbae00efaf38696bcb98d06065306946d548f0420e6b68c30b1fadc27aab1493d56ef10d83630acfafaef44399c2332e3a5ef71bd4
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,5 +1,7 @@
1
- require "mongo"
2
- 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"
3
5
  richiedi_tutti "mangusta"
4
6
 
5
7
  modulo Mangusta
@@ -14,14 +14,4 @@ module Mongo
14
14
  alias :lista :entries
15
15
  end
16
16
  end
17
- end
18
-
19
- module BSON
20
- class ObjectId
21
- alias :in_stringa :to_s
22
-
23
- def to_json(*args)
24
- "\"#{self.to_s}\""
25
- end
26
- end
27
17
  end
@@ -144,7 +144,7 @@ modulo Mangusta
144
144
  ##
145
145
  # Genera un nuovo id.
146
146
  definisci _genera_nuovo_id
147
- imposta_valore :_id, BSON::ObjectId.new
147
+ imposta_valore :_id, IdOggetto.nuovo
148
148
  fine
149
149
 
150
150
  ##
@@ -154,11 +154,11 @@ modulo Mangusta
154
154
  fine
155
155
 
156
156
  ##
157
- # Converte in BSON::ObjectId una stringa.
157
+ # Converte in IdOggetto una stringa.
158
158
  # Se la conversione fallisce, ritorna la stringa iniziale.
159
159
  definisci _converti_in_id(stringa)
160
160
  ritorna stringa se stringa.non_è_una? Stringa
161
- BSON::ObjectId(stringa)
161
+ IdOggetto.converti(stringa)
162
162
  recupera
163
163
  stringa
164
164
  fine
@@ -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
@@ -108,19 +108,20 @@ modulo Mangusta
108
108
  # Aggiorna la relazione `ha e appartiene a molti`.
109
109
  definisci _propaga_ha_e_appartiene_a_molti(documento, documenti_relazionati)
110
110
  se documenti_relazionati.non_è_una? Lista o
111
- documenti_relazionati.alcuni? { |documento_relazionato| documento_relazionato.non_è_un? BSON::ObjectId }
111
+ documenti_relazionati.alcuni? { |documento_relazionato| documento_relazionato.non_è_un? IdOggetto }
112
112
  alza ErrorePropagazione, "Per propagare la relazione `ha_e_appartiene_a_molti` "\
113
- "è necessario passare una Lista di elementi di classe BSON::ObjectId"
113
+ "è necessario passare una Lista di elementi di classe IdOggetto"
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
@@ -59,7 +59,7 @@ modulo Mangusta
59
59
  ##
60
60
  # Cerca documento per id, e ritorna il primo trovato.
61
61
  definisci cerca_per_id(id)
62
- _risultato_ricerca(_id: BSON::ObjectId(id)).primo
62
+ _risultato_ricerca(_id: IdOggetto.converti(id)).primo
63
63
  fine
64
64
 
65
65
  ##
@@ -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)
97
- documento_in_json.deposita :_id, BSON::ObjectId.new se documento_in_json.non_ha_chiave? :_id
96
+ documento_in_json = Mangusta::Utilità.converti_in_json documento
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 = BSON::ObjectId 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
  ##
@@ -147,7 +151,7 @@ modulo Mangusta
147
151
  documento.è_una? Stringa o documento.risponde_a? :_id
148
152
 
149
153
  id_documento = documento.risponde_a?(:_id) ? documento._id : documento
150
- id_documento = BSON::ObjectId id_documento
154
+ id_documento = IdOggetto.converti id_documento
151
155
  risultato_cancellazione = _collezione.cancella_uno Mappa[_id: id_documento]
152
156
  risultato_cancellazione.deleted_count
153
157
  fine
@@ -15,9 +15,9 @@ modulo Mangusta
15
15
  prossimo se valore_campo.nullo?
16
16
  se campo.nome.in? documento.relazioni.mappa(&:nome_campo)
17
17
  inizia
18
- valore_campo = BSON::ObjectId valore_campo se valore_campo.è_una? Stringa
19
- valore_campo = valore_campo.mappa { |singolo_valore| BSON::ObjectId singolo_valore } se valore_campo.è_una? Lista
20
- recupera BSON::ObjectId::Invalid
18
+ valore_campo = IdOggetto.converti valore_campo se valore_campo.è_una? Stringa
19
+ valore_campo = valore_campo.mappa { |singolo_valore| IdOggetto.converti singolo_valore } se valore_campo.è_una? Lista
20
+ recupera IdOggetto::Invalid
21
21
  fine
22
22
  fine
23
23
  documento_convertito.deposita campo.nome, valore_campo
@@ -1,3 +1,3 @@
1
1
  modulo Mangusta
2
- VERSIONE = "0.4.0"
2
+ VERSIONE = "0.4.5"
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.0
4
+ version: 0.4.5
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-06 00:00:00.000000000 Z
11
+ date: 2020-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: italian-ruby