mangusta 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
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