law_string 1.1.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ba3b225b7f91b6da7026be6137d607974c7fe76d0feef5983f5c5935776f18d
4
- data.tar.gz: 8bfae20247212726eeb888ec0d2db7cf34fb90d2d7c4ce334abbe99bd8300043
3
+ metadata.gz: 3ea200f0e77915f4e4ac7e20013731cb64224c017c48b73ca6287943d2b5d372
4
+ data.tar.gz: f46191e76441e1d05b4643f026395151c7d39b42243c5f125c1d25f5d313837d
5
5
  SHA512:
6
- metadata.gz: e1317870a9938822644d6eff85134ea263065c6a93ac4bc8e5288b835538ab06bfd6c95bc317521f81dccfecd8fb96082cae615bbd036a77013412892b9a13ee
7
- data.tar.gz: b75cc034f6a7af6aeaa0cd1af7e6df702ca8059c72eb1e9c60bf3b69000cc6a974ffe0ebf7707564756d50c6d2b44a535f97358054a3c30224d3f18a4e2ec573
6
+ metadata.gz: 1b5e6944a4cb85927bee3d9cc772ea3a541123b48fa3fec0f097ccdcc480810c2561949d8a5ae74612d8bea05de2c71093be892179974556e1eaa709d34adeb9
7
+ data.tar.gz: 4ef6701fe230b1ef645204b0788f9cf5c3ee6c9270d8ffa0c3e950fd47485214bc4399f8a54aaf40e452a7f793c4522aa7e2a22b22ece31d7eca05daf7871211
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ coverage
data/.rspec CHANGED
@@ -1,3 +1,2 @@
1
- --format documentation
2
1
  --color
3
2
  --require spec_helper
@@ -1,6 +1,5 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.0
5
4
  - 2.5.1
6
5
  before_install: gem install bundler -v 1.16.1
