italian-ruby 0.9.18 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.ruby-version +1 -1
  4. data/Gemfile.lock +2 -9
  5. data/bin/italian-rspec +9 -18
  6. data/bin/italian-ruby +7 -7
  7. data/{vim → dev/vim}/ftdetect/ir.vim +0 -0
  8. data/{vim → dev/vim}/syntax/ir.vim +0 -0
  9. data/{vim → dev/vim}/vimrc +0 -0
  10. data/{vscode → dev/vscode}/italianruby.tmGrammar.json +0 -0
  11. data/italian-ruby.gemspec +7 -6
  12. data/lib/italian/ruby.rb +39 -14
  13. data/lib/italian/ruby/alias.rb +28 -0
  14. data/lib/italian/ruby/{core_ext → alias}/array.rb +11 -80
  15. data/lib/italian/ruby/{core_ext → alias}/class.rb +9 -2
  16. data/lib/italian/ruby/{core_ext → alias}/date.rb +4 -35
  17. data/lib/italian/ruby/{core_ext → alias}/enumerator.rb +4 -5
  18. data/lib/italian/ruby/{core_ext/errors.rb → alias/error.rb} +6 -5
  19. data/lib/italian/ruby/{core_ext → alias}/false_class.rb +4 -3
  20. data/lib/italian/ruby/{core_ext → alias}/file.rb +6 -9
  21. data/lib/italian/ruby/{core_ext → alias}/float.rb +3 -4
  22. data/lib/italian/ruby/{core_ext → alias}/hash.rb +3 -39
  23. data/lib/italian/ruby/{core_ext → alias}/integer.rb +2 -26
  24. data/lib/italian/ruby/alias/io.rb +7 -0
  25. data/lib/italian/ruby/alias/kernel.rb +9 -0
  26. data/lib/italian/ruby/{core_ext → alias}/main.rb +5 -23
  27. data/lib/italian/ruby/alias/module.rb +9 -0
  28. data/lib/italian/ruby/{core_ext → alias}/nil_class.rb +3 -5
  29. data/lib/italian/ruby/alias/numeric.rb +3 -0
  30. data/lib/italian/ruby/alias/object.rb +39 -0
  31. data/lib/italian/ruby/alias/open_struct.rb +3 -0
  32. data/lib/italian/ruby/{core_ext → alias}/proc.rb +4 -5
  33. data/lib/italian/ruby/{core_ext → alias}/range.rb +2 -7
  34. data/lib/italian/ruby/{core_ext → alias}/rational.rb +3 -4
  35. data/lib/italian/ruby/{core_ext/gems → alias}/rspec.rb +7 -61
  36. data/lib/italian/ruby/alias/set.rb +39 -0
  37. data/lib/italian/ruby/alias/socket.rb +30 -0
  38. data/lib/italian/ruby/{core_ext → alias}/string.rb +3 -69
  39. data/lib/italian/ruby/{core_ext → alias}/symbol.rb +4 -5
  40. data/lib/italian/ruby/alias/time.rb +26 -0
  41. data/lib/italian/ruby/{core_ext → alias}/true_class.rb +4 -3
  42. data/lib/italian/ruby/errori.rb +84 -0
  43. data/lib/italian/ruby/metodi.rb +16 -0
  44. data/lib/italian/ruby/metodi/array.rb +105 -0
  45. data/lib/italian/ruby/metodi/date.rb +37 -0
  46. data/lib/italian/ruby/metodi/hash.rb +57 -0
  47. data/lib/italian/ruby/metodi/integer.rb +45 -0
  48. data/lib/italian/ruby/metodi/json.rb +17 -0
  49. data/lib/italian/ruby/metodi/kernel.rb +86 -0
  50. data/lib/italian/ruby/metodi/main.rb +31 -0
  51. data/lib/italian/ruby/metodi/module.rb +46 -0
  52. data/lib/italian/ruby/metodi/nil_class.rb +11 -0
  53. data/lib/italian/ruby/metodi/object.rb +64 -0
  54. data/lib/italian/ruby/{core_ext → metodi}/open_struct.rb +5 -7
  55. data/lib/italian/ruby/metodi/range.rb +11 -0
  56. data/lib/italian/ruby/metodi/rspec.rb +64 -0
  57. data/lib/italian/ruby/metodi/string.rb +142 -0
  58. data/lib/italian/ruby/metodi/time.rb +51 -0
  59. data/lib/italian/ruby/traduttore.rb +93 -122
  60. data/lib/italian/ruby/traduttore/linea.rb +144 -0
  61. data/lib/italian/ruby/traduttore/pezzo.rb +106 -0
  62. data/lib/italian/ruby/traduttore/stringa.rb +76 -0
  63. data/lib/italian/ruby/{version.rb → versione.rb} +1 -1
  64. metadata +58 -43
  65. data/Rakefile +0 -6
  66. data/lib/italian/ruby/core_ext.rb +0 -32
  67. data/lib/italian/ruby/core_ext/gems/bson.rb +0 -26
  68. data/lib/italian/ruby/core_ext/gems/fabrication.rb +0 -12
  69. data/lib/italian/ruby/core_ext/gems/hanami.rb +0 -92
  70. data/lib/italian/ruby/core_ext/gems/rack_test.rb +0 -15
  71. data/lib/italian/ruby/core_ext/json.rb +0 -11
  72. data/lib/italian/ruby/core_ext/kernel.rb +0 -111
  73. data/lib/italian/ruby/core_ext/module.rb +0 -32
  74. data/lib/italian/ruby/core_ext/numeric.rb +0 -6
  75. data/lib/italian/ruby/core_ext/object.rb +0 -83
  76. data/lib/italian/ruby/core_ext/time.rb +0 -69
  77. data/lib/italian/ruby/errore.rb +0 -52
  78. data/lib/italian/ruby/utils/debug.rb +0 -134
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f5a8e6a9a192784170cfe0f899e319332e32c2fedf826bda0f08e97f29e07b96
4
- data.tar.gz: 6273dbbd81c0198f0aab7bb0e16185d9187f82c533dfa65b0ddf61fcb0043f22
3
+ metadata.gz: 72b1c8551a0fb94dda19d401e637c378d7a83195c536e8935eaf0f75ca93c7af
4
+ data.tar.gz: aa6d30b2ec7f27138b0511daec287128678f150c728f5a56a7f18e91f2c38a69
5
5
  SHA512:
