mangusta 0.3.5 → 0.4.4

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: 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