@@ -1,35 +1,42 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- law_string (1.1.0)
4
+ law_string (1.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  diff-lcs (1.3)
10
+ docile (1.3.1)
11
+ json (2.1.0)
10
12
  rake (10.5.0)
11
- rspec (3.7.0)
12
- rspec-core (~> 3.7.0)
13
- rspec-expectations (~> 3.7.0)
14
- rspec-mocks (~> 3.7.0)
15
- rspec-core (3.7.1)
16
- rspec-support (~> 3.7.0)
17
- rspec-expectations (3.7.0)
13
+ rspec (3.8.0)
14
+ rspec-core (~> 3.8.0)
15
+ rspec-expectations (~> 3.8.0)
16
+ rspec-mocks (~> 3.8.0)
17
+ rspec-core (3.8.0)
18
+ rspec-support (~> 3.8.0)
19
+ rspec-expectations (3.8.1)
18
20
  diff-lcs (>= 1.2.0, < 2.0)
19
- rspec-support (~> 3.7.0)
20
- rspec-mocks (3.7.0)
21
+ rspec-support (~> 3.8.0)
22
+ rspec-mocks (3.8.0)
21
23
  diff-lcs (>= 1.2.0, < 2.0)
22
- rspec-support (~> 3.7.0)
23
- rspec-support (3.7.1)
24
+ rspec-support (~> 3.8.0)
25
+ rspec-support (3.8.0)
26
+ simplecov (0.16.1)
27
+ docile (~> 1.1)
28
+ json (>= 1.8, < 3)
29
+ simplecov-html (~> 0.10.0)
30
+ simplecov-html (0.10.2)
24
31
 
25
32
  PLATFORMS
26
33
  ruby
27
34
 
28
35
  DEPENDENCIES
29
- bundler (~> 1.16)
30
36
  law_string!
31
37
  rake (~> 10.0)
32
38
  rspec (~> 3.0)
39
+ simplecov
33
40
 
34
41
  BUNDLED WITH
35
- 1.16.1
42
+ 2.1.4
data/README.md CHANGED
@@ -26,7 +26,8 @@ Or install it yourself as:
26
26
  Provides;
27
27
 
28
28
  * `#add_typograpy` e.g., changing ASCII quotes to true double quotes
29
- * `#titleize` enhanced for English-language legal texts
30
- * `#initials` to detect, e.g., "A.S.C.A.P."
29
+ * `#initialism?` to detect, e.g., "ATM". Very rudimentary.
30
+ * `#initials?` to detect, e.g., "A.S.C.A.P."
31
+ * `#titleize` enhanced for English-language legal texts, coded to reduce memory allocations.
31
32
 
32
- See the tests for details.
33
+ See [the tests](https://github.com/public-law/law_string/blob/master/spec/law_string_spec.rb) for details.
@@ -4,24 +4,24 @@ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "law_string"
8
- spec.version = '1.1.0'
9
- spec.authors = ["Robb Shecter"]
10
- spec.email = ["robb@public.law"]
7
+ spec.name = 'law_string'
8
+ spec.version = '1.2.0'
9
+ spec.authors = ['Robb Shecter']
10
+ spec.email = ['robb@public.law']
11
11
 
12
12
  spec.summary = 'String Utils including a specialized #titleize.'
13
13
  spec.description = 'A set of utils narrowly written to support Public.Law. Focus on reducing object instantation at the cost of readability.'
14
- spec.homepage = "https://github.com/public-law/law_string"
15
- spec.license = "MIT"
14
+ spec.homepage = 'https://github.com/public-law/law_string'
15
+ spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
18
  f.match(%r{^(test|spec|features)/})
19
19
  end
20
- spec.bindir = "exe"
20
+ spec.bindir = 'exe'
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
- spec.require_paths = ["lib"]
22
+ spec.require_paths = ['lib']
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.16"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "rspec", "~> 3.0"
24
+ spec.add_development_dependency 'rake', '~> 10.0'
25
+ spec.add_development_dependency 'rspec', '~> 3.0'
26
+ spec.add_development_dependency 'simplecov'
27
27
  end
@@ -9,8 +9,8 @@ class String
9
9
  NOT_CAPITALIZED = Set.new %w[a an and at but by for in nor of on or out so the to up yet].freeze
10
10
  INITIALISMS = Set.new %w[atm].freeze
11
11
 
12
- INITIALS_REGEX = /^([a-zA-Z]\.)+$/
13
- WHITESPACES_REGEX = /[[:space:]]/
12
+ INITIALS_REGEX = /^([a-zA-Z]\.)+$/.freeze
13
+ WHITESPACES_REGEX = /[[:space:]]/.freeze
14
14
 
15
15
  def in?(an_array)
16
16
  an_array.include?(self)
@@ -37,7 +37,7 @@ class String
37
37
  # rules. It's coded to reduce object allocation.
38
38
  #
39
39
  def titleize
40
- new_string = self.clone(freeze: false)
40
+ new_string = clone(freeze: false)
41
41
 
42
42
  new_string.tr!('_', ' ')
43
43
  final_string = new_string.split(WHITESPACES_REGEX)
@@ -83,7 +83,7 @@ class String
83
83
  end
84
84
 
85
85
  #
86
- # Return a new string enhanced with typographic characters:
86
+ # Return a new string enhanced with UTF-8 typographic characters:
87
87
  # Single quotes: ’
88
88
  # Section sign: §
89
89
  # Double quotes: “”
@@ -94,6 +94,10 @@ class String
94
94
  .gsub(/"([^"]+)"/, '“\1”')
95
95
  end
96
96
 
97
+ def add_html_typography
98
+ gsub(%r{\b(\d+)/(\d+)\b}, '<sup>\1</sup>&frasl;<sub>\2</sub>')
99
+ end
100
+
97
101
  #
98
102
  # Take text with potential encoding problems and
99
103
  # aggressively make it safe for UTF-8 import.
@@ -105,13 +109,14 @@ class String
105
109
  def capitalize_first_letter
106
110
  return '' if self == ''
107
111
 
108
- new_string = self.clone(freeze: false)
112
+ new_string = clone(freeze: false)
109
113
  new_string.capitalize_first_letter!
110
114
  new_string
111
115
  end
112
116
 
113
117
  def capitalize_first_letter!
114
118
  return self if self == ''
119
+
115
120
  self[0] = self[0].upcase
116
121
  end
117
122
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: law_string
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robb Shecter
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-18 00:00:00.000000000 Z
11
+ date: 2020-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '10.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: '10.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '3.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '3.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: simplecov
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '0'
55
55
  description: A set of utils narrowly written to support Public.Law. Focus on reducing
56
56
  object instantation at the cost of readability.
57
57
  email:
@@ -76,7 +76,7 @@ homepage: https://github.com/public-law/law_string
76
76
  licenses:
77
77
  - MIT
78
78
  metadata: {}
79
- post_install_message:
79
+ post_install_message:
80
80
  rdoc_options: []
81
81
  require_paths:
82
82
  - lib
@@ -91,9 +91,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  - !ruby/object:Gem::Version
92
92
  version: '0'
93
93
  requirements: []
94
- rubyforge_project:
95
- rubygems_version: 2.7.6
96
- signing_key:
94
+ rubygems_version: 3.1.4
95
+ signing_key:
97
96
  specification_version: 4
98
97
  summary: 'String Utils including a specialized #titleize.'
99
98
  test_files: []