conjugate 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/conjugate.rb CHANGED
@@ -4,7 +4,15 @@ require 'conjugate/spanish'
4
4
  require 'conjugate/french'
5
5
 
6
6
  module Conjugate
7
-
8
- end
9
7
 
8
+ def self.conjugate(opts = {})
9
+ if opts[:language].downcase == 'french' || opts[:language].downcase == 'fr'
10
+ Conjugate::French.conjugate(opts)
11
+ elsif opts[:language].downcase == 'spanish' || opts[:language].downcase == 'es'
12
+ Conjugate::Spanish.conjugate(opts)
13
+ else
14
+ raise ArgumentError.new("Langauge: #{ opts[:language] } is not able to be conjugated")
15
+ end
16
+ end
10
17
 
18
+ end
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'rspec'
3
+ require 'conjugate'
4
+
5
+
6
+ describe 'Helper Conjugations' do
7
+
8
+ describe 'methods testing' do
9
+
10
+ it '.conjugate calls Spanish' do
11
+ verb = Conjugate.conjugate({language: 'spanish', verb: 'comprar', tense: :present, pronoun: :yo})
12
+ expect(verb).to eq('compro')
13
+
14
+ verb = Conjugate.conjugate({language: 'es', verb: 'comprar', tense: :present, pronoun: :yo})
15
+ expect(verb).to eq('compro')
16
+ end
17
+
18
+ it '.conjugate calls french' do
19
+ verb = Conjugate.conjugate({language: 'french', verb: 'jouer', tense: :present, pronoun: :je})
20
+ expect(verb).to eq('joue')
21
+
22
+ verb = Conjugate.conjugate({language: 'fr', verb: 'jouer', tense: :present, pronoun: :je})
23
+ expect(verb).to eq('joue')
24
+ end
25
+
26
+ it 'fails with other language' do
27
+ expect { Conjugate.conjugate({language: 'japanese'}) }.to raise_error(ArgumentError)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,187 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'rspec'
3
+ require 'conjugate'
4
+
5
+
6
+ describe 'French Conjugations' do
7
+
8
+ describe 'methods testing' do
9
+
10
+ it '.find_irregular' do
11
+ type = Conjugate::French.find_irregular('aller')
12
+ expect(type).to eq(:aller)
13
+
14
+ type = Conjugate::French.find_irregular('placer')
15
+ expect(type).to eq(:cer)
16
+ end
17
+
18
+ it '.template' do
19
+ template = Conjugate::French.template({verb: 'aller'})
20
+ expect(template[:present][:je]).to eq('vais')
21
+
22
+ template = Conjugate::French.template({verb: 'placer'})
23
+ expect(template[:present][:je]).to eq('{{{1}}}ce')
24
+ end
25
+
26
+ it '.regular_ending' do
27
+ ending = Conjugate::French.regular_ending('aller')
28
+ expect(ending).to eq('er')
29
+
30
+ ending = Conjugate::French.regular_ending('vair')
31
+ expect(ending).to eq('ir')
32
+ end
33
+
34
+ it '.tense' do
35
+ tense = Conjugate::French.tense(:present)
36
+ expect(tense).to eq(:present)
37
+
38
+ tense = Conjugate::French.tense(:passé_composé)
39
+ expect(tense).to eq(:passe_compose)
40
+
41
+ tense = Conjugate::French.tense(:past)
42
+ expect(tense).to eq(:passe_compose)
43
+ end
44
+
45
+ it '.conjugate regular er' do
46
+ verb = Conjugate::French.conjugate({verb: 'jouer', tense: :present, pronoun: :je})
47
+ expect(verb).to eq('joue')
48
+
49
+ verb = Conjugate::French.conjugate({verb: 'jouer', tense: :present, pronoun: :tu})
50
+ expect(verb).to eq('joues')
51
+
52
+ verb = Conjugate::French.conjugate({verb: 'jouer', tense: :present, pronoun: :il})
53
+ expect(verb).to eq('joue')
54
+
55
+ verb = Conjugate::French.conjugate({verb: 'jouer', tense: :present, pronoun: :nous})
56
+ expect(verb).to eq('jouons')
57
+
58
+ verb = Conjugate::French.conjugate({verb: 'jouer', tense: :present, pronoun: :vous})
59
+ expect(verb).to eq('jouez')
60
+
61
+ verb = Conjugate::French.conjugate({verb: 'jouer', tense: :present, pronoun: :ils})
62
+ expect(verb).to eq('jouent')
63
+
64
+ verb = Conjugate::French.conjugate({verb: 'jouer', tense: :past, pronoun: :je})
65
+ expect(verb).to eq('ai joué')
66
+
67
+ verb = Conjugate::French.conjugate({verb: 'jouer', tense: :future, pronoun: :je})
68
+ expect(verb).to eq('jouerai')
69
+ end
70
+
71
+ it '.conjugate regular ir' do
72
+ verb = Conjugate::French.conjugate({verb: 'choisir', tense: :present, pronoun: :je})
73
+ expect(verb).to eq('choisis')
74
+
75
+ verb = Conjugate::French.conjugate({verb: 'choisir', tense: :present, pronoun: :tu})
76
+ expect(verb).to eq('choisis')
77
+
78
+ verb = Conjugate::French.conjugate({verb: 'choisir', tense: :present, pronoun: :il})
79
+ expect(verb).to eq('choisit')
80
+
81
+ verb = Conjugate::French.conjugate({verb: 'choisir', tense: :present, pronoun: :nous})
82
+ expect(verb).to eq('choisissons')
83
+
84
+ verb = Conjugate::French.conjugate({verb: 'choisir', tense: :present, pronoun: :vous})
85
+ expect(verb).to eq('choisissez')
86
+
87
+ verb = Conjugate::French.conjugate({verb: 'choisir', tense: :present, pronoun: :ils})
88
+ expect(verb).to eq('choisissent')
89
+
90
+ verb = Conjugate::French.conjugate({verb: 'choisir', tense: :past, pronoun: :je})
91
+ expect(verb).to eq('ai choisi')
92
+
93
+ verb = Conjugate::French.conjugate({verb: 'choisir', tense: :future, pronoun: :je})
94
+ expect(verb).to eq('choisirai')
95
+ end
96
+
97
+ it '.conjugate regular re' do
98
+ verb = Conjugate::French.conjugate({verb: 'perdre', tense: :present, pronoun: :je})
99
+ expect(verb).to eq('perds')
100
+
101
+ verb = Conjugate::French.conjugate({verb: 'perdre', tense: :present, pronoun: :tu})
102
+ expect(verb).to eq('perds')
103
+
104
+ verb = Conjugate::French.conjugate({verb: 'perdre', tense: :present, pronoun: :il})
105
+ expect(verb).to eq('perd')
106
+
107
+ verb = Conjugate::French.conjugate({verb: 'perdre', tense: :present, pronoun: :nous})
108
+ expect(verb).to eq('perdons')
109
+
110
+ verb = Conjugate::French.conjugate({verb: 'perdre', tense: :present, pronoun: :vous})
111
+ expect(verb).to eq('perdez')
112
+
113
+ verb = Conjugate::French.conjugate({verb: 'perdre', tense: :present, pronoun: :ils})
114
+ expect(verb).to eq('perdent')
115
+
116
+ verb = Conjugate::French.conjugate({verb: 'perdre', tense: :past, pronoun: :je})
117
+ expect(verb).to eq('ai perdu')
118
+
119
+ verb = Conjugate::French.conjugate({verb: 'perdre', tense: :future, pronoun: :je})
120
+ expect(verb).to eq('perdrai')
121
+ end
122
+
123
+ it '.conjugate_irregular avoir verb' do
124
+ verb = Conjugate::French.conjugate({verb: 'faire', tense: :present, pronoun: :je})
125
+ expect(verb).to eq('fais')
126
+
127
+ verb = Conjugate::French.conjugate({verb: 'faire', tense: :past, pronoun: :je})
128
+ expect(verb).to eq('ai fait')
129
+
130
+ verb = Conjugate::French.conjugate({verb: 'faire', tense: :future, pronoun: :je})
131
+ expect(verb).to eq('ferai')
132
+ end
133
+
134
+
135
+ it '.conjugate_irregular etre verb' do
136
+ verb = Conjugate::French.conjugate({verb: 'aller', tense: :present, pronoun: :je})
137
+ expect(verb).to eq('vais')
138
+
139
+ verb = Conjugate::French.conjugate({verb: 'aller', tense: :past, pronoun: :je})
140
+ expect(verb).to eq('suis allé‎')
141
+
142
+ verb = Conjugate::French.conjugate({verb: 'aller', tense: :future, pronoun: :je})
143
+ expect(verb).to eq('irai')
144
+ end
145
+
146
+ it '.conjugates acheter correctly' do
147
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :present, pronoun: :je})
148
+ expect(verb).to eq('achète')
149
+
150
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :present, pronoun: :tu})
151
+ expect(verb).to eq('achètes')
152
+
153
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :present, pronoun: :il})
154
+ expect(verb).to eq('achète')
155
+
156
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :present, pronoun: :nous})
157
+ expect(verb).to eq('achetons')
158
+
159
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :present, pronoun: :vous})
160
+ expect(verb).to eq('achetez')
161
+
162
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :present, pronoun: :ils})
163
+ expect(verb).to eq('achètent')
164
+
165
+
166
+
167
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :conditional, pronoun: :je})
168
+ expect(verb).to eq('achèterais')
169
+
170
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :conditional, pronoun: :tu})
171
+ expect(verb).to eq('achèterais')
172
+
173
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :conditional, pronoun: :il})
174
+ expect(verb).to eq('achèterait')
175
+
176
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :conditional, pronoun: :nous})
177
+ expect(verb).to eq('achèterions')
178
+
179
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :conditional, pronoun: :vous})
180
+ expect(verb).to eq('achèteriez')
181
+
182
+ verb = Conjugate::French.conjugate({verb: 'acheter', tense: :conditional, pronoun: :ils})
183
+ expect(verb).to eq('achèteraient')
184
+
185
+ end
186
+ end
187
+ end
@@ -0,0 +1,115 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'rspec'
3
+ require 'conjugate'
4
+
5
+
6
+ describe 'Spanish Conjugations' do
7
+
8
+ describe 'methods testing' do
9
+
10
+ it '.find_irregular' do
11
+ type = Conjugate::Spanish.find_irregular('ventar')
12
+ expect(type).to eq(:ar_e_ie)
13
+
14
+ type = Conjugate::Spanish.find_irregular('haber')
15
+ expect(type).to eq(:er_haber)
16
+ end
17
+
18
+ it '.template' do
19
+ template = Conjugate::Spanish.template({verb: 'ventar'})
20
+ expect(template[:present][:yo]).to eq('{{{1}}}ie{{{2}}}o')
21
+
22
+ template = Conjugate::Spanish.template({verb: 'placer'})
23
+ expect(template[:present][:yo]).to eq('{{{1}}}plazco')
24
+ end
25
+ it '.conjugate regular ar' do
26
+ verb = Conjugate::Spanish.conjugate({verb: 'comprar', tense: :present, pronoun: :yo})
27
+ expect(verb).to eq('compro')
28
+
29
+ verb = Conjugate::Spanish.conjugate({verb: 'comprar', tense: :present, pronoun: :tu})
30
+ expect(verb).to eq('compras')
31
+
32
+ verb = Conjugate::Spanish.conjugate({verb: 'comprar', tense: :present, pronoun: :el})
33
+ expect(verb).to eq('compra')
34
+
35
+ verb = Conjugate::Spanish.conjugate({verb: 'comprar', tense: :present, pronoun: :nosotros})
36
+ expect(verb).to eq('compramos')
37
+
38
+ verb = Conjugate::Spanish.conjugate({verb: 'comprar', tense: :present, pronoun: :vosotros})
39
+ expect(verb).to eq('compráis')
40
+
41
+ verb = Conjugate::Spanish.conjugate({verb: 'comprar', tense: :present, pronoun: :ellos})
42
+ expect(verb).to eq('compran')
43
+
44
+ verb = Conjugate::Spanish.conjugate({verb: 'comprar', tense: :past, pronoun: :yo})
45
+ expect(verb).to eq('compré')
46
+
47
+ verb = Conjugate::Spanish.conjugate({verb: 'comprar', tense: :future, pronoun: :yo})
48
+ expect(verb).to eq('compraré')
49
+ end
50
+
51
+ it '.conjugate regular er' do
52
+ verb = Conjugate::Spanish.conjugate({verb: 'beber', tense: :present, pronoun: :yo})
53
+ expect(verb).to eq('bebo')
54
+
55
+ verb = Conjugate::Spanish.conjugate({verb: 'beber', tense: :present, pronoun: :tu})
56
+ expect(verb).to eq('bebes')
57
+
58
+ verb = Conjugate::Spanish.conjugate({verb: 'beber', tense: :present, pronoun: :el})
59
+ expect(verb).to eq('bebe')
60
+
61
+ verb = Conjugate::Spanish.conjugate({verb: 'beber', tense: :present, pronoun: :nosotros})
62
+ expect(verb).to eq('bebemos')
63
+
64
+ verb = Conjugate::Spanish.conjugate({verb: 'beber', tense: :present, pronoun: :vosotros})
65
+ expect(verb).to eq('bebéis')
66
+
67
+ verb = Conjugate::Spanish.conjugate({verb: 'beber', tense: :present, pronoun: :ellos})
68
+ expect(verb).to eq('beben')
69
+
70
+ verb = Conjugate::Spanish.conjugate({verb: 'beber', tense: :past, pronoun: :yo})
71
+ expect(verb).to eq('bebí')
72
+
73
+ verb = Conjugate::Spanish.conjugate({verb: 'beber', tense: :future, pronoun: :yo})
74
+ expect(verb).to eq('beberé')
75
+ end
76
+
77
+ it '.conjugate regular re' do
78
+ verb = Conjugate::Spanish.conjugate({verb: 'vivir', tense: :present, pronoun: :yo})
79
+ expect(verb).to eq('vivo')
80
+
81
+ verb = Conjugate::Spanish.conjugate({verb: 'vivir', tense: :present, pronoun: :tu})
82
+ expect(verb).to eq('vives')
83
+
84
+ verb = Conjugate::Spanish.conjugate({verb: 'vivir', tense: :present, pronoun: :el})
85
+ expect(verb).to eq('vive')
86
+
87
+ verb = Conjugate::Spanish.conjugate({verb: 'vivir', tense: :present, pronoun: :nosotros})
88
+ expect(verb).to eq('vivimos')
89
+
90
+ verb = Conjugate::Spanish.conjugate({verb: 'vivir', tense: :present, pronoun: :vosotros})
91
+ expect(verb).to eq('vivís')
92
+
93
+ verb = Conjugate::Spanish.conjugate({verb: 'vivir', tense: :present, pronoun: :ellos})
94
+ expect(verb).to eq('viven')
95
+
96
+ verb = Conjugate::Spanish.conjugate({verb: 'vivir', tense: :past, pronoun: :yo})
97
+ expect(verb).to eq('viví')
98
+
99
+ verb = Conjugate::Spanish.conjugate({verb: 'vivir', tense: :future, pronoun: :yo})
100
+ expect(verb).to eq('viviré')
101
+ end
102
+
103
+ it '.conjugate_irregular verb' do
104
+ verb = Conjugate::Spanish.conjugate({verb: 'ir', tense: :present, pronoun: :yo})
105
+ expect(verb).to eq('voy')
106
+
107
+ verb = Conjugate::Spanish.conjugate({verb: 'ir', tense: :past, pronoun: :yo})
108
+ expect(verb).to eq('fui')
109
+
110
+ verb = Conjugate::Spanish.conjugate({verb: 'ir', tense: :future, pronoun: :yo})
111
+ expect(verb).to eq('iré')
112
+ end
113
+
114
+ end
115
+ end
metadata CHANGED
@@ -1,25 +1,58 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conjugate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Geros
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2012-02-15 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2015-07-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
13
41
  description: Conjugate Verbs using a version of the templates defined here http://en.wiktionary.org/wiki/Category:Spanish_verb_inflection-table_templates
