mangusta 0.3.5 → 0.4.4

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: 49e5a788ab0ef0164a34d95ea987d2a4b94678266c48303b73fcf7e69f79eec7
4
- data.tar.gz: 403ab522c13d45fd0fc96829a85822ee3de408b32cd3dc8483dcb4fdb9b6f492
3
+ metadata.gz: 208efb975c8370ebdd3495bb2c450adfdbb06680987ff81122e8e2b4caf7ec58
4
+ data.tar.gz: 7fb1f45c20640c3ec4dcee9095357a7b8d088c1ebaa1778fd03b8e94fc36367b
5
5
  SHA512:
6
- metadata.gz: 1ef74f2a4ca30e3c5d382f686922f70b7e2c940da707d0f72fbed56d1b4973ebfc1f4466b8808f40c2e9a5fe8ca4498c653399b0fbce5bd7f9e6e4f64b604831
7
- data.tar.gz: 0d7dbcbf3f9b6b4138cd6fb360e82c088e10124521b846f4855fea6cbf06ea8569537887bf2f0e87cce067aeb589614a07ad33f51b11c7a860ee6d5abf69d9cb
6
+ metadata.gz: 8657b01392f853713c0ece3294a1e40fa61ed9fbbebc78db1f4fb2c0f03c15b149bc06cb1c257bfb6f850ee8deeef363983859d246a04067f1b7dd164abecb02
7
+ data.tar.gz: bd74104cb4e2e07f3bc2627a68b860e43413eae0331624bac8d436c9884bef8a43945b78bf3a4782b4f8b2a4a747b71f562a0719837054ac991b7fbd66a1a81b
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
@@ -87,6 +87,18 @@ modulo Mangusta
87
87
  fine
88
88
  fine
89
89
 
90
+ ##
91
+ # Uguaglianza di documenti.
92
+ definisci ==(documento)
93
+ _id == documento._id
94
+ fine
95
+ definisci ===(documento)
96
+ se_stesso == documento
97
+ fine
98
+ definisci eql?(documento)
99
+ se_stesso == documento
100
+ fine
101
+
90
102
  ##
91
103
  # Ottiene la rappresentazione in Mappa dei campi del documento.
92
104
  definisci esponi(*chiavi_richieste, **relazioni_richieste)
@@ -132,7 +144,7 @@ modulo Mangusta
132
144
  ##
133
145
  # Genera un nuovo id.
134
146
  definisci _genera_nuovo_id
135
- imposta_valore :_id, BSON::ObjectId.new
147
+ imposta_valore :_id, IdOggetto.nuovo
136
148
  fine
137
149
 
138
150
  ##
@@ -142,11 +154,11 @@ modulo Mangusta
142
154
  fine
143
155
 
144
156
  ##
145
- # Converte in BSON::ObjectId una stringa.
157
+ # Converte in IdOggetto una stringa.
146
158
  # Se la conversione fallisce, ritorna la stringa iniziale.
147
159
  definisci _converti_in_id(stringa)
148
160
  ritorna stringa se stringa.non_è_una? Stringa
149
- BSON::ObjectId(stringa)
161
+ IdOggetto.converti(stringa)
150
162
  recupera
151
163
  stringa
152
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,9 +108,9 @@ 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]
@@ -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.3.5"
2
+ VERSIONE = "0.4.4"
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.3.5
4
+ version: 0.4.4
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-04-28 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