possessify 1.0.2 → 1.1.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.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/README.rdoc +12 -9
- data/Rakefile +4 -4
- data/lib/possessify/possessify.rb +20 -9
- data/lib/possessify/version.rb +1 -1
- data/possessify.gemspec +3 -1
- data/test/possessify/possessify_test.rb +66 -0
- data/test/test_helper.rb +1 -2
- metadata +45 -50
- data/test/possessify_test.rb +0 -50
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 47fc4066547ff1cfd6040ab4560f15083be4d4db
|
4
|
+
data.tar.gz: 5a272221bb54e2d03038fabb7bf60f84243017fc
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: df3d7bb90d1ee1c6fa207d67d651ba8ddc2b52e467743905863d7b434f389a90e71e7988ab7fe3afca01c10f3d9b56a5242247d7b3a237cc0a8b5d714c43e8eb
|
7
|
+
data.tar.gz: 4c2c6cdc7751e9d2e2c6193c3c954c36766a56083231f2b0ded7deb2f740b2e30a742fbea01bd34ba048f2f7e7193922d2071ed88c8f7806c7f1f8e01c24badc
|
data/.gitignore
CHANGED
data/README.rdoc
CHANGED
@@ -8,17 +8,20 @@ Possessify extends the Ruby String class adding functionality to make strings po
|
|
8
8
|
|
9
9
|
== Examples
|
10
10
|
|
11
|
-
"Dave".possessive
|
12
|
-
"Xerxes".possessive
|
11
|
+
"Dave".possessive #=> "Dave's"
|
12
|
+
"Xerxes".possessive #=> "Xerxes'"
|
13
13
|
|
14
|
-
"Dave's".non_possessive
|
15
|
-
"Xerxes'".non_possessive
|
14
|
+
"Dave's".non_possessive #=> "Dave"
|
15
|
+
"Xerxes'".non_possessive #=> "Xerxes"
|
16
16
|
|
17
|
-
"Dave's".possessive?
|
18
|
-
"Dave".possessive?
|
17
|
+
"Dave's".possessive? #=> true
|
18
|
+
"Dave".possessive? #=> false
|
19
19
|
|
20
|
-
"Dave's".non_possessive?
|
21
|
-
"Dave".non_possessive?
|
20
|
+
"Dave's".non_possessive? #=> false
|
21
|
+
"Dave".non_possessive? #=> true
|
22
22
|
|
23
|
+
"John".possessive_suffix #=> "'s"
|
24
|
+
"James".possessive_suffix #=> "'"
|
23
25
|
|
24
|
-
|
26
|
+
|
27
|
+
Copyright (c) 2014 David Busse, released under the MIT license
|
data/Rakefile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'rake/testtask'
|
3
|
-
require '
|
3
|
+
require 'rdoc/task'
|
4
4
|
require 'bundler'
|
5
5
|
|
6
6
|
Bundler::GemHelper.install_tasks
|
@@ -9,7 +9,7 @@ desc 'Default: run unit tests.'
|
|
9
9
|
task :default => :test
|
10
10
|
|
11
11
|
desc 'Test the possessify plugin.'
|
12
|
-
Rake::TestTask.new
|
12
|
+
Rake::TestTask.new do |t|
|
13
13
|
t.libs << 'lib'
|
14
14
|
t.libs << 'test'
|
15
15
|
t.pattern = 'test/**/*_test.rb'
|
@@ -17,10 +17,10 @@ Rake::TestTask.new(:test) do |t|
|
|
17
17
|
end
|
18
18
|
|
19
19
|
desc 'Generate documentation for the possessify plugin.'
|
20
|
-
|
20
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
21
21
|
rdoc.rdoc_dir = 'rdoc'
|
22
22
|
rdoc.title = 'Possessify'
|
23
23
|
rdoc.options << '--line-numbers' << '--inline-source'
|
24
24
|
rdoc.rdoc_files.include('README.rdoc')
|
25
25
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
26
|
-
end
|
26
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module Possessify
|
2
2
|
|
3
3
|
String.class_eval do
|
4
|
-
|
5
4
|
##
|
6
5
|
# :call-seq:
|
7
6
|
# str.possessive => new_str
|
@@ -10,19 +9,19 @@ module Possessify
|
|
10
9
|
# "Dave".possessive #=> "Dave's"
|
11
10
|
# "Xerxes".possessive #=> "Xerxes'"
|
12
11
|
def possessive
|
13
|
-
unless self.possessive? || self.
|
14
|
-
str = self +
|
12
|
+
unless self.possessive? || self.empty?
|
13
|
+
str = self + self.possessive_suffix
|
15
14
|
end
|
16
15
|
str || self
|
17
16
|
end
|
18
|
-
|
17
|
+
|
19
18
|
##
|
20
19
|
# :call-seq:
|
21
20
|
# str.non_possessive => new_str
|
22
21
|
#
|
23
22
|
# Returns a new string that is the non-possessive form of <i>str</i>.
|
24
23
|
# "Dave's".non_possessive #=> "Dave"
|
25
|
-
# "Xerxes'".non_possessive
|
24
|
+
# "Xerxes'".non_possessive #=> "Xerxes"
|
26
25
|
def non_possessive
|
27
26
|
if self.possessive?
|
28
27
|
unless self.chomp!("'s")
|
@@ -31,7 +30,7 @@ module Possessify
|
|
31
30
|
end
|
32
31
|
self
|
33
32
|
end
|
34
|
-
|
33
|
+
|
35
34
|
##
|
36
35
|
# :call-seq:
|
37
36
|
# str.possessive? => true or false
|
@@ -42,7 +41,7 @@ module Possessify
|
|
42
41
|
def possessive?
|
43
42
|
self[-2,2] && (self[-2,2].downcase == "'s" || self[-2,2].downcase == "s'")
|
44
43
|
end
|
45
|
-
|
44
|
+
|
46
45
|
##
|
47
46
|
# :call-seq:
|
48
47
|
# str.non_possessive? => true or false
|
@@ -53,7 +52,19 @@ module Possessify
|
|
53
52
|
def non_possessive?
|
54
53
|
!self.possessive?
|
55
54
|
end
|
56
|
-
|
55
|
+
|
56
|
+
##
|
57
|
+
# :call-seq:
|
58
|
+
# str.possessive_suffix => new_str
|
59
|
+
#
|
60
|
+
# Returns a new string of the possessive suffix regardless of wehether
|
61
|
+
# the string is already in possessive form or not.
|
62
|
+
# "Dave's".possessive_suffix #=> "'s"
|
63
|
+
# "Dave".possessive_suffix #=> "'s"
|
64
|
+
# "Xerxes'".possessive_suffix #=> "'"
|
65
|
+
def possessive_suffix
|
66
|
+
str = self.non_possessive
|
67
|
+
(str[-1,1] && str[-1,1].downcase == "s") ? "'" : "'s"
|
68
|
+
end
|
57
69
|
end
|
58
|
-
|
59
70
|
end
|
data/lib/possessify/version.rb
CHANGED
data/possessify.gemspec
CHANGED
@@ -5,6 +5,7 @@ require "possessify/version"
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "possessify"
|
7
7
|
s.version = Possessify::VERSION
|
8
|
+
s.licenses = ['MIT']
|
8
9
|
s.platform = Gem::Platform::RUBY
|
9
10
|
s.authors = ["David Busse"]
|
10
11
|
s.email = ["dpb@essub.com"]
|
@@ -12,9 +13,10 @@ Gem::Specification.new do |s|
|
|
12
13
|
s.summary = %q{Possessify extends the Ruby String class adding functionality to make strings possessive and non-possessive.}
|
13
14
|
s.description = %q{Possessify extends the Ruby String class adding functionality to make strings possessive and non-possessive. Methods include possessive, non_possessive, and possessive?}
|
14
15
|
|
15
|
-
|
16
16
|
s.files = `git ls-files`.split("\n")
|
17
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_development_dependency 'minitest', '~> 5.4'
|
20
22
|
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe Possessify do
|
4
|
+
|
5
|
+
describe "#possessive" do
|
6
|
+
it "should make singular string possessive" do
|
7
|
+
"Dave".possessive.must_equal "Dave's"
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should make string ending in s possessive" do
|
11
|
+
"Xerxes".possessive.must_equal "Xerxes'"
|
12
|
+
"XerxeS".possessive.must_equal "XerxeS'"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should make single character string possesive" do
|
16
|
+
"D".possessive.must_equal "D's"
|
17
|
+
"S".possessive.must_equal "S'"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should do nothing if string already possessive" do
|
21
|
+
"Dave's".possessive.must_equal "Dave's"
|
22
|
+
"Xerxes'".possessive.must_equal "Xerxes'"
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should do nothing if string is empty" do
|
26
|
+
"".possessive.must_equal ""
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#non_possessive" do
|
31
|
+
it "should make singular possessive string non-possesive" do
|
32
|
+
"Dave's".non_possessive.must_equal "Dave"
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should make possesive string ending in s non_possesive" do
|
36
|
+
"Xerxes'".non_possessive.must_equal "Xerxes"
|
37
|
+
"XerxeS'".non_possessive.must_equal "XerxeS"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "#possessive?" do
|
42
|
+
it "should return true for possessive string" do
|
43
|
+
"Dave's".possessive?.must_equal true
|
44
|
+
"Xerxes'".possessive?.must_equal true
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should return false for non-possessive string" do
|
48
|
+
"Dave".possessive?.must_equal false
|
49
|
+
"Xerxes".possessive?.must_equal false
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "#possessive_suffix" do
|
54
|
+
it "should return the appropriate suffix for strings that are not already possessive" do
|
55
|
+
"Dave".possessive_suffix.must_equal "'s"
|
56
|
+
"Xerxes".possessive_suffix.must_equal "'"
|
57
|
+
"John".possessive_suffix.must_equal "'s"
|
58
|
+
"James".possessive_suffix.must_equal "'"
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should return the appropriate suffix for strings that are already possessive" do
|
62
|
+
"Dave's".possessive_suffix.must_equal "'s"
|
63
|
+
"Xerxes'".possessive_suffix.must_equal "'"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,35 +1,39 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: possessify
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 1.0.2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- David Busse
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
11
|
+
date: 2014-10-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: minitest
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.4'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.4'
|
27
|
+
description: Possessify extends the Ruby String class adding functionality to make
|
28
|
+
strings possessive and non-possessive. Methods include possessive, non_possessive,
|
29
|
+
and possessive?
|
30
|
+
email:
|
24
31
|
- dpb@essub.com
|
25
32
|
executables: []
|
26
|
-
|
27
33
|
extensions: []
|
28
|
-
|
29
34
|
extra_rdoc_files: []
|
30
|
-
|
31
|
-
|
32
|
-
- .gitignore
|
35
|
+
files:
|
36
|
+
- ".gitignore"
|
33
37
|
- Gemfile
|
34
38
|
- LICENSE
|
35
39
|
- README.rdoc
|
@@ -39,42 +43,33 @@ files:
|
|
39
43
|
- lib/possessify/possessify.rb
|
40
44
|
- lib/possessify/version.rb
|
41
45
|
- possessify.gemspec
|
42
|
-
- test/possessify_test.rb
|
46
|
+
- test/possessify/possessify_test.rb
|
43
47
|
- test/test_helper.rb
|
44
|
-
has_rdoc: true
|
45
48
|
homepage: http://github.com/dpbus/possessify
|
46
|
-
licenses:
|
47
|
-
|
49
|
+
licenses:
|
50
|
+
- MIT
|
51
|
+
metadata: {}
|
48
52
|
post_install_message:
|
49
53
|
rdoc_options: []
|
50
|
-
|
51
|
-
require_paths:
|
54
|
+
require_paths:
|
52
55
|
- lib
|
53
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
54
|
-
|
55
|
-
requirements:
|
56
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
56
58
|
- - ">="
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
version: "0"
|
62
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
|
-
requirements:
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
65
63
|
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
|
68
|
-
segments:
|
69
|
-
- 0
|
70
|
-
version: "0"
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
71
66
|
requirements: []
|
72
|
-
|
73
67
|
rubyforge_project:
|
74
|
-
rubygems_version:
|
68
|
+
rubygems_version: 2.2.2
|
75
69
|
signing_key:
|
76
|
-
specification_version:
|
77
|
-
summary: Possessify extends the Ruby String class adding functionality to make strings
|
78
|
-
|
79
|
-
|
70
|
+
specification_version: 4
|
71
|
+
summary: Possessify extends the Ruby String class adding functionality to make strings
|
72
|
+
possessive and non-possessive.
|
73
|
+
test_files:
|
74
|
+
- test/possessify/possessify_test.rb
|
80
75
|
- test/test_helper.rb
|
data/test/possessify_test.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class PossessifyTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
# tests for possessive method
|
6
|
-
test "should make singular string possessive" do
|
7
|
-
assert_equal "Dave's", "Dave".possessive
|
8
|
-
end
|
9
|
-
|
10
|
-
test "should make string ending in s possessive" do
|
11
|
-
assert_equal "Xerxes'", "Xerxes".possessive
|
12
|
-
assert_equal "XerxeS'", "XerxeS".possessive
|
13
|
-
end
|
14
|
-
|
15
|
-
test "should make single character string possesive" do
|
16
|
-
assert_equal "D's", "D".possessive
|
17
|
-
assert_equal "S'", "S".possessive
|
18
|
-
end
|
19
|
-
|
20
|
-
test "should do nothing if string already possessive" do
|
21
|
-
assert_equal "Dave's", "Dave's".possessive
|
22
|
-
assert_equal "Xerxes'", "Xerxes'".possessive
|
23
|
-
end
|
24
|
-
|
25
|
-
test "should do nothing if string is empty" do
|
26
|
-
assert_equal "", "".possessive
|
27
|
-
end
|
28
|
-
|
29
|
-
# tests for non_possessive method
|
30
|
-
test "should make singular possessive string non-possesive" do
|
31
|
-
assert_equal "Dave", "Dave's".non_possessive
|
32
|
-
end
|
33
|
-
|
34
|
-
test "should make possesive string ending in s non_possesive" do
|
35
|
-
assert_equal "Xerxes", "Xerxes'".non_possessive
|
36
|
-
assert_equal "XerxeS", "XerxeS'".non_possessive
|
37
|
-
end
|
38
|
-
|
39
|
-
# tests for possessive? method
|
40
|
-
test "should return true for possessive string" do
|
41
|
-
assert_equal true, "Dave's".possessive?
|
42
|
-
assert_equal true, "Xerxes'".possessive?
|
43
|
-
end
|
44
|
-
|
45
|
-
test "should return false for non-possessive string" do
|
46
|
-
assert_equal false, "Dave".possessive?
|
47
|
-
assert_equal false, "Xerxes".possessive?
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|