rspec-i18n 0.2.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +13 -0
- data/History.rdoc +17 -2
- data/License.txt +1 -1
- data/README.rdoc +17 -6
- data/Rakefile +6 -4
- data/TODO.txt +5 -5
- data/VERSION.yml +3 -3
- data/examples/i18n/pt/person_spec.rb +117 -12
- data/lib/spec-i18n/command_line/language_help_formatter.rb +67 -14
- data/lib/spec-i18n/command_line/options.rb +18 -17
- data/lib/spec-i18n/dsl/main.rb +1 -1
- data/lib/spec-i18n/example/before_and_after_hooks.rb +14 -9
- data/lib/spec-i18n/example/example_group_methods.rb +1 -1
- data/lib/spec-i18n/example/subject.rb +29 -0
- data/lib/spec-i18n/example.rb +2 -1
- data/lib/spec-i18n/expectations/extensions/kernel.rb +1 -1
- data/lib/spec-i18n/languages.yml +40 -3
- data/lib/spec-i18n/matchers/be.rb +19 -0
- data/lib/spec-i18n/matchers/method_missing.rb +25 -0
- data/lib/spec-i18n/matchers/register_all_matchers.rb +10 -0
- data/lib/spec-i18n/matchers/translate_basic_matchers.rb +28 -0
- data/lib/spec-i18n/matchers.rb +6 -0
- data/lib/spec-i18n/parser/natural_language.rb +19 -27
- data/lib/spec-i18n/runner/configuration.rb +3 -0
- data/lib/spec-i18n/spec_language.rb +3 -0
- data/lib/spec-i18n.rb +2 -1
- data/rspec-i18n.gemspec +57 -18
- data/spec/spec-i18n/command_line/language_help_formatter_spec.rb +73 -4
- data/spec/spec-i18n/dsl/main_spec.rb +1 -1
- data/spec/spec-i18n/example/subject_spec.rb +125 -0
- data/spec/spec-i18n/expectations/kernel_spec.rb +1 -0
- data/spec/spec-i18n/matchers/be_close_spec.rb +40 -0
- data/spec/spec-i18n/matchers/be_instance_of_spec.rb +32 -0
- data/spec/spec-i18n/matchers/be_kind_of_spec.rb +37 -0
- data/spec/spec-i18n/matchers/be_spec.rb +61 -0
- data/spec/spec-i18n/matchers/eql_spec.rb +33 -0
- data/spec/spec-i18n/matchers/equal_spec.rb +26 -0
- data/spec/spec-i18n/matchers/exist_spec.rb +45 -0
- data/spec/spec-i18n/matchers/have_spec.rb +61 -0
- data/spec/spec-i18n/matchers/include_spec.rb +34 -0
- data/spec/spec-i18n/matchers/match_spec.rb +36 -0
- data/spec/spec-i18n/matchers/raise_error_spec.rb +25 -0
- data/spec/spec-i18n/matchers/register_all_matchers_spec.rb +17 -0
- data/spec/spec-i18n/matchers/satisfy_spec.rb +28 -0
- data/spec/spec-i18n/parser/natural_language_spec.rb +42 -58
- data/spec/spec-i18n/spec_examples/pt/pessoa_spec.rb +153 -0
- data/spec/spec-i18n/spec_language_spec.rb +6 -0
- data/spec/spec.opts +1 -1
- data/spec/spec_helper.rb +44 -0
- metadata +66 -13
- data/pkg/rspec-i18n-0.1.0.gem +0 -0
- data/pkg/rspec-i18n-0.2.0.gem +0 -0
- data/spec/spec-i18n/example_spec.rb +0 -47
@@ -0,0 +1,153 @@
|
|
1
|
+
require 'spec-i18n'
|
2
|
+
|
3
|
+
Spec::Runner.configure do |config|
|
4
|
+
config.spec_language :pt
|
5
|
+
end
|
6
|
+
|
7
|
+
class Pessoa
|
8
|
+
attr_accessor :idade
|
9
|
+
def initialize(nome, sobrenome, opcoes={})
|
10
|
+
@nome = nome
|
11
|
+
@sobrenome = sobrenome
|
12
|
+
@idade = opcoes[:idade]
|
13
|
+
end
|
14
|
+
|
15
|
+
def nome_completo
|
16
|
+
"#{@nome} #{@sobrenome}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def maior_de_idade?
|
20
|
+
return true if @idade >= 18
|
21
|
+
false
|
22
|
+
end
|
23
|
+
|
24
|
+
def pronto_para_votar?
|
25
|
+
maior_de_idade?
|
26
|
+
end
|
27
|
+
|
28
|
+
def pronto_para_dirigir?
|
29
|
+
maior_de_idade?
|
30
|
+
end
|
31
|
+
|
32
|
+
def autorizado_a_beber?
|
33
|
+
maior_de_idade?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Silly Tests for specifying the library in portuguese language
|
38
|
+
descreva Pessoa do
|
39
|
+
|
40
|
+
antes(:de_todos) do
|
41
|
+
@pessoa = Pessoa.new("Homer", "Simpson")
|
42
|
+
end
|
43
|
+
|
44
|
+
antes(:de_cada) do
|
45
|
+
@pessoas = [@pessoa]
|
46
|
+
end
|
47
|
+
|
48
|
+
depois(:de_todos) do
|
49
|
+
@outras_pessoas = @pessoas.dup
|
50
|
+
end
|
51
|
+
|
52
|
+
depois(:de_cada) do
|
53
|
+
@outras_pessoas = []
|
54
|
+
end
|
55
|
+
|
56
|
+
depois(:suite) do
|
57
|
+
@pessoas = []
|
58
|
+
end
|
59
|
+
|
60
|
+
exemplo 'deve ser uma instancia da classe Pessoa' do
|
61
|
+
@pessoa.deve ser_instancia_de(Pessoa)
|
62
|
+
end
|
63
|
+
|
64
|
+
exemplo 'deve incluir uma pessoa' do
|
65
|
+
@pessoas.deve incluir(@pessoa)
|
66
|
+
end
|
67
|
+
|
68
|
+
exemplo 'deve ser do tipo Pessoa' do
|
69
|
+
@pessoa.deve ser_do_tipo(Pessoa)
|
70
|
+
end
|
71
|
+
|
72
|
+
exemplo 'deve ter pelo menos uma pessoa' do
|
73
|
+
@pessoas.deve ter_no_minimo(1).items
|
74
|
+
end
|
75
|
+
|
76
|
+
exemplo 'deve ter exatamente duas pessoas' do
|
77
|
+
@pessoas << @pessoa
|
78
|
+
@pessoas.deve ter_exatamente(2).items
|
79
|
+
end
|
80
|
+
|
81
|
+
exemplo 'deve ter no maximo tres pessoas' do
|
82
|
+
@pessoas = []
|
83
|
+
@pessoas.deve ter_no_maximo(3).items
|
84
|
+
end
|
85
|
+
|
86
|
+
contexto "Nome completo" do
|
87
|
+
|
88
|
+
antes(:de_cada_exemplo) do
|
89
|
+
@pessoa = Pessoa.new("Tomás", "D'Stefano")
|
90
|
+
end
|
91
|
+
|
92
|
+
exemplo "deve retornar o nome completo" do
|
93
|
+
@pessoa.nome_completo.deve ==("Tomás D'Stefano")
|
94
|
+
end
|
95
|
+
|
96
|
+
exemplo 'nome completo não pode ser nulo' do
|
97
|
+
@pessoa.nome_completo.nao_deve ser_igual_a(nil)
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
contexto "a idade" do
|
103
|
+
|
104
|
+
antes(:de_todos_exemplos) do
|
105
|
+
@pessoa = Pessoa.new("Aaromn", "Monkey", :idade => 20)
|
106
|
+
end
|
107
|
+
|
108
|
+
especificar "deve ser opcional" do
|
109
|
+
@pessoa.idade.deve ser_igual_a(20)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
contexto 'maior de idade' do
|
114
|
+
assunto { Pessoa.new('Aaron', 'Monkey', :idade => 18) }
|
115
|
+
|
116
|
+
exemplo "deve estar pronto para votar" do
|
117
|
+
deve estar_pronto_para_votar
|
118
|
+
end
|
119
|
+
|
120
|
+
exemplo "deve ser maior de idade" do
|
121
|
+
deve ser_maior_de_idade
|
122
|
+
end
|
123
|
+
|
124
|
+
exemplo "deve estar pronto para dirigir" do
|
125
|
+
assunto.deve estar_pronto_para_dirigir
|
126
|
+
end
|
127
|
+
|
128
|
+
exemplo "deve estar autorizado para beber =D" do
|
129
|
+
assunto.deve estar_autorizado_a_beber
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
contexto 'menor de idade' do
|
134
|
+
assunto { Pessoa.new('Aaron', 'Monkey', :idade => 17) }
|
135
|
+
|
136
|
+
exemplo "nao deve estar pronto para votar" do
|
137
|
+
nao_deve estar_pronto_para_votar
|
138
|
+
end
|
139
|
+
|
140
|
+
exemplo "nao deve ser maior de idade" do
|
141
|
+
nao_deve ser_maior_de_idade
|
142
|
+
end
|
143
|
+
|
144
|
+
exemplo "nao deve estar pronto para votar" do
|
145
|
+
assunto.nao_deve estar_pronto_para_votar
|
146
|
+
end
|
147
|
+
|
148
|
+
exemplo "nao deve estar autorizado para beber =(" do
|
149
|
+
assunto.nao_deve estar_autorizado_a_beber
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
@@ -13,4 +13,10 @@ describe SpecI18n do
|
|
13
13
|
spec_language.should == language
|
14
14
|
end
|
15
15
|
end
|
16
|
+
|
17
|
+
it "should assign the natural language" do
|
18
|
+
language = 'pt'
|
19
|
+
Spec::Runner.configuration.spec_language(language)
|
20
|
+
natural_language.keywords.should == Parser::NaturalLanguage.get(spec_language).keywords
|
21
|
+
end
|
16
22
|
end
|
data/spec/spec.opts
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -5,6 +5,28 @@ require 'spec-i18n'
|
|
5
5
|
|
6
6
|
$:.unshift(File.dirname(__FILE__), '../lib')
|
7
7
|
|
8
|
+
include SpecI18n
|
9
|
+
|
10
|
+
def portuguese_language(expected)
|
11
|
+
pt = Parser::NaturalLanguage.get("pt")
|
12
|
+
SpecI18n.stub!(:natural_language).and_return(pt)
|
13
|
+
|
14
|
+
expected['matchers']['be'] = 'ser|estar' unless expected['matchers'].nil?
|
15
|
+
|
16
|
+
predicade = pt.stub(:keywords).and_return(expected)
|
17
|
+
expected
|
18
|
+
end
|
19
|
+
|
20
|
+
def spanish_language(expected)
|
21
|
+
es = Parser::NaturalLanguage.get("es")
|
22
|
+
SpecI18n.stub!(:natural_language).and_return(es)
|
23
|
+
|
24
|
+
expected['matchers']['be'] = 'ser|estar' unless expected['matchers'].nil?
|
25
|
+
|
26
|
+
predicade = es.stub(:keywords).and_return(expected)
|
27
|
+
expected
|
28
|
+
end
|
29
|
+
|
8
30
|
def with_sandboxed_options
|
9
31
|
attr_reader :options
|
10
32
|
|
@@ -38,3 +60,25 @@ def with_sandboxed_config
|
|
38
60
|
|
39
61
|
yield
|
40
62
|
end
|
63
|
+
|
64
|
+
module Spec
|
65
|
+
module Matchers
|
66
|
+
def fail_with(message)
|
67
|
+
raise_error(Spec::Expectations::ExpectationNotMetError, message)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
module Spec
|
73
|
+
module Example
|
74
|
+
class ExampleGroupDouble < ExampleGroup
|
75
|
+
::Spec::Runner.options.remove_example_group self
|
76
|
+
def register_example_group(klass)
|
77
|
+
#ignore
|
78
|
+
end
|
79
|
+
def initialize(proxy=nil, &block)
|
80
|
+
super(proxy || ExampleProxy.new, &block)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-i18n
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomas D'Stefano
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-19 00:00:00 -02:00
|
13
13
|
default_executable: rspec-i18n
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,17 +20,27 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 1.
|
23
|
+
version: 1.3.0
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
26
|
+
name: terminal-table
|
27
27
|
type: :runtime
|
28
28
|
version_requirement:
|
29
29
|
version_requirements: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.4.2
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: term-ansicolor
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - "="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.0.4
|
34
44
|
version:
|
35
45
|
- !ruby/object:Gem::Dependency
|
36
46
|
name: rspec
|
@@ -43,14 +53,24 @@ dependencies:
|
|
43
53
|
version: 1.2.9
|
44
54
|
version:
|
45
55
|
- !ruby/object:Gem::Dependency
|
46
|
-
name:
|
56
|
+
name: terminal-table
|
47
57
|
type: :development
|
48
58
|
version_requirement:
|
49
59
|
version_requirements: !ruby/object:Gem::Requirement
|
50
60
|
requirements:
|
51
61
|
- - ">="
|
52
62
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
63
|
+
version: 1.4.2
|
64
|
+
version:
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: term-ansicolor
|
67
|
+
type: :development
|
68
|
+
version_requirement:
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 1.0.4
|
54
74
|
version:
|
55
75
|
description: A internacionalization tool written in Ruby for the Rspec Framework
|
56
76
|
email: tomasdestefi@gmail.com
|
@@ -61,6 +81,7 @@ extensions: []
|
|
61
81
|
extra_rdoc_files:
|
62
82
|
- README.rdoc
|
63
83
|
files:
|
84
|
+
- .gitignore
|
64
85
|
- History.rdoc
|
65
86
|
- License.txt
|
66
87
|
- README.rdoc
|
@@ -78,18 +99,22 @@ files:
|
|
78
99
|
- lib/spec-i18n/example.rb
|
79
100
|
- lib/spec-i18n/example/before_and_after_hooks.rb
|
80
101
|
- lib/spec-i18n/example/example_group_methods.rb
|
102
|
+
- lib/spec-i18n/example/subject.rb
|
81
103
|
- lib/spec-i18n/expectations.rb
|
82
104
|
- lib/spec-i18n/expectations/extensions.rb
|
83
105
|
- lib/spec-i18n/expectations/extensions/kernel.rb
|
84
106
|
- lib/spec-i18n/languages.yml
|
107
|
+
- lib/spec-i18n/matchers.rb
|
108
|
+
- lib/spec-i18n/matchers/be.rb
|
109
|
+
- lib/spec-i18n/matchers/method_missing.rb
|
110
|
+
- lib/spec-i18n/matchers/register_all_matchers.rb
|
111
|
+
- lib/spec-i18n/matchers/translate_basic_matchers.rb
|
85
112
|
- lib/spec-i18n/parser.rb
|
86
113
|
- lib/spec-i18n/parser/natural_language.rb
|
87
114
|
- lib/spec-i18n/platform.rb
|
88
115
|
- lib/spec-i18n/runner.rb
|
89
116
|
- lib/spec-i18n/runner/configuration.rb
|
90
117
|
- lib/spec-i18n/spec_language.rb
|
91
|
-
- pkg/rspec-i18n-0.1.0.gem
|
92
|
-
- pkg/rspec-i18n-0.2.0.gem
|
93
118
|
- rspec-i18n.gemspec
|
94
119
|
- spec/spec-i18n/command_line/language_help_formatter_spec.rb
|
95
120
|
- spec/spec-i18n/command_line/main_spec.rb
|
@@ -97,11 +122,25 @@ files:
|
|
97
122
|
- spec/spec-i18n/dsl/main_spec.rb
|
98
123
|
- spec/spec-i18n/example/before_and_after_hooks_spec.rb
|
99
124
|
- spec/spec-i18n/example/example_group_methods_spec.rb
|
100
|
-
- spec/spec-i18n/
|
125
|
+
- spec/spec-i18n/example/subject_spec.rb
|
101
126
|
- spec/spec-i18n/expectations/kernel_spec.rb
|
127
|
+
- spec/spec-i18n/matchers/be_close_spec.rb
|
128
|
+
- spec/spec-i18n/matchers/be_instance_of_spec.rb
|
129
|
+
- spec/spec-i18n/matchers/be_kind_of_spec.rb
|
130
|
+
- spec/spec-i18n/matchers/be_spec.rb
|
131
|
+
- spec/spec-i18n/matchers/eql_spec.rb
|
132
|
+
- spec/spec-i18n/matchers/equal_spec.rb
|
133
|
+
- spec/spec-i18n/matchers/exist_spec.rb
|
134
|
+
- spec/spec-i18n/matchers/have_spec.rb
|
135
|
+
- spec/spec-i18n/matchers/include_spec.rb
|
136
|
+
- spec/spec-i18n/matchers/match_spec.rb
|
137
|
+
- spec/spec-i18n/matchers/raise_error_spec.rb
|
138
|
+
- spec/spec-i18n/matchers/register_all_matchers_spec.rb
|
139
|
+
- spec/spec-i18n/matchers/satisfy_spec.rb
|
102
140
|
- spec/spec-i18n/parser/natural_language_spec.rb
|
103
141
|
- spec/spec-i18n/runner/configuration_spec.rb
|
104
142
|
- spec/spec-i18n/runner/runner_spec.rb
|
143
|
+
- spec/spec-i18n/spec_examples/pt/pessoa_spec.rb
|
105
144
|
- spec/spec-i18n/spec_language_spec.rb
|
106
145
|
- spec/spec.opts
|
107
146
|
- spec/spec_helper.rb
|
@@ -114,9 +153,9 @@ post_install_message: |
|
|
114
153
|
--------------------------------------------------------------------------------
|
115
154
|
U P G R A D I N G
|
116
155
|
|
117
|
-
Thank you for installing rspec-i18n-0.
|
156
|
+
Thank you for installing rspec-i18n-1.0.0
|
118
157
|
Please be sure to read http://wiki.github.com/tomas-stefano/rspec-i18n/upgrading
|
119
|
-
for
|
158
|
+
for information about this release.
|
120
159
|
|
121
160
|
Remember: 'TDD is a muscle. You have to exercise it.' =) (Brian Liles)
|
122
161
|
|
@@ -152,11 +191,25 @@ test_files:
|
|
152
191
|
- spec/spec-i18n/dsl/main_spec.rb
|
153
192
|
- spec/spec-i18n/example/before_and_after_hooks_spec.rb
|
154
193
|
- spec/spec-i18n/example/example_group_methods_spec.rb
|
155
|
-
- spec/spec-i18n/
|
194
|
+
- spec/spec-i18n/example/subject_spec.rb
|
156
195
|
- spec/spec-i18n/expectations/kernel_spec.rb
|
196
|
+
- spec/spec-i18n/matchers/be_close_spec.rb
|
197
|
+
- spec/spec-i18n/matchers/be_instance_of_spec.rb
|
198
|
+
- spec/spec-i18n/matchers/be_kind_of_spec.rb
|
199
|
+
- spec/spec-i18n/matchers/be_spec.rb
|
200
|
+
- spec/spec-i18n/matchers/eql_spec.rb
|
201
|
+
- spec/spec-i18n/matchers/equal_spec.rb
|
202
|
+
- spec/spec-i18n/matchers/exist_spec.rb
|
203
|
+
- spec/spec-i18n/matchers/have_spec.rb
|
204
|
+
- spec/spec-i18n/matchers/include_spec.rb
|
205
|
+
- spec/spec-i18n/matchers/match_spec.rb
|
206
|
+
- spec/spec-i18n/matchers/raise_error_spec.rb
|
207
|
+
- spec/spec-i18n/matchers/register_all_matchers_spec.rb
|
208
|
+
- spec/spec-i18n/matchers/satisfy_spec.rb
|
157
209
|
- spec/spec-i18n/parser/natural_language_spec.rb
|
158
210
|
- spec/spec-i18n/runner/configuration_spec.rb
|
159
211
|
- spec/spec-i18n/runner/runner_spec.rb
|
212
|
+
- spec/spec-i18n/spec_examples/pt/pessoa_spec.rb
|
160
213
|
- spec/spec-i18n/spec_language_spec.rb
|
161
214
|
- spec/spec_helper.rb
|
162
215
|
- examples/i18n/pt/person_spec.rb
|
data/pkg/rspec-i18n-0.1.0.gem
DELETED
Binary file
|
data/pkg/rspec-i18n-0.2.0.gem
DELETED
Binary file
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'spec-i18n'
|
2
|
-
|
3
|
-
Spec::Runner.configure do |config|
|
4
|
-
config.spec_language :pt
|
5
|
-
end
|
6
|
-
|
7
|
-
class Pessoa
|
8
|
-
attr_reader :idade
|
9
|
-
def initialize(nome, sobrenome, idade=0)
|
10
|
-
@nome = nome
|
11
|
-
@sobrenome = sobrenome
|
12
|
-
@idade = idade
|
13
|
-
end
|
14
|
-
|
15
|
-
def nome_completo
|
16
|
-
"#{@nome} #{@sobrenome}"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
# Silly Tests
|
21
|
-
descreva Pessoa do
|
22
|
-
|
23
|
-
antes(:de_todos) do
|
24
|
-
@pessoa = Pessoa.new("Tomás", "D'Stefano")
|
25
|
-
end
|
26
|
-
|
27
|
-
antes(:de_cada) do
|
28
|
-
@pessoas = [@pessoa]
|
29
|
-
end
|
30
|
-
|
31
|
-
depois(:de_todos) do
|
32
|
-
@outras_pessoas = @pessoas.dup
|
33
|
-
end
|
34
|
-
|
35
|
-
depois(:de_cada) do
|
36
|
-
@outras_pessoas = []
|
37
|
-
end
|
38
|
-
|
39
|
-
exemplo "deve retornar o nome completo" do
|
40
|
-
@pessoa.nome_completo.deve == "Tomás D'Stefano"
|
41
|
-
end
|
42
|
-
|
43
|
-
especificar "a idade é opcional" do
|
44
|
-
Pessoa.new("Aaromn", "Monkey", 20).idade.deve == 20
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|