mangusta 0.1.4 → 0.1.5

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: defaeaa7bbc87855a9dd60cd900a75bbe9096d04e213ec946aedc180178dc1d4
4
- data.tar.gz: 8c5368a5e8329580a0e30fce688168d753cab531e2f1d6d7a7716e6d1f11d1a0
3
+ metadata.gz: 6fe74a23c8c7cea11aa202a72f026251acef65ea0a10de8575dda0d4fbfcf1a6
4
+ data.tar.gz: 7f77bcf9bb8beb0b5398ce557c01db4195fd312f51d06ee4fe11d12b448c1aac
5
5
  SHA512:
6
- metadata.gz: ec38f6a15fc834029dbd17d2b6f8a5aca1e9a1ff93b65a2bfdf0f4c433f4159e067a8b68bbe058d64019ff09bc93a68d0d99f9f114dbb7dffa346651025cc50f
7
- data.tar.gz: e1777bbd9c0880f6636a41ff58966181e4cf71ff8017832857f62107f28931611990ad0558a975097b097c3ea352678f5096350432eb3e148eebc099d38172f3
6
+ metadata.gz: 1cf8d1444797c6949c8577b3088b5ecc04901f5f099e664df113f97e0a7644007b3c935c920cc8982ab02748c0d593cfa4407c84e96e877763e2505a0cfa59a1
7
+ data.tar.gz: 8799d3b255e218d3969876d739f356a199429edbd7ec0d6bfee042e4716595294308438adc838d54d0caefa255800ad9b78fcebbb4b7e469dc8772ec1cd89bac
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mangusta (0.1.3)
4
+ mangusta (0.1.4)
5
5
  italian-ruby (~> 0.1)
6
6
  mongo (~> 2.11)
7
7
 
@@ -10,7 +10,7 @@ GEM
10
10
  specs:
11
11
  bson (4.8.2)
12
12
  diff-lcs (1.3)
13
- italian-ruby (0.1.6)
13
+ italian-ruby (0.1.7)
14
14
  ruby2ruby (~> 2.4)
15
15
  mongo (2.11.4)
16
16
  bson (>= 4.4.2, < 5.0.0)
@@ -58,7 +58,7 @@ modulo Mangusta
58
58
  ##
59
59
  # Risolve la relazione di `ha molti`.
60
60
  definisci _risolvi_ha_molti(documento)
61
- _ripostiglio.cerca("#{nome_campo}" => documento._id)
61
+ _ripostiglio.cerca(nome_campo_relazionato => documento._id)
62
62
  fine
63
63
 
64
64
  ##
@@ -35,10 +35,7 @@ modulo Mangusta
35
35
  _inizializza_campo campo
36
36
  fine
37
37
 
38
- attributi.per_ognuno esegui |nome_campo, valore_campo|
39
- imposta_valore_campo nome_campo, valore_campo
40
- fine
41
-
38
+ assegna **attributi
42
39
  _genera_nuovo_id se ottieni_valore_campo(:_id).nullo?
43
40
  _memorizza_attributi_originali **attributi
44
41
  fine
@@ -69,16 +66,27 @@ modulo Mangusta
69
66
 
70
67
  ##
71
68
  # Ottiene la rappresentazione in Mappa dei campi del documento.
72
- definisci in_mappa
69
+ definisci esponi
73
70
  risultato = Mappa.nuova
74
71
  campi.per_ognuno esegui |campo|
75
72
  valore_campo = ottieni_valore_campo(campo.nome)
76
- valore_campo = valore_campo.to_s se campo.nome == :_id
73
+ valore_campo = valore_campo.to_s se valore_campo.è_un? BSON::ObjectId
77
74
  risultato.deposita campo.nome, valore_campo
78
75
  fine
79
76
  risultato
80
77
  fine
81
78
 
79
+ ##
80
+ # Assegna i parametri passati al documento. Considera anche gli alias.
81
+ definisci assegna(**parametri)
82
+ parametri.per_ognuno esegui |nome_parametro, valore_parametro|
83
+ nome_metodo_assegnamento = "#{nome_parametro}="
84
+ prossimo se se_stesso.non_risponde_a? nome_metodo_assegnamento
85
+ se_stesso.manda nome_metodo_assegnamento, valore_parametro
86
+ fine
87
+ se_stesso
88
+ fine
89
+
82
90
  ##
83
91
  # Accede al valore dell'attributo originale del documento,
84
92
  # passando oltre gli accessori, per accedere a campi non modellati.
@@ -158,6 +166,10 @@ modulo Mangusta
158
166
  ottieni_variabile_istanza "@#{nome}"
159
167
  fine
160
168
 