6
- metadata.gz: 92a111116bbb0a399c7422572d745f49ff8c88fd185f985e9d4b8a34e8c449dee46be9607f434404852b89cac64bc835d1e208487cce472cbd7e02fea79bea3e
7
- data.tar.gz: b000c606201e30e017b51508f1fb92f589173a4e104befde874e1ea9547c36761cf2dc9c78f3c9fcbac373e05a95420327bd07925274f93fd80113c76ce11282
6
+ metadata.gz: 7281625730c9c75916e32b1425415b2e42903690b2677c8648d60d06028537b5ccf599fa9fac6fa16df1a5024d9cc28755baaa6ddf8bf2f16afc2e7ea23c8598
7
+ data.tar.gz: a931c6c49d4f80c2dbc896684810d4cd2200e0172950a510773f6d430861fbf21894c7d88e136b74b5b948379ac51eb03868a5279b42aea7a42f6207699e97d0
data/.gitignore CHANGED
@@ -8,6 +8,7 @@
8
8
  /tmp/
9
9
 
10
10
  .italian-ruby
11
+ *.swp
11
12
 
12
13
  # rspec failure tracking
13
14
  .rspec_status
@@ -1 +1 @@
1
- 2.7.0
1
+ 2.7.2
@@ -1,8 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- italian-ruby (0.1.0)
5
- ruby2ruby (~> 2.4)
4
+ italian-ruby (1.0.0)
6
5
 
7
6
  GEM
8
7
  remote: https://rubygems.org/
@@ -22,12 +21,6 @@ GEM
22
21
  diff-lcs (>= 1.2.0, < 2.0)
23
22
  rspec-support (~> 3.9.0)
24
23
  rspec-support (3.9.2)
25
- ruby2ruby (2.4.4)
26
- ruby_parser (~> 3.1)
27
- sexp_processor (~> 4.6)
28
- ruby_parser (3.14.2)
29
- sexp_processor (~> 4.9)
30
- sexp_processor (4.14.1)
31
24
 
32
25
  PLATFORMS
33
26
  ruby
@@ -39,4 +32,4 @@ DEPENDENCIES
39
32
  rspec (~> 3.9)
40
33
 
41
34
  BUNDLED WITH
42
- 2.1.2
35
+ 2.1.4
@@ -4,28 +4,19 @@
4
4
  require "rspec"
5
5
  require "italian/ruby"
6
6
 
