italian-ruby 1.2.5 → 1.3.1

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: 43bae6de3f2564f8154ec1f312f1e0e1d5b23ba1c1bae6dfa7913a0b75e3d235
4
- data.tar.gz: bb395a89ddbfbde39ea917e73f792e63372c83b64f30777f555028c2f017f41d
3
+ metadata.gz: 2b444d497c858ea3ea58fb8448a6ef58965d3c4dd024d3ef54101e9f1787a6e9
4
+ data.tar.gz: 1b6af0bfde48e514bc4741e95c23e9d240866f6001b3ab1dcfe1267bc72dc02e
5
5
  SHA512:
6
- metadata.gz: 24e14fe80a17bce4d5da2b67d2530840d28997d8154b8193d18bc7a2addec228cb2ad79cad219328d55f4c26640357814165f1e6aaa20b56f7a305301e7f9b65
7
- data.tar.gz: b4a5510e3b7d90b355ffcfbf972f93b93ef928cd8fb8c4ed274f722fb80d0e464f53ac236627fcded246991ca61fdaff546c2f39ead1fc2477c4b4311d313422
6
+ metadata.gz: ed29c9544485eb9384765b36423e8ae752aca8e878329c3706f87712e141a27373cbcdd54199e9198832f73c0c6d96bcd27682880bcbfd897dcd862aa3d7c715
7
+ data.tar.gz: e0e6f2fe80b37e860731ec47d16cccf2b705f35de3b8268677d3801853fcf233de88648aed1c82c6b0141f6de11e5f38a93f115938a04e9b7002af4cab6e0c93
@@ -21,6 +21,7 @@ require_relative "alias/object"
21
21
  require_relative "alias/open_struct"
22
22
  require_relative "alias/proc"
23
23
  require_relative "alias/process"
24
+ require_relative "alias/ractor"
24
25
  require_relative "alias/range"
25
26
  require_relative "alias/rational"
26
27
  require_relative "alias/regexp"
@@ -7,6 +7,7 @@ class Array
7
7
  alias :per_ognuno :each
8
8
  alias :per_ognuna :each
9
9
  alias :in_fette_da :each_slice
10
+ alias :in_gruppi_da :each_slice
10
11
  alias :mappa :map
11
12
  alias :mappa! :map!
12
13
  alias :vuoto? :empty?
@@ -3,6 +3,11 @@
3
3
  class Enumerator
4
4
 
5
5
  alias :mappa :map
6
+ alias :per_ognuno :each
7
+ alias :per_ognuna :each
8
+ alias :lista :to_a
9
+ alias :in_lista :to_a
10
+ alias :in_liste :to_a
6
11
  alias :con_indice :with_index
7
12
 
8
13
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Ractor
4
+
5
+ class << self
6
+ alias :manda :yield
7
+ alias :ricevi :receive
8
+ end
9
+
10
+ alias :ricevi :take
11
+ alias :attendi :take
12
+ alias :manda :send
13
+
14
+ end
15
+
16
+ Parallelo = Ractor
@@ -25,6 +25,18 @@ class Date
25
25
  end
26
26
 
27
27
  ##
28
+ # Restituisce la data di inizio anno.
29
+ def inizio_anno
30
+ Date.new self.year, 1, 1
31
+ end
32
+
33
+ ##
34
+ # Restituisce la data di fine anno.
35
+ def fine_anno
36
+ Date.new self.year, 12, 31
37
+ end
38
+
39
+
28
40
  # Formatta la data secondo la rappresentazione passata.
29
41
  def formatta_locale(format)
30
42
  formattazione = strftime format
@@ -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
@@ -35,3 +35,9 @@ end
35
35
  def metodo_mancante(nome, *args, &block)
36
36
  method_missing nome, *args, &block
37
37
  end
38
+
39
+ ##
40
+ # Avvia un blocco di codice in parallelo.
41
+ def in_parallelo(*argomenti, &blocco)
42
+ Ractor.new *argomenti, &blocco
43
+ end
@@ -1,5 +1,5 @@
1
1
  module Italian
2
2
  module Ruby
3
- VERSIONE = "1.2.5"
3
+ VERSIONE = "1.3.1"
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.5
4
+ version: 1.3.1
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-01-22 00:00:00.000000000 Z
11
+ date: 2021-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -98,6 +98,7 @@ files:
98
98
  - lib/italian/ruby/alias/open_struct.rb
99
99
  - lib/italian/ruby/alias/proc.rb
100
100
  - lib/italian/ruby/alias/process.rb
101
+ - lib/italian/ruby/alias/ractor.rb
101
102
  - lib/italian/ruby/alias/range.rb
102
103
  - lib/italian/ruby/alias/rational.rb
103
104
  - lib/italian/ruby/alias/regexp.rb