14
42
  email: jeremy@govocab.com
15
43
  executables: []
16
44
  extensions: []
17
45
  extra_rdoc_files: []
18
46
  files:
19
- - .DS_Store
20
- - .gitignore
47
+ - ".DS_Store"
48
+ - ".gitignore"
49
+ - ".travis.yml"
50
+ - Gemfile
51
+ - Gemfile.lock
52
+ - Guardfile
21
53
  - LICENSE
22
54
  - README.markdown
55
+ - Rakefile
23
56
  - conjugate.gemspec
24
57
  - lib/.DS_Store
25
58
  - lib/conjugate.rb
@@ -31,6 +64,9 @@ files:
31
64
  - lib/conjugate/spanish.rb
32
65
  - lib/conjugate/spanish_templates/irregular_verbs.rb
33
66
  - lib/conjugate/spanish_templates/templates.rb
67
+ - spec/common_spec.rb
68
+ - spec/french_spec.rb
69
+ - spec/spanish_spec.rb
34
70
  homepage: https://github.com/JeremyGeros/Conjugate
35
71
  licenses:
36
72
  - MIT
@@ -41,17 +77,17 @@ require_paths:
41
77
  - lib
42
78
  required_ruby_version: !ruby/object:Gem::Requirement
43
79
  requirements:
44
- - - '>='
80
+ - - ">="
45
81
  - !ruby/object:Gem::Version
46
- version: '0'
82
+ version: 1.9.2
47
83
  required_rubygems_version: !ruby/object:Gem::Requirement
48
84
  requirements:
49
- - - '>='
85
+ - - ">="
50
86
  - !ruby/object:Gem::Version
51
87
  version: '0'
52
88
  requirements: []
53
89
  rubyforge_project:
54
- rubygems_version: 2.2.1
90
+ rubygems_version: 2.0.14
55
91
  signing_key:
56
92
  specification_version: 4
57
93
  summary: Conjugate Verbs using a version of the templates defined here http://en.wiktionary.org/wiki/Category:Spanish_verb_inflection-table_templates