7
- def translate_spec(spec_file)
8
- translated_spec_file = ".italian-ruby/#{File.dirname spec_file}/#{File.basename(spec_file, ".ir")}.rb"
9
- translated_spec_dir = File.dirname translated_spec_file
10
- FileUtils.mkdir_p translated_spec_dir unless Dir.exists? translated_spec_dir
11
- File.write translated_spec_file, Italian::Ruby::Traduttore.traduci(spec_file)
12
- translated_spec_file
13
- end
14
-
15
- def destroy_spec(translated_spec_file)
16
- File.delete translated_spec_file if File.exist? translated_spec_file
17
- end
18
-
19
7
  if ARGV[0].nil?
20
- spec_files = Dir["spec/**/*_spec.ir"]
21
- if spec_files.empty?
8
+ archivi_con_spec = Dir["spec/**/*_spec.ir"]
9
+
10
+ if archivi_con_spec.none?
22
11
  "Nessun file *_spec.ir trovato."
23
12
  return
24
13
  end
25
14
  else
26
- spec_files = ARGV
15
+ archivi_con_spec = ARGV
16
+ end
17
+
18
+ archivi_tradotti = archivi_con_spec.map do |archivio|
19
+ Italian::Ruby::Traduttore.traduci archivio
27
20
  end
28
21
 
29
- translated_spec_files = spec_files.map { |file| translate_spec file }
30
- RSpec::Core::Runner.run(translated_spec_files, STDIN, STDOUT)
31
- # translated_spec_files.each { |file| destroy_spec file }
22
+ RSpec::Core::Runner.run archivi_tradotti, STDIN, STDOUT
@@ -4,15 +4,15 @@
4
4
  require "italian/ruby"
5
5
 
6
6
  if ARGV[0].nil?
7
- puts <<~EOS
7
+ puts <<~EOC
8
8
  Esegue un file scritto in Italian Ruby. Sintassi:
9
9
  italian-ruby file.ir
10
- EOS
10
+ EOC
11
11
  else
12
- ARGV.each do |file|
13
- next unless file
12
+ ARGV.each do |percorso_archivio|
13
+ next unless percorso_archivio
14
14
 
15
- codice_ruby = Italian::Ruby::Traduttore.traduci file
16
- eval codice_ruby
15
+ archivio_tradotto = Italian::Ruby::Traduttore.traduci percorso_archivio
16
+ Italian::Ruby::Traduttore.esegui archivio_tradotto
17
17
  end
18
- end
18
+ end
File without changes
File without changes
File without changes
@@ -1,8 +1,8 @@
1
- require_relative 'lib/italian/ruby/version'
1
+ require_relative "lib/italian/ruby/versione"
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "italian-ruby"
5
- spec.version = Italian::Ruby::VERSION
5
+ spec.version = Italian::Ruby::VERSIONE
6
6
  spec.authors = ["Francesco Ballardin"]
7
7
  spec.email = ["francesco.ballardin@gmail.com"]
8
8
  spec.licenses = ["MIT"]
@@ -10,13 +10,14 @@ Gem::Specification.new do |spec|
10
10
  spec.summary = %q{Program in Ruby writing in Italian.}
11
11
  spec.description = %q{Program in Ruby writing in Italian. Yay!}
12
12
  spec.homepage = "https://github.com/Pluvie/italian-ruby"
13
- spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
+
14
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
14
15
 
15
16
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
16
17
 
17
- spec.metadata["homepage_uri"] = spec.homepage
18
- spec.metadata["source_code_uri"] = "https://github.com/Pluvie/italian-ruby"
19
- spec.metadata["changelog_uri"] = "https://github.com/Pluvie/italian-ruby/CHANGELOG.md"
18
+ spec.metadata["homepage_uri"] = spec.homepage
19
+ spec.metadata["source_code_uri"] = "https://github.com/Pluvie/italian-ruby"
20
+ spec.metadata["changelog_uri"] = "https://github.com/Pluvie/italian-ruby/CHANGELOG.md"
20
21
 
21
22
  # Specify which files should be added to the gem when it is released.
22
23
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -1,23 +1,48 @@
1
- #####
2
- # Ruby 2.7.0 -> Spegni warning finché non sarà tutto sistemato.
3
- Warning[:experimental] = false
4
- Warning[:deprecated] = false
5
- #####
1
+ require "fileutils"
6
2
 
7
- require "italian/ruby/version"
8
- require "italian/ruby/traduttore"
9
- require "italian/ruby/core_ext"
3
+ require_relative "ruby/metodi"
4
+ require_relative "ruby/alias"
5
+
6
+ require_relative "ruby/versione"
7
+ require_relative "ruby/traduttore"
10
8
 
