italian-ruby 1.2.9 → 1.3.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: bed69f65ce97ddca798b585593d266f4981de8cd4cccf385faa5f0755295a4d7
4
- data.tar.gz: 5c3e6705c863c6522db2ae12c34174202f7d19afc4274fb230b218df3407796d
3
+ metadata.gz: 60bd86e34e3dc61a7bba458f452c9b82b2c7f9814a3d42cd4c6ddb82bcf4b817
4
+ data.tar.gz: 4524354521533fa1753f25ef014c766bedc68a1bdf9407710b0843964231f504
5
5
  SHA512:
6
- metadata.gz: b9f5b6731fc64251b795d83bc99664fd6e0615d69bfded83ceab3450ccaa3cc90ea7fa453b57d34b37b0da66d8ea8e95325df57289252197e807d0ceda46985d
7
- data.tar.gz: 51d138e5d8f08143d873dd1baf3bbdeca4e432840e4aa94a5ffc0fd079c1787e1abc117bcde508e4ca968848a771bab5420c9efdb7ac20d8b2c7d9cbf568e45a
6
+ metadata.gz: 69c26bf62df388f1aa22717d04a691c9812f26adcc58d7a9446a08b66f0afb2733831e569967d6a1c8dccdb2f312285374ef517b1c7fcca8320e5cc05c3c2b99
7
+ data.tar.gz: 1d2a265b4908dffbcadcf988e7ad4f0a1ce2dc5dd650d9dd1877ed372955a5e394fce515e464742c76cf880717997f47e770a97e44f85dd4e5661ed09a61fd5b
@@ -31,6 +31,8 @@ class String
31
31
  alias :vuota? :empty?
32
32
  alias :vuoto? :empty?
33
33
  alias :spoglia :strip
34
+ alias :spoglia_a_sinistra :lstrip
35
+ alias :spoglia_a_destra :rstrip
34
36
  alias :mastica :chomp
35
37
  alias :conteggio :count
36
38
  alias :conteggia :count
@@ -36,6 +36,11 @@ class Date
36
36
  Date.new self.year, 12, 31
37
37
  end
38
38
 
39
+ ##
40
+ # Restituisce il tempo all'ora specificata.
41
+ def alle(ore, minuti = 0, secondi = 0)
42
+ self.in_tempo.alle ore, minuti, secondi
43
+ end
39
44
 
40
45
  # Formatta la data secondo la rappresentazione passata.
41
46
  def formatta_locale(format)
@@ -65,6 +65,20 @@ class Hash
65
65
  self.select { |key, value| key.in? keys }
66
66
  end
67
67
 
68
+ ##
69
+ # Somma due mappe.
70
+ def +(altra_mappa)
71
+ altra_mappa.each do |chiave, valore|
72
+ if self.has_key? chiave
73
+ valore_sommato = valore + self[chiave]
74
+ self.store chiave, valore_sommato
75
+ else
76
+ self.store chiave, valore
77
+ end
78
+ end
79
+ self
80
+ end
81
+
68
82
  ##
69
83
  # Ritorna una rappresentazione a singolo livello, con notazione ".".
70
84
  def puntifica(*prefissi)
@@ -38,12 +38,8 @@ module Kernel
38
38
  ##
39
39
  # Richiede un archivio cercandolo come percorso relativo.
40
40
  def richiedi_relativo(percorso_archivio)
41
- sorgente_chiamante = Italian::Ruby.percorso_archivio_non_tradotto caller_locations.first.absolute_path
42
- linea_chiamante = caller_locations.first.lineno
43
- cartella_chiamante = File.dirname sorgente_chiamante
44
- archivio_da_richiedere = File.expand_path File.join(cartella_chiamante, percorso_archivio)
45
- archivio_da_richiedere = Dir["#{archivio_da_richiedere}.{ir,rb}"].compact.first
46
-
41
+ sorgente_chiamante, linea_chiamante = ottieni_sorgente_e_linea_chiamante caller_locations
42
+ archivio_da_richiedere = archivio_relativo sorgente_chiamante, percorso_archivio
47
43
  raise LoadError, "cannot load such file -- #{percorso_archivio}" if archivio_da_richiedere.nil?
48
44
  traduci_e_richiedi archivio_da_richiedere
49
45
  rescue LoadError => errore
@@ -53,12 +49,8 @@ module Kernel
53
49
  ##
54
50
  # Richiede tutti gli archivi di una cartella.
55
51
  def richiedi_tutti(percorso_cartella)
56
- sorgente_chiamante = Italian::Ruby.percorso_archivio_non_tradotto caller_locations.first.absolute_path
57
- linea_chiamante = caller_locations.first.lineno
58
- cartella_chiamante = File.dirname sorgente_chiamante
59
- cartella_da_richiedere = File.expand_path File.join(cartella_chiamante, percorso_cartella)
60
- cartella_da_richiedere = nil unless Dir.exist? cartella_da_richiedere
61
-
52
+ sorgente_chiamante, linea_chiamante = ottieni_sorgente_e_linea_chiamante caller_locations
53
+ cartella_da_richiedere = cartella_relativa sorgente_chiamante, percorso_cartella
62
54
  raise LoadError, "cannot load such directory -- #{percorso_cartella}" if cartella_da_richiedere.nil?
63
55
  Dir["#{cartella_da_richiedere}/**/*.ir"].sort_by { |file| file.count("/") }.each do |archivio|
64
56
  traduci_e_richiedi archivio
