inflection 0.1.1 → 1.0.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.
@@ -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'