11
9
  module Italian
12
10
  module Ruby
13
- class << self
14
11
 
15
- def translations_dir_path
16
- path = File.join File.expand_path("~"), ".italian-ruby", "translations"
17
- FileUtils.mkdir_p path unless Dir.exists? path
18
- path
19
- end
12
+ ##
13
+ # Ottiene il percorso dove salvare tutti i file con estensione .ir
14
+ # nella relativa versione tradotta (che avrà estensione .rb).
15
+ def self.cartella_traduzioni
16
+ percorso = File.join cartella_casa, ".italian-ruby", "traduzioni"
17
+ FileUtils.mkdir_p percorso unless Dir.exists? percorso
18
+ percorso
19
+ end
20
20
 
21
+ ##
22
+ # Ottiene il percorso della cartella casa dell'utente corrente.
23
+ def self.cartella_casa
24
+ File.expand_path "~"
21
25
  end
26
+
27
+ ##
28
+ # Restituisce il percorso tradotto di un archivio.
29
+ def self.percorso_archivio_tradotto(percorso_archivio)
30
+ File.join Italian::Ruby.cartella_traduzioni,
31
+ File.expand_path(percorso_archivio).gsub(/\.ir$/, ".rb")
32
+ end
33
+
34
+ ##
35
+ # Restituisce il percorso non tradotto di un archivio.
36
+ def self.percorso_archivio_non_tradotto(percorso_archivio)
37
+ return percorso_archivio unless percorso_archivio.respond_to? :partition
38
+ percorso_archivio.partition(cartella_traduzioni).last.gsub(/\.rb$/, ".ir")
39
+ end
40
+
41
+ ##
42
+ # Aggiunge il percorso indicato ai percorsi di caricamento in memoria.
43
+ def self.aggiungi_percorso_caricamento_in_memoria(percorso_cartella)
44
+ $: << percorso_cartella
45
+ end
46
+
22
47
  end
23
48
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "alias/array"
4
+ require_relative "alias/class"
5
+ require_relative "alias/date"
6
+ require_relative "alias/enumerator"
7
+ require_relative "alias/error"
8
+ require_relative "alias/false_class"
9
+ require_relative "alias/file"
10
+ require_relative "alias/float"
11
+ require_relative "alias/hash"
12
+ require_relative "alias/integer"
13
+ require_relative "alias/io"
14
+ require_relative "alias/kernel"
15
+ require_relative "alias/main"
16
+ require_relative "alias/module"
17
+ require_relative "alias/nil_class"
18
+ require_relative "alias/numeric"
19
+ require_relative "alias/object"
20
+ require_relative "alias/open_struct"
21
+ require_relative "alias/proc"
22
+ require_relative "alias/range"
23
+ require_relative "alias/rational"
24
+ require_relative "alias/set"
25
+ require_relative "alias/symbol"
26
+ require_relative "alias/string"
27
+ require_relative "alias/time"
28
+ require_relative "alias/true_class"
@@ -1,9 +1,8 @@
1
- ##
2
- # Core Ext - Array
3
- #
4
- # Alias di metodi della classe Array.
1
+ # frozen_string_literal: true
5
2
 
6
3
  class Array
4
+
5
+ alias :ispeziona :inspect
7
6
  alias :per_ogni :each
8
7
  alias :per_ognuno :each
9
8
  alias :per_ognuna :each
@@ -75,82 +74,14 @@ class Array
75
74
  alias :salta_i_primi :drop
76
75
  alias :salta_le_prime :drop
77
76
 
78
- def esiste?
79
- !nil? && !empty?
80
- end
81
-
82
- def non_include?(*args)
83
- !include? *args
84
- end
85
-
86
- def pizzica(method_name)
87
- self.map do |element|
88
- if element.respond_to? method_name
89
- element.send method_name
90
- elsif element.is_a? Hash
91
- element[method_name]
92
- else
93
- raise ArgumentError, "Array elements do not respond to #{method_name}."
94
- end
95
- end
96
- end
97
-
98
- def simbolizza!
99
- self.map! do |element|
100
- if element.is_a? Hash
101
- element.simbolizza!
102
- else
103
- element
104
- end
105
- end
106
- self
107
- end
108
-
109
- def simbolizza
110
- self.map do |element|
111
- if element.is_a? Hash
112
- element.simbolizza
113
- else
114
- element
115
- end
116
- end
117
- end
118
-
119
- def mappa_e_rimuovi_duplicati(&block)
120
- self.map.with_index(&block).uniq
121
- end
122
-
123
- def mappa_e_compatta(&block)
124
- self.map.with_index(&block).compact
125
- end
126
-
127
- def mappa_e_appiattisci(&block)
128
- self.map.with_index(&block).flatten
129
- end
130
-
131
- def in_mappa(&block)
132
- if block_given?
133
- self.map(&block).to_h
134
- else
135
- self.to_h
136
- end
137
- end
138
-
139
- def secondo
140
- self[1]
141
- end
142
- alias :seconda :secondo
143
-
144
- def tronca(n = 0)
145
- self[0..(-1 - n)]
146
- end
147
- alias :salta_gli_ultimi :tronca
148
- alias :salta_le_ultime :tronca
149
-
150
- def salta_il_primo
151
- self.drop 1
152
- end
153
- alias :salta_la_prima :salta_il_primo
77
+ alias :specificato? :esiste?
78
+ alias :specificata? :esiste?
79
+ alias :seconda :secondo
80
+ alias :salta_gli_ultimi :tronca
81
+ alias :salta_le_ultime :tronca
82
+ alias :salta_la_prima :salta_il_primo
83
+ alias :tranne_la_prima :salta_il_primo
84
+ alias :tranne_il_primo :salta_il_primo
154
85
  end
155
86
 
156
87
  Lista = Array
@@ -1,7 +1,13 @@
1
- ##
2
- # CoreExt - Class
1
+ # frozen_string_literal: true
3
2
 
4
3
  class Class
4
+
5
+ class << self
6
+
7
+ alias :definisci_metodo :define_method
8
+
9
+ end
10
+
5
11
  alias :privati :private
6
12
  alias :protetti :protected
7
13
  alias :pubblici :public
@@ -11,4 +17,5 @@ class Class
11
17
  alias :definisci_metodo :define_method
12
18
  alias :apri_classe :class_eval
13
19
  alias :moduli_inclusi :included_modules
20
+
14
21
  end
@@ -1,22 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  require "date"
2
3
 
3
- ##
4
- # Core Ext - Date
5
- #
6
- # Alias di metodi della classe Date.
7
-
8
4
  class Date
5
+
9
6
  class << self
10
7
  alias :oggi :today
11
8
  alias :converti :parse
12
-
13
- def domani
14
- oggi + 1
15
- end
16
-
17
- def ieri
18
- oggi - 1
19
- end
20
9
  end
21
10
 
22
11
  alias :anno_prossimo :next_year
@@ -32,30 +21,10 @@ class Date
32
21
  alias :fra? :between?
33
22
  alias :formatta :strftime
34
23
 
35
- def due_anni_fa
36
- self.prev_year.prev_year
37
- end
38
24
  alias :due_anni_precedenti :due_anni_fa
25
+ alias :formatta :formatta_locale
39
26
 
40
- def formatta_locale(format)
41
- if defined? I18n
42
- I18n.l self, format: format
43
- else
44
- strftime format
45
- end
46
- end
47
-
48
- alias :original_equality :==
49
- def ==(other)
50
- return (self == other.to_date) if other.is_a? Time
51
- original_equality other
52
- end
53
-
54
- alias :original_compare :<=>
55
- def <=>(other)
56
- return (self <=> other.to_date) if other.is_a? Time
57
- original_compare other
58
- end
59
27
  end
60
28
 
29
+ Object.send :remove_const, :Data
61
30
  Data = Date
@@ -1,9 +1,8 @@
1
- ##
2
- # Core Ext - Enumerator
3
- #
4
- # Alias di metodi della classe Enumerator.
1
+ # frozen_string_literal: true
5
2
 
6
3
  class Enumerator
4
+
7
5
  alias :mappa :map
8
6
  alias :con_indice :with_index
9
- end
7
+
8
+ end
@@ -1,16 +1,17 @@
1
+ # frozen_string_literal: true
1
2
  require "date"
2
3
 
3
- ##
4
- # Core Ext - StandardError
5
- #
6
- # Alias di metodi della classe StandardError.
7
-
8
4
  class StandardError
5
+
9
6
  alias :messaggio :message
10
7
  alias :traccia :backtrace
8
+
11
9
  end
12
10
 
13
11
  Errore = StandardError
12
+ ErroreCaricamento = LoadError
13
+ ErroreDiTipo = TypeError
14
+ ErroreDiArgomento = ArgumentError
14
15
  MetodoInesistente = NoMethodError
15
16
  ChiaveNonTrovata = KeyError
16
17
  DataNonValida = Date::Error