@@ -67,20 +59,75 @@ module Kernel
67
59
  Italian::Ruby::Errori.recupera errore, sorgente_chiamante, linea_chiamante
68
60
  end
69
61
 
62
+ ##
63
+ # Rimanda la costante alla definizione in archivio. La prima volta che viene
64
+ # incontrata la definizione della costante nel codice, allora l'archivio
65
+ # verrà richiesto.
66
+ def rimanda(costante, archivio)
67
+ archivi_in_memoria = $:.map do |cartella|
68
+ Dir["#{cartella}/**/#{archivio}.ir"]
69
+ end
70
+ archivio_da_tradurre = archivi_in_memoria.flatten.compact.first
71
+ archivio_da_richiedere = Italian::Ruby.percorso_archivio_tradotto archivio_in_italiano_da_tradurre
72
+ traduci archivio_da_tradurre
73
+ Object.autoload costante, archivio_da_richiedere
74
+ end
75
+
76
+ ##
77
+ # Come il rimanda, ma usando un percorso relativo.
78
+ def rimanda_relativo(costante, percorso_archivio)
79
+ sorgente_chiamante, linea_chiamante = ottieni_sorgente_e_linea_chiamante caller_locations
80
+ archivio_da_tradurre = archivio_relativo sorgente_chiamante, percorso_archivio
81
+ archivio_da_richiedere = Italian::Ruby.percorso_archivio_tradotto archivio_da_tradurre
82
+ traduci archivio_da_tradurre
83
+ Object.autoload costante, archivio_da_richiedere
84
+ end
85
+
70
86
  private
71
87
 
88
+ ##
89
+ # Traduce un file da ItalianRuby a Ruby.
90
+ def traduci(archivio)
91
+ Italian::Ruby::Traduttore.traduci archivio
92
+ end
93
+
72
94
  ##
73
95
  # Traduce un file da ItalianRuby a Ruby e lo carica in memoria.
74
96
  def traduci_e_carica(archivio)
75
- archivio_tradotto = Italian::Ruby::Traduttore.traduci archivio
76
- load archivio_tradotto
97
+ load traduci(archivio)
77
98
  end
78
99
 
79
100
  ##
80
101
  # Traduce un file da ItalianRuby a Ruby e lo richiede.
81
102
  def traduci_e_richiedi(archivio)
82
- archivio_tradotto = Italian::Ruby::Traduttore.traduci archivio
83
- require archivio_tradotto
103
+ require traduci(archivio)
104
+ end
105
+
106
+ ##
107
+ # Ottiene sorgente e linea chiamante.
108
+ def ottieni_sorgente_e_linea_chiamante(traccia_chiamata)
109
+ sorgente_chiamante = Italian::Ruby.percorso_archivio_non_tradotto traccia_chiamata.first.absolute_path
110
+ linea_chiamante = traccia_chiamata.first.lineno
111
+
112
+ [ sorgente_chiamante, linea_chiamante ]
113
+ end
114
+
115
+ ##
116
+ # Ottiene il percorso archivio relativo del sorgente chiamante.
117
+ def archivio_relativo(sorgente_chiamante, percorso_archivio)
118
+ cartella_chiamante = File.dirname sorgente_chiamante
119
+ archivio_da_richiedere = File.expand_path File.join(cartella_chiamante, percorso_archivio)
120
+ archivio_da_richiedere = Dir["#{archivio_da_richiedere}.{ir,rb}"].compact.first
121
+ archivio_da_richiedere
122
+ end
123
+
124
+ ##
125
+ # Ottiene il percorso cartella relativo del sorgente chiamante.
126
+ def cartella_relativa(sorgente_chiamante, percorso_cartella)
127
+ cartella_chiamante = File.dirname sorgente_chiamante
128
+ cartella_da_richiedere = File.expand_path File.join(cartella_chiamante, percorso_cartella)
129
+ cartella_da_richiedere = nil unless Dir.exist? cartella_da_richiedere
130
+ cartella_da_richiedere
84
131
  end
85
132
 
86
133
  end
@@ -14,4 +14,11 @@ class Set
14
14
  self
15
15
  end
16
16
 
17
+ ##
18
+ # Converte l'insieme in una mappa.
19
+ def in_mappa(&block)
20
+ return self.map(&block).to_h if block_given?
21
+ raise ArgumentError, "must pass a block in order to convert a Set into a Hash"
22
+ end
23
+
17
24
  end
@@ -24,6 +24,24 @@ class Time
24
24
  end
25
25
  end
26
26
 
27
+ ##
28
+ # Sposta il tempo alle ore specificate.
29
+ def alle(ore, minuti = 0, secondi = 0)
30
+ Time.new(self.year, self.month, self.day, ore, minuti, secondi)
31
+ end
32
+
33
+ ##
34
+ # Ritorna il tempo all'inizio del giorno.
35
+ def inizio_giorno
36
+ Time.new(self.year, self.month, self.day)
37
+ end
38
+
39
+ ##
40
+ # Ritorna il tempo alla fine del giorno.
41
+ def fine_giorno
42
+ Time.new(self.year, self.month, self.day, 23, 59, 59)
43
+ end
44
+
27
45
  ##
28
46
  # Ritorna il tempo all'inizio dell'ora.
29
47
  def inizio_ora
@@ -1,5 +1,5 @@
1
1
  module Italian
2
2
  module Ruby
3
- VERSIONE = "1.2.9"
3
+ VERSIONE = "1.3.5"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: italian-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.9
4
+ version: 1.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Ballardin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-17 00:00:00.000000000 Z
11
+ date: 2021-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler