inflection 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,16 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{inflection}
5
- s.version = "0.1.1"
5
+ s.version = "1.0.0"
6
6
 
7
7
  s.authors = ["Dan Kubb", "Simon Hafner"]
8
+ s.email = ["hafnersimon", "gmail.com"].join(64.chr)
8
9
  s.description = %q{Support library for inflections}
9
10
  s.extra_rdoc_files = [
10
11
  "LICENSE",
11
12
  "README.rdoc"
12
13
  ]
13
14
  s.files = `git ls-files`.split("\n")
14
- s.homepage = %q{http://github.com/Tass/extlib}
15
+ s.homepage = %q{http://github.com/Tass/extlib/tree/inflection}
15
16
  s.rdoc_options = ["--charset=UTF-8"]
16
17
  s.require_paths = ["lib"]
17
18
  s.rubygems_version = %q{1.3.7}
@@ -0,0 +1,188 @@
1
+ ability abilities
2
+ account accounts
3
+ address addresses
4
+ agency agencies
5
+ alga algae
6
+ alias aliases
7
+ alumna alumnae
8
+ alumnus alumni
9
+ analysis analyses
10
+ appendix appendices
11
+ archive archives
12
+ arena arenas
13
+ article articles
14
+ asset assets
15
+ athlete athletes
16
+ attachment attachments
17
+ axis axes
18
+ basis bases
19
+ book books
20
+ bookie bookies
21
+ box boxes
22
+ branch branches
23
+ buffalo buffaloes
24
+ bus buses
25
+ buy buys
26
+ case cases
27
+ cactus cacti
28
+ cat cats
29
+ category categories
30
+ child children
31
+ city cities
32
+ comment comments
33
+ commit commits
34
+ cookie cookies
35
+ cow cows
36
+ crisis crises
37
+ criterion criteria
38
+ cross crosses
39
+ crunch crunches
40
+ cry cries
41
+ date dates
42
+ datum data
43
+ day days
44
+ diagnosis diagnoses
45
+ die dice
46
+ document documents
47
+ download downloads
48
+ drive drives
49
+ dwarf dwarves
50
+ edge edges
51
+ edition editions
52
+ elf elves
53
+ equipment equipment
54
+ erratum errata
55
+ event events
56
+ experience experiences
57
+ fish fish
58
+ fix fixes
59
+ fly flies
60
+ focus foci
61
+ foobar foobars
62
+ formula formulae
63
+ forum fora
64
+ fox foxes
65
+ friend friends
66
+ fruit fruits
67
+ fungus fungi
68
+ game games
69
+ german germans
70
+ goose geese
71
+ grass grass
72
+ guy guys
73
+ half halves
74
+ hero heroes
75
+ hippopotamus hippopotami
76
+ hive hives
77
+ horse horses
78
+ house houses
79
+ hovercraft hovercraft
80
+ human humans
81
+ income incomes
82
+ index indices
83
+ information information
84
+ installation installations
85
+ invoice invoices
86
+ job jobs
87
+ joy joys
88
+ life lives
89
+ link links
90
+ location locations
91
+ louse lice
92
+ man men
93
+ map maps
94
+ mash mashes
95
+ matrix_fu matrix_fus
96
+ matrix matrices
97
+ medium media
98
+ memorandum memoranda
99
+ milk milk
100
+ money money
101
+ moose moose
102
+ mouse mice
103
+ move moves
104
+ movie movies
105
+ mysql mysql
106
+ nebula nebulae
107
+ newsletter newsletters
108
+ news news
109
+ node_child node_children
110
+ octopus octopi
111
+ old_news old_news
112
+ ox oxen
113
+ package packages
114
+ penis penises
115
+ person people
116
+ perspective perspectives
117
+ phenomenon phenomena
118
+ photo photos
119
+ ping pings
120
+ plus plusses
121
+ pokemon pokemon
122
+ pokémon pokémon
123
+ portfolio portfolios
124
+ postgres postgres
125
+ post posts
126
+ potato potatoes
127
+ prey preys
128
+ price prices
129
+ prize prizes
130
+ process processes
131
+ product products
132
+ project projects
133
+ proof proofs
134
+ query queries
135
+ quiz quizzes
136
+ radius radii
137
+ rain rain
138
+ rat rats
139
+ ray rays
140
+ rice rice
141
+ rookie rookies
142
+ rose roses
143
+ safe saves
144
+ salesperson salespeople
145
+ schedule schedules
146
+ search searches
147
+ series series
148
+ server servers
149
+ shaman shamans
150
+ sheep sheep
151
+ shelf shelves
152
+ shoe shoes
153
+ song songs
154
+ spam spams
155
+ species species
156
+ spokesman spokesmen
157
+ sportsman sportsmen
158
+ spray sprays
159
+ stack stacks
160
+ status_code status_codes
161
+ status statuses
162
+ stimulus stimuli
163
+ Swiss Swiss
164
+ switch switches
165
+ syllabus syllabi
166
+ talisman talismans
167
+ testis testes
168
+ thesaurus thesauri
169
+ thesis theses
170
+ thief thieves
171
+ ticket tickets
172
+ tomato tomatoes
173
+ tooth teeth
174
+ torpedo torpedoes
175
+ tournament tournaments
176
+ toy toys
177
+ trash trashes
178
+ typo typos
179
+ url urls
180
+ version versions
181
+ vertebra vertebrae
182
+ vertex vertices
183
+ virus viruses
184
+ vita vitae
185
+ wife wives
186
+ wish wishes
187
+ woman women
188
+ zero zeroes
@@ -0,0 +1,30 @@
1
+ $LOAD_PATH.unshift File.expand_path('../lib', File.dirname(__FILE__))
2
+ require 'inflection'
3
+ require 'minitest/autorun'
4
+
5
+ def examples(filename, &block)
6
+ File.open(File.expand_path('inflection', File.dirname(__FILE__))).each_line do |line|
7
+ block.call(line.split)
8
+ end
9
+ end
10
+
11
+ describe ::Inflection do
12
+ describe "convert singular <=> plural" do
13
+ examples('inflection') do |singular, plural|
14
+ it "should convert from %s to %s" % [singular, plural] do
15
+ ::Inflection.plural(singular).must_equal plural
16
+ end
17
+ it "and back" do
18
+ ::Inflection.singular(plural).must_equal singular
19
+ end
20
+ end
21
+ end
22
+
23
+ describe "convert plural => singular" do
24
+ examples('injective') do |singular, plural|
25
+ it "should convert from %s to %s" % [singular, plural] do
26
+ ::Inflection.singular(plural).must_equal singular
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ index indexes
2
+ plus pluses
3
+ forum forums
metadata CHANGED
@@ -1,75 +1,58 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: inflection
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 1
9
- version: 0.1.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Dan Kubb
13
9
  - Simon Hafner
14
10
  autorequire:
15
11
  bindir: bin
16
12
  cert_chain: []
17
-
18
- date: 2010-07-07 00:00:00 +02:00
19
- default_executable:
13
+ date: 2011-11-12 00:00:00.000000000 Z
20
14
  dependencies: []
21
-
22
15
  description: Support library for inflections
23
- email:
16
+ email: hafnersimon@gmail.com
24
17
  executables: []
25
-
26
18
  extensions: []
27
-
28
- extra_rdoc_files:
19
+ extra_rdoc_files:
29
20
  - LICENSE
30
21
  - README.rdoc
31
- files:
22
+ files:
32
23
  - .gitignore
33
24
  - LICENSE
34
25
  - README.rdoc
35
26
  - VERSION
36
27
  - inflection.gemspec
37
28
  - lib/inflection.rb
38
- - test/setup.rb
39
- - test/suite/lib/inflection
40
- - test/suite/lib/inflection.rb
41
- - test/suite/lib/injective
42
- has_rdoc: true
43
- homepage: http://github.com/Tass/extlib
29
+ - spec/inflection
30
+ - spec/inflection.rb
31
+ - spec/injective
32
+ homepage: http://github.com/Tass/extlib/tree/inflection
44
33
  licenses: []
45
-
46
34
  post_install_message:
47
- rdoc_options:
35
+ rdoc_options:
48
36
  - --charset=UTF-8
49
- require_paths:
37
+ require_paths:
50
38
  - lib
51
- required_ruby_version: !ruby/object:Gem::Requirement
39
+ required_ruby_version: !ruby/object:Gem::Requirement
52
40
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- segments:
57
- - 0
58
- version: "0"
59
- required_rubygems_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
46
  none: false
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- segments:
65
- - 0
66
- version: "0"
47
+ requirements:
48
+ - - ! '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
67
51
  requirements: []
68
-
69
52
  rubyforge_project:
70
- rubygems_version: 1.3.7
53
+ rubygems_version: 1.8.11
71
54
  signing_key:
72
55
  specification_version: 3
73
56
  summary: Provies english inflection.
74
57
  test_files: []
75
-
58
+ has_rdoc:
@@ -1,15 +0,0 @@
1
- # Add PROJECT/lib to $LOAD_PATH
2
- $LOAD_PATH.unshift(File.expand_path("#{__FILE__}/../../lib"))
3
-
4
- # Ensure baretest is required
5
- require 'baretest'
6
-
7
- # Some defaults on BareTest (see Kernel#BareTest)
8
- BareTest do
9
- require_baretest "0.5.0" # minimum baretest version to run these tests
10
- require_ruby "1.8.7" # minimum ruby version to run these tests
11
- use :support # Use :support in all suites
12
- use :basic_verifications
13
- end
14
-
15
- require 'ruby-debug'
@@ -1,189 +0,0 @@
1
- @singular | @plural
2
- 'ability' | 'abilities'
3
- 'account' | 'accounts'
4
- 'address' | 'addresses'
5
- 'agency' | 'agencies'
6
- 'alga' | 'algae'
7
- 'alias' | 'aliases'
8
- 'alumna' | 'alumnae'
9
- 'alumnus' | 'alumni'
10
- 'analysis' | 'analyses'
11
- 'appendix' | 'appendices'
12
- 'archive' | 'archives'
13
- 'arena' | 'arenas'
14
- 'article' | 'articles'
15
- 'asset' | 'assets'
16
- 'athlete' | 'athletes'
17
- 'attachment' | 'attachments'
18
- 'axis' | 'axes'
19
- 'basis' | 'bases'
20
- 'book' | 'books'
21
- 'bookie' | 'bookies'
22
- 'box' | 'boxes'
23
- 'branch' | 'branches'
24
- 'buffalo' | 'buffaloes'
25
- 'bus' | 'buses'
26
- 'buy' | 'buys'
27
- 'case' | 'cases'
28
- 'cactus' | 'cacti'
29
- 'cat' | 'cats'
30
- 'category' | 'categories'
31
- 'child' | 'children'
32
- 'city' | 'cities'
33
- 'comment' | 'comments'
34
- 'commit' | 'commits'
35
- 'cookie' | 'cookies'
36
- 'cow' | 'cows'
37
- 'crisis' | 'crises'
38
- 'criterion' | 'criteria'
39
- 'cross' | 'crosses'
40
- 'crunch' | 'crunches'
41
- 'cry' | 'cries'
42
- 'date' | 'dates'
43
- 'datum' | 'data'
44
- 'day' | 'days'
45
- 'diagnosis' | 'diagnoses'
46
- 'die' | 'dice'
47
- 'document' | 'documents'
48
- 'download' | 'downloads'
49
- 'drive' | 'drives'
50
- 'dwarf' | 'dwarves'
51
- 'edge' | 'edges'
52
- 'edition' | 'editions'
53
- 'elf' | 'elves'
54
- 'equipment' | 'equipment'
55
- 'erratum' | 'errata'
56
- 'event' | 'events'
57
- 'experience' | 'experiences'
58
- 'fish' | 'fish'
59
- 'fix' | 'fixes'
60
- 'fly' | 'flies'
61
- 'focus' | 'foci'
62
- 'foobar' | 'foobars'
63
- 'formula' | 'formulae'
64
- 'forum' | 'fora'
65
- 'fox' | 'foxes'
66
- 'friend' | 'friends'
67
- 'fruit' | 'fruits'
68
- 'fungus' | 'fungi'
69
- 'game' | 'games'
70
- 'german' | 'germans'
71
- 'goose' | 'geese'
72
- 'grass' | 'grass'
73
- 'guy' | 'guys'
74
- 'half' | 'halves'
75
- 'hero' | 'heroes'
76
- 'hippopotamus' | 'hippopotami'
77
- 'hive' | 'hives'
78
- 'horse' | 'horses'
79
- 'house' | 'houses'
80
- 'hovercraft' | 'hovercraft'
81
- 'human' | 'humans'
82
- 'income' | 'incomes'
83
- 'index' | 'indices'
84
- 'information' | 'information'
85
- 'installation' | 'installations'
86
- 'invoice' | 'invoices'
87
- 'job' | 'jobs'
88
- 'joy' | 'joys'
89
- 'life' | 'lives'
90
- 'link' | 'links'
91
- 'location' | 'locations'
92
- 'louse' | 'lice'
93
- 'man' | 'men'
94
- 'map' | 'maps'
95
- 'mash' | 'mashes'
96
- 'matrix_fu' | 'matrix_fus'
97
- 'matrix' | 'matrices'
98
- 'medium' | 'media'
99
- 'memorandum' | 'memoranda'
100
- 'milk' | 'milk'
101
- 'money' | 'money'
102
- 'moose' | 'moose'
103
- 'mouse' | 'mice'
104
- 'move' | 'moves'
105
- 'movie' | 'movies'
106
- 'mysql' | 'mysql'
107
- 'nebula' | 'nebulae'
108
- 'newsletter' | 'newsletters'
109
- 'news' | 'news'
110
- 'node_child' | 'node_children'
111
- 'octopus' | 'octopi'
112
- 'old_news' | 'old_news'
113
- 'ox' | 'oxen'
114
- 'package' | 'packages'
115
- 'penis' | 'penises'
116
- 'person' | 'people'
117
- 'perspective' 'perspectives'
118
- 'phenomenon' | 'phenomena'
119
- 'photo' | 'photos'
120
- 'ping' | 'pings'
121
- 'plus' | 'plusses'
122
- 'pokemon' | 'pokemon'
123
- 'pokémon' | 'pokémon'
124
- 'portfolio' | 'portfolios'
125
- 'postgres' | 'postgres'
126
- 'post' | 'posts'
127
- 'potato' | 'potatoes'
128
- 'prey' | 'preys'
129
- 'price' | 'prices'
130
- 'prize' | 'prizes'
131
- 'process' | 'processes'
132
- 'product' | 'products'
133
- 'project' | 'projects'
134
- 'proof' | 'proofs'
135
- 'query' | 'queries'
136
- 'quiz' | 'quizzes'
137
- 'radius' | 'radii'
138
- 'rain' | 'rain'
139
- 'rat' | 'rats'
140
- 'ray' | 'rays'
141
- 'rice' | 'rice'
142
- 'rookie' | 'rookies'
143
- 'rose' | 'roses'
144
- 'safe' | 'saves'
145
- 'salesperson' 'salespeople'
146
- 'schedule' | 'schedules'
147
- 'search' | 'searches'
148
- 'series' | 'series'
149
- 'server' | 'servers'
150
- 'shaman' | 'shamans'
151
- 'sheep' | 'sheep'
152
- 'shelf' | 'shelves'
153
- 'shoe' | 'shoes'
154
- 'song' | 'songs'
155
- 'spam' | 'spams'
156
- 'species' | 'species'
157
- 'spokesman' | 'spokesmen'
158
- 'sportsman' | 'sportsmen'
159
- 'spray' | 'sprays'
160
- 'stack' | 'stacks'
161
- 'status_code' 'status_codes'
162
- 'status' | 'statuses'
163
- 'stimulus' | 'stimuli'
164
- 'Swiss' | 'Swiss'
165
- 'switch' | 'switches'
166
- 'syllabus' | 'syllabi'
167
- 'talisman' | 'talismans'
168
- 'testis' | 'testes'
169
- 'thesaurus' | 'thesauri'
170
- 'thesis' | 'theses'
171
- 'thief' | 'thieves'
172
- 'ticket' | 'tickets'
173
- 'tomato' | 'tomatoes'
174
- 'tooth' | 'teeth'
175
- 'torpedo' | 'torpedoes'
176
- 'tournament' | 'tournaments'
177
- 'toy' | 'toys'
178
- 'trash' | 'trashes'
179
- 'typo' | 'typos'
180
- 'url' | 'urls'
181
- 'version' | 'versions'
182
- 'vertebra' | 'vertebrae'
183
- 'vertex' | 'vertices'
184
- 'virus' | 'viruses'
185
- 'vita' | 'vitae'
186
- 'wife' | 'wives'
187
- 'wish' | 'wishes'
188
- 'woman' | 'women'
189
- 'zero' | 'zeroes'
@@ -1,40 +0,0 @@
1
- # So we can test with all provided solutions
2
- #BareTest.new_component :inflection do
3
- require 'inflection'
4
- suite 'Inflection', :use => :tabular_data do
5
- suite 'bijective' do
6
- setup.tabular_data <<-TABLE
7
- @from | @to
8
- :singular | :plural
9
- :plural | :singular
10
- TABLE
11
-
12
- setup.tabular_data(File.read(File.expand_path('../inflection', __FILE__)))
13
-
14
- setup do
15
- class << self
16
- attr_reader :singular, :plural
17
- end
18
- end
19
-
20
- exercise "converting :singular <=> :plural from :from" do
21
- ::Inflection.send(@to, send(@from))
22
- end
23
- verify "returns :to" do
24
- returns(send(@to))
25
- end
26
- end
27
-
28
- suite 'injective singular -> plural' do
29
-
30
- setup.tabular_data(File.read(File.expand_path('../injective', __FILE__)))
31
-
32
- exercise "converting :plural" do
33
- ::Inflection.singular(@plural)
34
- end
35
- verify "returns :singular" do
36
- returns(@singular)
37
- end
38
-
39
- end
40
- end
@@ -1,4 +0,0 @@
1
- @singular | @plural
2
- 'index' | 'indexes'
3
- 'plus' | 'pluses'
4
- 'forum' | 'forums'