mangusta 0.1.8 → 0.1.9

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: 741ed9789a5da97edf8aa6a0c0370652a3a3a12bf81cb339cda34fd19c1bbdf8
4
- data.tar.gz: f1a842ebf5be47d9507bd6fdf45de3c6600fed19bafff0b17ec71e081306fc57
3
+ metadata.gz: 4e5ccca4627ba78909bda3316957a8590139ece2e2a28d85f49f6bafa04c25c8
4
+ data.tar.gz: d73fde5f9abe2a592548605082c415da339476714922fb9c412aa5ae2ea3ce6c
5
5
  SHA512:
6
- metadata.gz: 1d8922beff95859a68ff3977b93303886b278ac1ede8657659ca9fcfc23dba6d6316fe62b406a7da749e12145493c603e37246ce4881a7fab4780f38b18019d5
7
- data.tar.gz: fc0e0823d495163e02f88e88488bc335d931e4c99ce250e4c9029ead10ec394b17256dfabfd38cbadd32b1a5f54b8fbc7eb738279cd62ba07dbfa584e3367180
6
+ metadata.gz: d091dfc894066b6ebc74a0a6599304e5b878490028004711d2caa049c9a1604f913ba1421311d441f150c8b94791cc05938109ed4b8a72b4c811ab206826fbc9
7
+ data.tar.gz: 2059790ab31eb918f38157f55bd9f03825ca70dc473428247b05e9825889ba375487beb8c2044a49993def8adc98ba6f138d355e2a51df86b7e52b904ae2c993
@@ -106,7 +106,7 @@ modulo Mangusta
106
106
  # Aggiorna un documento.
107
107
  definisci aggiorna(documento, **valori_da_aggiornare)
108
108
  alza "Il primo argomento deve essere una Stringa o un documento" a_meno_che
109
- documento.classe == Stringa o documento.risponde_a? :_id
109
+ documento.è_una? Stringa o documento.risponde_a? :_id
110
110
 
111
111
  id_documento = documento.risponde_a?(:_id) ? documento._id : documento
112
112
  id_documento = BSON::ObjectId id_documento
@@ -117,22 +117,8 @@ modulo Mangusta
117
117
  ##
118
118
  # Aggiorna molti documenti.
119
119
  definisci aggiorna_molti(ricerca = Mappa.nuova, **valori_da_aggiornare)
120
- alza "Il primo argomento deve essere una Mappa o una Lista di documenti" a_meno_che
121
- ricerca.classe == Mappa o ricerca.risponde_a? :tutti?
122
-
123
- ricerca_è_una_lista_documenti = no
124
- se ricerca.classe != Mappa
125
- ricerca_è_una_lista_documenti = ricerca.tutti? { |documento| documento.risponde_a? :_id }
126
- alza "Il primo argomento è una Lista, ma non di documenti" a_meno_che ricerca_è_una_lista_documenti
127
- fine
128
-
129
- se ricerca_è_una_lista_documenti
130
- filtro_lista_id_documenti = Mappa["$in": ricerca.mappa(&:_id)]
131
- ricerca = Mappa[_id: filtro_lista_id_documenti]
132
- fine
133
-
134
- risultato_aggiornamento = _collezione.aggiorna_molti ricerca,
135
- Mappa["$set": valori_da_aggiornare]
120
+ documenti = _ricerca_per_lista_o_mappa ricerca
121
+ risultato_aggiornamento = _collezione.aggiorna_molti documenti, Mappa["$set": valori_da_aggiornare]
136
122
  risultato_aggiornamento.modified_count
137
123
  fine
138
124
  alias :aggiorna_molte :aggiorna_molti
@@ -148,8 +134,8 @@ modulo Mangusta
148
134
  ##
149
135
  # Cancella un documento.
150
136
  definisci cancella(documento)
151
- alza "Il primo argomento deve essere una stringa o un documento" a_meno_che
152
- documento.classe == Stringa o documento.risponde_a? :_id
137
+ alza "Il primo argomento deve essere una Stringa o un documento" a_meno_che
138
+ documento.è_una? Stringa o documento.risponde_a? :_id
153
139
 
154
140
  id_documento = documento.risponde_a?(:_id) ? documento._id : documento
155
141
  id_documento = BSON::ObjectId id_documento
@@ -159,8 +145,9 @@ modulo Mangusta
159
145
 
160
146
  ##
161
147
  # Cancella molti documenti.
162
- definisci cancella_molti(documenti)
163
- risultato_cancellazione = _collezione.cancella_uno Mappa[_id: id_documento]
148
+ definisci cancella_molti(ricerca = Mappa.nuova)
149
+ documenti = _ricerca_per_lista_o_mappa ricerca
150
+ risultato_cancellazione = _collezione.cancella_molti documenti
164
151
  risultato_cancellazione.deleted_count
165
152
  fine
166
153
  alias :cancella_molte :cancella_molti
@@ -197,6 +184,24 @@ modulo Mangusta
197
184
  fine
198
185
  fine
199
186
 
187
+ ##
188
+ # Ottieni ricerca per lista di documenti o lista di id.
189
+ definisci _ricerca_per_lista_o_mappa(ricerca = Mappa.nuova)
190
+ alza "Il primo argomento deve essere una Mappa o una Lista di documenti" a_meno_che
191
+ ricerca.è_una? Mappa o ricerca.risponde_a? :tutti?
192
+
193
+ ricerca_è_una_lista_documenti = no
194
+ se ricerca.non_è_una? Mappa
195
+ ricerca_è_una_lista_documenti = ricerca.tutti? { |documento| documento.risponde_a? :_id }
196
+ alza "Il primo argomento è una Lista, ma non di documenti" a_meno_che ricerca_è_una_lista_documenti
197
+ fine
198
+
199
+ se ricerca_è_una_lista_documenti
200
+ filtro_lista_id_documenti = Mappa["$in": ricerca.mappa(&:_id)]
201
+ ricerca = Mappa[_id: filtro_lista_id_documenti]
202
+ fine
203
+ fine
204
+
200
205
  fine
201
206
  fine
202
207
  fine
@@ -1,3 +1,3 @@
1
1
  modulo Mangusta
2
- VERSIONE = "0.1.8"
2
+ VERSIONE = "0.1.9"
3
3
  fine
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mangusta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Ballardin