availablizer 1.0.1 → 1.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 39f774e24ba04222bf296e8e36ed7451be0337a4
4
- data.tar.gz: d2befe437a14d8992b8eb217faccc507e9fcd60b
3
+ metadata.gz: 331dc43be92db444c79692e9e28b6362e3187696
4
+ data.tar.gz: 1ca96a306a536e8700daa6d563315c37cf1a8e37
5
5
  SHA512:
6
- metadata.gz: 3c382dcd023de455bf042dd31dd8b394278847fdac56636e909b2443577fd43d8218d37b34482dc82e33767d6fff4958adeffa01da1d44b63147e988a14d0657
7
- data.tar.gz: 471a2e0a66b8c81f59d2c97112ac26bf815cff6b48b7af0460af7da345b2af7f401f45dce534ea09514b81b03e20e10350b13704e60c6f8dad7b9f7f076d80b6
6
+ metadata.gz: f0d84bc2c0b3b4a378d1a91de7f5b6e2762b7c68e0818dac73809cd4bb4966be401f005bdb7838caba368e3796904177839c0cce54a8f39907eb0059866ad432
7
+ data.tar.gz: 8d991deef077d0cd13987f87a8d55c0c6926f2b08023d7f3f5e52e5def7129016009d2fcfde6d9ee66ff4ca7e98011307fed5fe4807f7b3d3525fb973f0eaaee
data/lib/availablizer.rb CHANGED
@@ -1,13 +1,38 @@
1
1
  module Availablizer
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
3
3
  end
4
4
 
5
5
  class String
6
6
  def availablize
7
- if self[-1] == 'e'
8
- self + 'ble'
7
+ as_is = %w(like peace)
8
+ ibles = %w(access collapse compat defense fall sense insense response reverse suggest contempt convert flex gull terrify horrify plausible)
9
+
10
+ if ibles.include? self
11
+ suffix = 'ible'
12
+ else
13
+ suffix = 'able'
14
+ end
15
+
16
+ if self == 'navigate'
17
+ 'navigable'
18
+ elsif self[-2..-1] == 'et'
19
+ self + 't' + suffix
20
+ elsif self[-1] == 'e'
21
+ if suffix == 'ible'
22
+ self[0..-2] + suffix
23
+ elsif as_is.include? self
24
+ self + suffix
25
+ else
26
+ self + 'ble'
27
+ end
28
+ elsif self[-2..-1] == 'fy'
29
+ if suffix == 'ible'
30
+ self.gsub(/ify$/, suffix)
31
+ else
32
+ self.gsub(/fy$/, 'fi') + suffix
33
+ end
9
34
  else
10
- self.gsub(/y$/, 'iz') + 'able'
35
+ self.gsub(/y$/, 'iz') + suffix
11
36
  end
12
37
  end
13
38
  end
@@ -9,5 +9,26 @@ class TestAvailablizer < MiniTest::Test
9
9
  assert_equal 'read'.availablize, 'readable'
10
10
  assert_equal 'scare'.availablize, 'scareble'
11
11
  assert_equal 'category'.availablize, 'categorizable'
12
+ assert_equal 'navigate'.availablize, 'navigable'
13
+ assert_equal 'access'.availablize, 'accessible'
14
+ assert_equal 'collapse'.availablize, 'collapsible'
15
+ assert_equal 'compat'.availablize, 'compatible'
16
+ assert_equal 'defense'.availablize, 'defensible'
17
+ assert_equal 'fall'.availablize, 'fallible'
18
+ assert_equal 'sense'.availablize, 'sensible'
19
+ assert_equal 'insense'.availablize, 'insensible'
20
+ assert_equal 'response'.availablize, 'responsible'
21
+ assert_equal 'reverse'.availablize, 'reversible'
22
+ assert_equal 'suggest'.availablize, 'suggestible'
23
+ assert_equal 'contempt'.availablize, 'contemptible'
24
+ assert_equal 'convert'.availablize, 'convertible'
25
+ assert_equal 'flex'.availablize, 'flexible'
26
+ assert_equal 'gull'.availablize, 'gullible'
27
+ assert_equal 'terrify'.availablize, 'terrible'
28
+ assert_equal 'horrify'.availablize, 'horrible'
29
+ assert_equal 'regret'.availablize, 'regrettable'
30
+ assert_equal 'forget'.availablize, 'forgettable'
31
+ assert_equal 'like'.availablize, 'likeable'
32
+ assert_equal 'specify'.availablize, 'specifiable'
12
33
  end
13
34
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: availablizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masaki Komagata
@@ -94,4 +94,3 @@ specification_version: 4
94
94
  summary: Converting string to availablize.
95
95
  test_files:
96
96
  - test/test_availablizer.rb
97
- has_rdoc: