tuga 0.1.0 → 0.2.0
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 +4 -4
- data/CHANGELOG.md +20 -0
- data/README.md +23 -0
- data/lib/tuga/core_ext/array.rb +11 -0
- data/lib/tuga/ruby_parser_patches.rb +10 -2
- data/lib/tuga/version.rb +1 -1
- data/tuga.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfa38fdd505799cb2b39b779c384d49d786e696c
|
4
|
+
data.tar.gz: 1f887068baea0e6a71f57ce724b690054617c334
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d2fecbc26a1c9543fd3f65dd635b9f5b0e359f09bfc8d3975860eb914285303e01fd7e98b5d8739209b70c37c2d883251b13757b81581eb2e29c452ef4573bd
|
7
|
+
data.tar.gz: 87fb7670ed60613b5b957c28e5e0b0a085a99677919eb35913b3c5173deeb7d7a2250995fb9f6ae877bcc6a2f51c921fb5dc0b6c4091ceddff87c5c9615a94d5
|
data/CHANGELOG.md
CHANGED
@@ -3,3 +3,23 @@ All notable changes to this project will be documented in this file.
|
|
3
3
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [0.2.0] - 2020-06-07
|
8
|
+
### Added
|
9
|
+
- Added the keywords `senao`, `entao`, `inicio`, `varias_opcoes`, `senao_se`, `modulo`, `ate_que` and `nao`. These
|
10
|
+
keywords contain only ASCII characters which makes them much easier to type and parse.
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- Improved the usage documentation
|
14
|
+
|
15
|
+
### Fixed
|
16
|
+
- Fixed a security vulnerability in Rake [(CVE-2020-8130)](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8130)
|
17
|
+
by updating it from `~ 10.0` to `~ 12.3`.
|
18
|
+
|
19
|
+
## [0.1.0] - 2020-06-06
|
20
|
+
### Added
|
21
|
+
- Initial core functionality
|
22
|
+
- Codebase maintenance tools
|
23
|
+
|
24
|
+
[0.2.0]: https://github.com/wilsonsilva/tuga/compare/v0.1.0...v0.2.0
|
25
|
+
[0.1.0]: https://github.com/wilsonsilva/tuga/compare/ba17557...v0.1.0
|
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
[](https://badge.fury.io/rb/tuga)
|
4
4
|
[](https://travis-ci.org/wilsonsilva/tuga)
|
5
|
+
[](https://codeclimate.com/github/wilsonsilva/tuga/maintainability)
|
6
|
+
[](https://codeclimate.com/github/wilsonsilva/tuga/test_coverage)
|
5
7
|
[](https://hakiri.io/github/wilsonsilva/tuga/master)
|
6
8
|
[](http://inch-ci.org/github/wilsonsilva/tuga)
|
7
9
|
|
@@ -29,10 +31,31 @@ Or install it yourself as:
|
|
29
31
|
|
30
32
|
## Usage
|
31
33
|
|
34
|
+
### In the command line
|
35
|
+
Run the `tuga` command followed by a filename.
|
36
|
+
|
32
37
|
```
|
33
38
|
tuga soure_code.pt
|
34
39
|
```
|
35
40
|
|
41
|
+
### In an application
|
42
|
+
Require the `Tuga` transpiler and give it Tuga source code.
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
require 'tuga/transpiler'
|
46
|
+
|
47
|
+
source_code = <<~BACALHAU
|
48
|
+
lista_de_frutas = ['maçã', 'manga', 'goiaba', 'uva']
|
49
|
+
|
50
|
+
por_cada fruta na lista_de_frutas fazer
|
51
|
+
escrever fruta.com_letra_maiuscula
|
52
|
+
fim
|
53
|
+
BACALHAU
|
54
|
+
|
55
|
+
transpiler = Tuga::Transpiler.new
|
56
|
+
transpiler.to_ruby(source_code)
|
57
|
+
```
|
58
|
+
|
36
59
|
## Development
|
37
60
|
|
38
61
|
After checking out the repo, run `bin/setup` to install dependencies, configure git hooks and create support files.
|
data/lib/tuga/core_ext/array.rb
CHANGED
@@ -2,10 +2,21 @@
|
|
2
2
|
|
3
3
|
# Portuguese translations
|
4
4
|
class Array
|
5
|
+
# Reverte os elementos da lista
|
5
6
|
alias inverter reverse
|
7
|
+
|
8
|
+
# Retorna o ultimo elemento da lista
|
6
9
|
alias ultimo last
|
10
|
+
|
11
|
+
# Retorna o primeiro elemento da lista
|
7
12
|
alias primeiro first
|
13
|
+
|
14
|
+
# Itera sobre cada elemento da lista
|
8
15
|
alias cada each
|
16
|
+
|
17
|
+
# Itera sobre cada elemento da lista com um indice
|
9
18
|
alias cada_com_indice each_with_index
|
19
|
+
|
20
|
+
# Retorna o numero de elementos da lista
|
10
21
|
alias comprimento length
|
11
22
|
end
|
@@ -23,24 +23,31 @@ module RubyParserStuff
|
|
23
23
|
['alias', %i[kALIAS kALIAS], :expr_fname],
|
24
24
|
['garantir', %i[kENSURE kENSURE], :expr_beg],
|
25
25
|
['senão', %i[kELSE kELSE], :expr_beg],
|
26
|
+
['senao', %i[kELSE kELSE], :expr_beg],
|
26
27
|
['então', %i[kTHEN kTHEN], :expr_beg],
|
28
|
+
['entao', %i[kTHEN kTHEN], :expr_beg],
|
27
29
|
['fazer', %i[kDO kDO], :expr_beg],
|
28
|
-
['início', %i[kBEGIN kBEGIN], :expr_beg]
|
30
|
+
['início', %i[kBEGIN kBEGIN], :expr_beg],
|
31
|
+
['inicio', %i[kBEGIN kBEGIN], :expr_beg]
|
29
32
|
]
|
30
33
|
|
31
34
|
expression_keywords = [
|
32
35
|
['e', %i[kAND kAND], :expr_beg],
|
33
36
|
['várias_opções', %i[kCASE kCASE], :expr_beg],
|
37
|
+
['varias_opcoes', %i[kCASE kCASE], :expr_beg],
|
34
38
|
['senão_se', %i[kELSIF kELSIF], :expr_beg],
|
39
|
+
['senao_se', %i[kELSIF kELSIF], :expr_beg],
|
35
40
|
['por_cada', %i[kFOR kFOR], :expr_beg],
|
36
41
|
['se', %i[kIF kIF_MOD], :expr_beg],
|
37
42
|
['na', %i[kIN kIN], :expr_beg],
|
38
43
|
['em', %i[kIN kIN], :expr_beg],
|
39
44
|
['módulo', %i[kMODULE kMODULE], :expr_beg],
|
45
|
+
['modulo', %i[kMODULE kMODULE], :expr_beg],
|
40
46
|
['grupo', %i[kMODULE kMODULE], :expr_beg],
|
41
47
|
['ou', %i[kOR kOR], :expr_beg],
|
42
48
|
['excepto_se', %i[kUNLESS kUNLESS_MOD], :expr_beg],
|
43
49
|
['até_que', %i[kUNTIL kUNTIL_MOD], :expr_beg],
|
50
|
+
['ate_que', %i[kUNTIL kUNTIL_MOD], :expr_beg],
|
44
51
|
['quando', %i[kWHEN kWHEN], :expr_beg],
|
45
52
|
['enquanto', %i[kWHILE kWHILE_MOD], :expr_beg]
|
46
53
|
]
|
@@ -55,7 +62,8 @@ module RubyParserStuff
|
|
55
62
|
]
|
56
63
|
|
57
64
|
argument_keywords = [
|
58
|
-
['não', %i[kNOT kNOT], :expr_beg]
|
65
|
+
['não', %i[kNOT kNOT], :expr_beg],
|
66
|
+
['nao', %i[kNOT kNOT], :expr_beg]
|
59
67
|
]
|
60
68
|
|
61
69
|
original_verbosity = $VERBOSE
|
data/lib/tuga/version.rb
CHANGED
data/tuga.gemspec
CHANGED
@@ -39,7 +39,7 @@ Gem::Specification.new do |spec|
|
|
39
39
|
spec.add_development_dependency 'guard-rubocop', '~> 1.3'
|
40
40
|
spec.add_development_dependency 'overcommit', '~> 0.53'
|
41
41
|
spec.add_development_dependency 'pry', '~> 0.13'
|
42
|
-
spec.add_development_dependency 'rake', '~>
|
42
|
+
spec.add_development_dependency 'rake', '~> 12.3'
|
43
43
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
44
44
|
spec.add_development_dependency 'rubocop', '~> 0.85'
|
45
45
|
spec.add_development_dependency 'rubocop-rspec', '~> 1.39'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tuga
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wilson Silva
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby2ruby
|
@@ -170,14 +170,14 @@ dependencies:
|
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
173
|
+
version: '12.3'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
180
|
+
version: '12.3'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: rspec
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|