conjugate 1.5.0 → 1.6.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.
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