mangusta 0.1.4 → 0.1.5

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