169
+ definisci_metodo "#{nome}?" esegui
170
+ ottieni_variabile_istanza("@#{nome}") == vero
171
+ fine
172
+
161
173
  definisci_metodo "#{nome}=" esegui |valore|
162
174
  imposta_variabile_istanza "@#{nome}", valore
163
175
  fine
@@ -21,6 +21,16 @@ modulo Mangusta
21
21
  fine
22
22
  fine
23
23
 
24
+ definisci cerca(**nuovi_parametri_ricerca)
25
+ @parametri_ricerca.fondi! nuovi_parametri_ricerca
26
+ se_stessa
27
+ fine
28
+
29
+ definisci conteggio
30
+ @collezione.cerca(**@parametri_ricerca).count
31
+ fine
32
+ alias :conteggia :conteggio
33
+
24
34
  fine
25
35
  fine
26
36
  fine
@@ -34,6 +34,7 @@ modulo Mangusta
34
34
  classe << se_stesso
35
35
 
36
36
  accessore :_nome_collezione
37
+ accessore :_nome_classe_documento
37
38
  accessore :_classe_documento
38
39
 
39
40
  ##
@@ -45,7 +46,8 @@ modulo Mangusta
45
46
  ##
46
47
  # Metodo per definire che classe documento usare.
47
48
  definisci documento(nome_classe)
48
- se_stesso._classe_documento = nome_classe
49
+ se_stesso._nome_classe_documento = nome_classe
50
+ se_stesso._classe_documento = Oggetto.ottieni_costante nome_classe
49
51
  fine
50
52
 
51
53
  ##
@@ -62,9 +64,12 @@ modulo Mangusta
62
64
 
63
65
  ##
64
66
  # Ritorna il primo documento del ripostiglio.
65
- definisci primo
66
- _risultato_ricerca.primo
67
+ definisci primo(**parametri)
68
+ _risultato_ricerca(**parametri).primo
67
69
  fine
70
+ alias :prima :primo
71
+ alias :primo_per :primo
72
+ alias :prima_per :primo
68
73
 
69
74
  ##
70
75
  # Cerca senza filtri, su tutti i documenti della collezione.
@@ -76,6 +81,9 @@ modulo Mangusta
76
81
  ##
77
82
  # Deposita un documento.
78
83
  definisci inserisci(documento)
84
+ alza "L'argomento passato deve essere un #{_nome_classe_documento} o una Mappa" se
85
+ documento.non_è_un? _classe_documento e documento.non_è_una? Mappa
86
+
79
87
  documento_in_json = Mangusta::Utilità.converti_in_json(documento)
80
88
  documento_in_json.deposita :_id, BSON::ObjectId.new se documento_in_json.non_ha_chiave? :_id
81
89
  _collezione.inserisci_uno documento_in_json
@@ -109,8 +117,6 @@ modulo Mangusta
109
117
  ##
110
118
  # Aggiorna molti documenti.
111
119
  definisci aggiorna_molti(ricerca = Mappa.nuova, **valori_da_aggiornare)
112
- stampa "AGG MOLTI ---> RICERCA", ricerca
113
- stampa "VALORI", valori_da_aggiornare, "^^^^^^^^^^^^"
114
120
  alza "Il primo argomento deve essere una Mappa o una Lista di documenti" a_meno_che
115
121
  ricerca.classe == Mappa o ricerca.risponde_a? :tutti?
116
122
 
@@ -184,7 +190,7 @@ modulo Mangusta
184
190
  ##
185
191
  # Propaga tutte le relazioni del documento.
186
192
  definisci _propaga_relazioni(documento, documento_in_json)
187
- Oggetto.ottieni_costante(_classe_documento).relazioni.per_ognuna esegui |relazione|
193
+ _classe_documento.relazioni.per_ognuna esegui |relazione|
188
194
  se documento_in_json.ha_chiave? relazione.nome_campo
189
195
  relazione.propaga documento, documento_in_json.ottieni(relazione.nome_campo)
190
196
  fine
@@ -16,9 +16,9 @@ modulo Mangusta
16
16
 
17
17
  definisci se_stessa.converti_in_documento(documento_in_json, classe_documento)
18
18
  ritorna documento_in_json se documento_in_json.non_è_una? Mappa
19
- classe_documento ||= "Oggetto"
19
+ classe_documento ||= Oggetto
20
20
 
21
- Oggetto.ottieni_costante(classe_documento).nuovo **documento_in_json
21
+ classe_documento.nuovo **documento_in_json
22
22
  fine
23
23
 
24
24
  fine
@@ -1,3 +1,3 @@
1
1
  modulo Mangusta
2
- VERSIONE = "0.1.4"
2
+ VERSIONE = "0.1.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.1.4
4
+ version: 0.1.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-04-01 00:00:00.000000000 Z
11
+ date: 2020-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: italian-ruby