indefinite_article 0.2.0 → 0.2.4
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.
- checksums.yaml +7 -0
- data/indefinite_article.gemspec +7 -1
- data/lib/indefinite_article.rb +3 -3
- data/lib/indefinite_article/version.rb +1 -1
- data/test/test_indefinite_article.rb +105 -0
- metadata +42 -18
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e5c3679787f469ac5dd3f056e78100366c0530f4
|
4
|
+
data.tar.gz: 6d39653ad27a1b83dab37d2f8b3441234e1eb6d9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2469b55010638a45adf6d57fa70cec6f6ef611a2586f76690fe432fe65f05070a1408ed358cd4db154b6cf9b0ca1153b39fd4a6401f3724caca967899f757799
|
7
|
+
data.tar.gz: df484da773604bdb594d71b06737a5b554f746405cbca07768e88e2ff8ecaef3fd5afcb2f1e8f850a383b629e4b7d0ba273f3618f581d74386debc2682ae6388
|
data/indefinite_article.gemspec
CHANGED
@@ -16,7 +16,13 @@ Gem::Specification.new do |s|
|
|
16
16
|
'lib/indefinite_article.rb',
|
17
17
|
'lib/indefinite_article/version.rb'
|
18
18
|
]
|
19
|
+
s.test_files = [
|
20
|
+
'test/test_indefinite_article.rb'
|
21
|
+
]
|
22
|
+
|
19
23
|
s.require_paths = ["lib"]
|
20
24
|
s.add_dependency 'activesupport'
|
25
|
+
s.add_development_dependency 'minitest', '~> 5.1'
|
21
26
|
s.add_development_dependency 'i18n'
|
22
|
-
|
27
|
+
s.add_development_dependency 'rake'
|
28
|
+
end
|
data/lib/indefinite_article.rb
CHANGED
@@ -3,8 +3,8 @@ require 'active_support/core_ext/string'
|
|
3
3
|
|
4
4
|
module IndefiniteArticle
|
5
5
|
|
6
|
-
A_REQUIRING_PATTERNS = /^(([bcdgjkpqtuvwyz]|onc?e|onetime)$|e[uw]|uk|uni(l[^l]|[a-ko-z]))/i
|
7
|
-
AN_REQUIRING_PATTERNS = /^([aefhilmnorsx]$|hono|honest|hour|heir|[aeiou])/i
|
6
|
+
A_REQUIRING_PATTERNS = /^(([bcdgjkpqtuvwyz]|onc?e|onearmed|onetime|ouija|oaxaca|oaxacan|oaxacania|oaxacanthaxia)$|e[uw]|uk|ubi|ubo|ufo|ur[aeiou]|use|ut([^t])|unani|uni(l[^l]|[a-ko-z]))/i
|
7
|
+
AN_REQUIRING_PATTERNS = /^([aefhilmnorsx]$|hono|honest|hour|heir|[aeiou]|8|11)/i
|
8
8
|
UPCASE_A_REQUIRING_PATTERNS = /^(UN$)/
|
9
9
|
UPCASE_AN_REQUIRING_PATTERNS = /^$/ #need if we decide to support acronyms like "XL" (extra-large)
|
10
10
|
|
@@ -15,7 +15,7 @@ module IndefiniteArticle
|
|
15
15
|
'an'
|
16
16
|
else
|
17
17
|
'a'
|
18
|
-
end
|
18
|
+
end unless first_word.nil?
|
19
19
|
end
|
20
20
|
|
21
21
|
def with_indefinite_article(upcase = false)
|
@@ -0,0 +1,105 @@
|
|
1
|
+
require File.expand_path('../helper', __FILE__)
|
2
|
+
|
3
|
+
class TestIndefiniteArticle < Minitest::Test
|
4
|
+
AN_WORDS = %w{
|
5
|
+
apple
|
6
|
+
unassailable
|
7
|
+
ubuntu
|
8
|
+
ubersexual
|
9
|
+
ungrammatical
|
10
|
+
unanswered
|
11
|
+
unilluminated
|
12
|
+
unintentional
|
13
|
+
unlikely
|
14
|
+
honor
|
15
|
+
honorable
|
16
|
+
onerous
|
17
|
+
hour
|
18
|
+
honest
|
19
|
+
heir
|
20
|
+
utter
|
21
|
+
urgent
|
22
|
+
a e f h i l m n o r s x
|
23
|
+
8 11
|
24
|
+
}
|
25
|
+
|
26
|
+
A_WORDS = %w{
|
27
|
+
ukulele
|
28
|
+
UN
|
29
|
+
uk
|
30
|
+
oaxaca
|
31
|
+
oaxacan
|
32
|
+
oaxacania
|
33
|
+
oaxacanthaxia
|
34
|
+
ufo
|
35
|
+
unanimous
|
36
|
+
one
|
37
|
+
onearmed
|
38
|
+
once
|
39
|
+
onetime
|
40
|
+
ouija
|
41
|
+
european
|
42
|
+
ewe
|
43
|
+
ubiquity
|
44
|
+
uboat
|
45
|
+
unicorn
|
46
|
+
unilateral
|
47
|
+
banana
|
48
|
+
user
|
49
|
+
useful
|
50
|
+
urinologist
|
51
|
+
urea
|
52
|
+
b c d g j k p q t u v w y z
|
53
|
+
1 2 3 4 5 6 7 9 10 12 13 14 15 16 17 18 19 20
|
54
|
+
}
|
55
|
+
|
56
|
+
def setup
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_active_support
|
60
|
+
assert_equal 'banana'.first, 'b'
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_indefinite_article_selection_for_an
|
64
|
+
AN_WORDS.each do |word|
|
65
|
+
assert_equal "an", word.indefinite_article, "word: #{word}"
|
66
|
+
assert_equal "an", word.upcase.indefinite_article, "word: #{word.upcase}"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_indefinite_article_selection_for_a
|
71
|
+
A_WORDS.each do |word|
|
72
|
+
assert_equal "a", word.indefinite_article, "word: #{word}"
|
73
|
+
assert_equal "a", word.upcase.indefinite_article, "word: #{word.upcase}"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_indefinite_article_selection_case_insensitvity
|
78
|
+
assert_equal "a", "bananna".indefinite_article
|
79
|
+
assert_equal "a", "Bananna".indefinite_article
|
80
|
+
assert_equal "an", "apple".indefinite_article
|
81
|
+
assert_equal "an", "Apple".indefinite_article
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_phrases
|
85
|
+
assert_equal 'a', 'banana of yummieness'.indefinite_article
|
86
|
+
assert_equal 'an', 'honor-seeking person'.indefinite_article
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_indefinitize
|
90
|
+
assert_equal 'a banana', 'banana'.indefinitize
|
91
|
+
assert_equal 'an apple', 'apple'.indefinitize
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_functionality_on_symbol
|
95
|
+
assert_equal 'a', :banana.indefinite_article
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_indefinite_article_prefix
|
99
|
+
assert_equal 'a banana', 'banana'.with_indefinite_article
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_empty_string
|
103
|
+
assert_equal '', ''.indefinitize
|
104
|
+
end
|
105
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: indefinite_article
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Andrew Rossmeissl
|
@@ -10,38 +9,62 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2015-05-28 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: activesupport
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - ">="
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: '0'
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - ">="
|
29
26
|
- !ruby/object:Gem::Version
|
30
27
|
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: minitest
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '5.1'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '5.1'
|
31
42
|
- !ruby/object:Gem::Dependency
|
32
43
|
name: i18n
|
33
44
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
45
|
requirements:
|
36
|
-
- -
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rake
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
37
61
|
- !ruby/object:Gem::Version
|
38
62
|
version: '0'
|
39
63
|
type: :development
|
40
64
|
prerelease: false
|
41
65
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
66
|
requirements:
|
44
|
-
- -
|
67
|
+
- - ">="
|
45
68
|
- !ruby/object:Gem::Version
|
46
69
|
version: '0'
|
47
70
|
description: Adds indefinite article methods to String and Symbol
|
@@ -54,28 +77,29 @@ files:
|
|
54
77
|
- indefinite_article.gemspec
|
55
78
|
- lib/indefinite_article.rb
|
56
79
|
- lib/indefinite_article/version.rb
|
80
|
+
- test/test_indefinite_article.rb
|
57
81
|
homepage: http://github.com/rossmeissl/indefinite_article
|
58
82
|
licenses: []
|
83
|
+
metadata: {}
|
59
84
|
post_install_message:
|
60
85
|
rdoc_options: []
|
61
86
|
require_paths:
|
62
87
|
- lib
|
63
88
|
required_ruby_version: !ruby/object:Gem::Requirement
|
64
|
-
none: false
|
65
89
|
requirements:
|
66
|
-
- -
|
90
|
+
- - ">="
|
67
91
|
- !ruby/object:Gem::Version
|
68
92
|
version: '0'
|
69
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
94
|
requirements:
|
72
|
-
- -
|
95
|
+
- - ">="
|
73
96
|
- !ruby/object:Gem::Version
|
74
97
|
version: '0'
|
75
98
|
requirements: []
|
76
99
|
rubyforge_project:
|
77
|
-
rubygems_version:
|
100
|
+
rubygems_version: 2.2.2
|
78
101
|
signing_key:
|
79
|
-
specification_version:
|
102
|
+
specification_version: 4
|
80
103
|
summary: Adds indefinite article methods to String and Symbol
|
81
|
-
test_files:
|
104
|
+
test_files:
|
105
|
+
- test/test_indefinite_article.rb
|