turkish_ranges 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.rubocop.yml +18 -0
- data/.travis.yml +6 -0
- data/CHANGELOG.md +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +34 -0
- data/LICENSE.txt +21 -0
- data/README.md +72 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +6 -0
- data/lib/turkish_ranges.rb +10 -0
- data/lib/turkish_ranges/tr_text.rb +84 -0
- data/lib/turkish_ranges/version.rb +6 -0
- data/spec/spec_helper.rb +13 -0
- data/spec/tr_text_spec.rb +73 -0
- data/spec/turkish_ranges_spec.rb +7 -0
- data/turkish_ranges.gemspec +28 -0
- metadata +30 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 541ad676ae6e965932c387cc84ab9792636b640da5c5490ec0e456805a76c0d8
|
4
|
+
data.tar.gz: '0428644d1d5f0b167ed91235013ba23b5a465c5aad7be2150fb9c553982d4a55'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1eab65f0fc36146349dfe13dd72782f7b06e00386f83ddd8e07677b4a78b2736c9ce73bcfc85b9663fa969ca76ba4eb1e01ab0ca8be88a6ba0eb3ec7bb5fb419
|
7
|
+
data.tar.gz: 504e32de91f19004c41f95898da7a22f2d9a3c8b93928cd117aa424d70a5c736249e45dd3c779cb74ad2253fae4ea46a36ffd496a8a11676a650c91b536b216c
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.7
|
3
|
+
NewCops: enable
|
4
|
+
Layout/DotPosition:
|
5
|
+
EnforcedStyle: leading
|
6
|
+
Enabled: true
|
7
|
+
Style/StringLiterals:
|
8
|
+
EnforcedStyle: single_quotes
|
9
|
+
Style/AsciiComments:
|
10
|
+
Enabled: false
|
11
|
+
Style/FrozenStringLiteralComment:
|
12
|
+
Exclude:
|
13
|
+
- 'bin/console'
|
14
|
+
- 'Rakefile'
|
15
|
+
Metrics/BlockLength:
|
16
|
+
ExcludedMethods:
|
17
|
+
- 'describe'
|
18
|
+
- 'context'
|
data/.travis.yml
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
## [Version 0.0.1](https://github.com/sbagdat/turkish_ranges/releases/tag/v0.1.0) (2020-11-23)
|
2
|
+
|
3
|
+
### New features
|
4
|
+
|
5
|
+
- Capability to create ranges containing turkish characters [`f1f4c5b`](https://github.com/sbagdat/turkish_ranges/commit/f1f4c5b)
|
6
|
+
- Capability to compare string containing turkish characters [`f1f4c5b`](https://github.com/sbagdat/turkish_ranges/commit/f1f4c5b)
|
7
|
+
- Creating strings with TrText#new [`f1f4c5b`](https://github.com/sbagdat/turkish_ranges/CHANGELOG.md/commit/f1f4c5b)
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
6
|
+
contributors and maintainers pledge to making participation in our project and
|
7
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
8
|
+
size, disability, ethnicity, gender identity and expression, level of experience,
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
10
|
+
orientation.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
15
|
+
include:
|
16
|
+
|
17
|
+
* Using welcoming and inclusive language
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
19
|
+
* Gracefully accepting constructive criticism
|
20
|
+
* Focusing on what is best for the community
|
21
|
+
* Showing empathy towards other community members
|
22
|
+
|
23
|
+
Examples of unacceptable behavior by participants include:
|
24
|
+
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
+
advances
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
+
* Public or private harassment
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
30
|
+
address, without explicit permission
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
+
professional setting
|
33
|
+
|
34
|
+
## Our Responsibilities
|
35
|
+
|
36
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
37
|
+
behavior and are expected to take appropriate and fair corrective action in
|
38
|
+
response to any instances of unacceptable behavior.
|
39
|
+
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
41
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
42
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
44
|
+
threatening, offensive, or harmful.
|
45
|
+
|
46
|
+
## Scope
|
47
|
+
|
48
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
49
|
+
when an individual is representing the project or its community. Examples of
|
50
|
+
representing a project or community include using an official project e-mail
|
51
|
+
address, posting via an official social media account, or acting as an appointed
|
52
|
+
representative at an online or offline event. Representation of a project may be
|
53
|
+
further defined and clarified by project maintainers.
|
54
|
+
|
55
|
+
## Enforcement
|
56
|
+
|
57
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
+
reported by contacting the project team at sbagdat@gmail.com. All
|
59
|
+
complaints will be reviewed and investigated and will result in a response that
|
60
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
61
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62
|
+
Further details of specific enforcement policies may be posted separately.
|
63
|
+
|
64
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65
|
+
faith may face temporary or permanent repercussions as determined by other
|
66
|
+
members of the project's leadership.
|
67
|
+
|
68
|
+
## Attribution
|
69
|
+
|
70
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
+
available at [https://contributor-covenant.org/version/1/4][version]
|
72
|
+
|
73
|
+
[homepage]: https://contributor-covenant.org
|
74
|
+
[version]: https://contributor-covenant.org/version/1/4/
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
turkish_ranges (0.1.1)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
diff-lcs (1.4.4)
|
10
|
+
rake (12.3.3)
|
11
|
+
rspec (3.10.0)
|
12
|
+
rspec-core (~> 3.10.0)
|
13
|
+
rspec-expectations (~> 3.10.0)
|
14
|
+
rspec-mocks (~> 3.10.0)
|
15
|
+
rspec-core (3.10.0)
|
16
|
+
rspec-support (~> 3.10.0)
|
17
|
+
rspec-expectations (3.10.0)
|
18
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
19
|
+
rspec-support (~> 3.10.0)
|
20
|
+
rspec-mocks (3.10.0)
|
21
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
22
|
+
rspec-support (~> 3.10.0)
|
23
|
+
rspec-support (3.10.0)
|
24
|
+
|
25
|
+
PLATFORMS
|
26
|
+
ruby
|
27
|
+
|
28
|
+
DEPENDENCIES
|
29
|
+
rake (~> 12.0)
|
30
|
+
rspec (~> 3.0)
|
31
|
+
turkish_ranges!
|
32
|
+
|
33
|
+
BUNDLED WITH
|
34
|
+
2.1.4
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2020 Sıtkı Bağdat
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
# TurkishRanges
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/turkish_ranges.svg)](https://badge.fury.io/rb/turkish_ranges)
|
4
|
+
[![Build Status](https://travis-ci.org/sbagdat/turkish_ranges.svg?branch=main)](https://travis-ci.org/sbagdat/turkish_ranges)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/sbagdat/turkish_ranges/badges/gpa.svg)](https://codeclimate.com/github/sbagdat/turkish_ranges)
|
6
|
+
|
7
|
+
|
8
|
+
Ranges and comparisons meet Turkish language.
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
Add this line to your application's Gemfile:
|
13
|
+
|
14
|
+
```ruby
|
15
|
+
gem 'turkish_ranges'
|
16
|
+
```
|
17
|
+
|
18
|
+
And then execute:
|
19
|
+
|
20
|
+
$ bundle install
|
21
|
+
|
22
|
+
Or install it yourself as:
|
23
|
+
|
24
|
+
$ gem install turkish_ranges
|
25
|
+
|
26
|
+
## Usage
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
require 'turkish_ranges'
|
30
|
+
|
31
|
+
include TurkishRanges
|
32
|
+
|
33
|
+
# Creating new texts
|
34
|
+
TrText.new('Türkçe')
|
35
|
+
|
36
|
+
# Comparing texts containing Turkish letters
|
37
|
+
TrText.new('Ğ') > TrText.new('Ü') # false
|
38
|
+
TrText.new('abbası') < TrText.new('abbasi') # true
|
39
|
+
|
40
|
+
# Creating ranges containing Turkish letters
|
41
|
+
full_upcase_range = TrText.new('A')..TrText.new('Z')
|
42
|
+
full_upcase_range.to_a
|
43
|
+
# => [A, B, C, Ç, D, E, F, G, Ğ, H, I, İ, J, K, L, M,
|
44
|
+
# N, O, Ö, P, Q, R, S, Ş, T, U, Ü, V, W, X, Y, Z]
|
45
|
+
|
46
|
+
full_downcase_range = TrText.new('A')..TrText.new('Z')
|
47
|
+
full_downcase_range.to_a
|
48
|
+
# => [a, b, c, ç, d, e, f, g, ğ, h, ı, i, j, k, l, m,
|
49
|
+
# n, o, ö, p, q, r, s, ş, t, u, ü, v, w, x, y, z]
|
50
|
+
|
51
|
+
(TrText.new('aa')..TrText.new('ax')).to_a
|
52
|
+
# => [aa, ab, ac, aç, ad, ae, af, ag, ağ, ah, aı, ai, aj, ak, al,
|
53
|
+
# am, an, ao, aö, ap, aq, ar, as, aş, at, au, aü, av, aw, ax]
|
54
|
+
```
|
55
|
+
|
56
|
+
## Development
|
57
|
+
|
58
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
59
|
+
|
60
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
61
|
+
|
62
|
+
## Contributing
|
63
|
+
|
64
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/sbagdat/turkish_ranges. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/turkish_ranges/blob/master/CODE_OF_CONDUCT.md).
|
65
|
+
|
66
|
+
## License
|
67
|
+
|
68
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
69
|
+
|
70
|
+
## Code of Conduct
|
71
|
+
|
72
|
+
Everyone interacting in the TurkishRanges project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/turkish_ranges/blob/master/CODE_OF_CONDUCT.md).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'turkish_ranges'
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require 'irb'
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TurkishRanges
|
4
|
+
# Represents a character sequence in Turkish language
|
5
|
+
class TrText
|
6
|
+
include Comparable
|
7
|
+
|
8
|
+
# Sets the letters for the `TrText`.
|
9
|
+
# @return [String] character sequence
|
10
|
+
attr_reader :letters
|
11
|
+
|
12
|
+
private :letters
|
13
|
+
|
14
|
+
# Using for character mapping
|
15
|
+
MAP = 'DHJPTVdhiptvÈğıØşÝèĠIJøŠý'.chars.zip('ÇĞİÖŞÜçğıöşüDHJPTVdhiptv'.chars).to_h.freeze
|
16
|
+
|
17
|
+
# Using for calculating character codes
|
18
|
+
ASCII_ALPHABET = 'ABCÇDEFGĞHIİJKLMNOÖPQRSŞTUÜVWXYZabcçdefgğhıijklmnoöpqrsştuüvwxyz'
|
19
|
+
.chars.map.with_index { [_1, _2 + 65] }.to_h.freeze
|
20
|
+
|
21
|
+
# A new instance of TrText
|
22
|
+
#
|
23
|
+
# @param [String] letters
|
24
|
+
# @return [TrText]
|
25
|
+
def initialize(letters)
|
26
|
+
@letters = letters
|
27
|
+
end
|
28
|
+
|
29
|
+
# Using for object comparison
|
30
|
+
#
|
31
|
+
# @param [TrText] other
|
32
|
+
# # @return [Integer] 1, 0 or -1
|
33
|
+
def <=>(other)
|
34
|
+
codepoints_sum <=> other.codepoints_sum
|
35
|
+
end
|
36
|
+
|
37
|
+
# Calculates codepoint of a single characacter based on ASCII_ALPHABET
|
38
|
+
#
|
39
|
+
# @return [Integer]
|
40
|
+
def code
|
41
|
+
ASCII_ALPHABET[letters] || letters&.ord.to_i
|
42
|
+
end
|
43
|
+
|
44
|
+
# Calculates the sum of codepoints in letters
|
45
|
+
#
|
46
|
+
# @return [Integer]
|
47
|
+
def codepoints_sum
|
48
|
+
letters.chars.map { TrText.new(_1) }.map(&:code).inject(:+)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Calculates the successor string from `letters`
|
52
|
+
#
|
53
|
+
# @return [String]
|
54
|
+
def succ_letter
|
55
|
+
successor = letters.succ
|
56
|
+
change = successor.delete(letters)
|
57
|
+
successor.sub!(change, MAP[change]) if change.length == 1 && MAP.key?(change)
|
58
|
+
successor
|
59
|
+
end
|
60
|
+
|
61
|
+
# Next successor character sequence
|
62
|
+
#
|
63
|
+
# @return [TrText]
|
64
|
+
def succ
|
65
|
+
TrText.new(succ_letter)
|
66
|
+
end
|
67
|
+
|
68
|
+
# Overloading Object#to_s
|
69
|
+
#
|
70
|
+
# @return [String]
|
71
|
+
def to_s
|
72
|
+
letters
|
73
|
+
end
|
74
|
+
|
75
|
+
# Overloading Object#inspect
|
76
|
+
#
|
77
|
+
# @return [String]
|
78
|
+
def inspect
|
79
|
+
letters
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
(TurkishRanges::TrText.new("a")..TurkishRanges::TrText.new("z")).to_a
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'turkish_ranges'
|
5
|
+
require 'turkish_ranges/tr_text'
|
6
|
+
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.example_status_persistence_file_path = '.rspec_status'
|
9
|
+
config.disable_monkey_patching!
|
10
|
+
config.expect_with :rspec do |c|
|
11
|
+
c.syntax = :expect
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.configure do |config|
|
4
|
+
config.include TurkishRanges
|
5
|
+
include TurkishRanges
|
6
|
+
end
|
7
|
+
|
8
|
+
RSpec.describe 'TrLetterSpec' do
|
9
|
+
context '#new' do
|
10
|
+
it 'creates new object' do
|
11
|
+
expect(TrText.new('Ü')).not_to be nil
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context '#code' do
|
16
|
+
it 'returns correct extended ascii code' do
|
17
|
+
expect(TrText.new('A').code).to eq 65
|
18
|
+
expect(TrText.new('ş').code).to eq 120
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context '#codepoints_sum' do
|
23
|
+
it 'returns total codepoints of letters' do
|
24
|
+
expect(TrText.new('ABCÇ').codepoints_sum).to eq 65 + 66 + 67 + 68
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'when doing comparisons' do
|
29
|
+
it 'can compare two letters' do
|
30
|
+
expect(TrText.new('Ş') > TrText.new('Ğ')).to be true
|
31
|
+
expect(TrText.new('ç') < TrText.new('d')).to be true
|
32
|
+
expect(TrText.new('z') < TrText.new('ö')).to be false
|
33
|
+
expect(TrText.new('ğ') < TrText.new('ü')).to be true
|
34
|
+
expect(TrText.new('ş') < TrText.new('ü')).to be true
|
35
|
+
expect(TrText.new('U') > TrText.new('ç')).to be false
|
36
|
+
expect(TrText.new('H') > TrText.new('Ğ')).to be true
|
37
|
+
expect(TrText.new('ç') != TrText.new('Ç')).to be true
|
38
|
+
expect(TrText.new('Ğ') == TrText.new('ğ'.upcase(:turkic))).to be true
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'when creating ranges' do
|
43
|
+
it 'creates a full ranges of single character' do
|
44
|
+
a_to_z_lower_case = 'abcçdefgğhıijklmnoöpqrsştuüvwxyz'
|
45
|
+
a_to_z_upper_case = 'ABCÇDEFGĞHIİJKLMNOÖPQRSŞTUÜVWXYZ'
|
46
|
+
lower_case_range = TrText.new('a')..TrText.new('z')
|
47
|
+
upper_case_range = TrText.new('A')..TrText.new('Z')
|
48
|
+
|
49
|
+
expect(lower_case_range.to_a.join).to eq a_to_z_lower_case
|
50
|
+
expect(upper_case_range.to_a.join).to eq a_to_z_upper_case
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'creates partial ranges of single character' do
|
54
|
+
c_to_s_lower_case = 'çdefgğhıijklmnoöpqrsş'
|
55
|
+
g_to_u_upper_case = 'ĞHIİJKLMNOÖPQRSŞTUÜ'
|
56
|
+
lower_case_range = TrText.new('ç')..TrText.new('ş')
|
57
|
+
upper_case_range = TrText.new('Ğ')..TrText.new('Ü')
|
58
|
+
|
59
|
+
expect(lower_case_range.to_a.join).to eq c_to_s_lower_case
|
60
|
+
expect(upper_case_range.to_a.join).to eq g_to_u_upper_case
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'creates ranges of mutliple characters' do
|
64
|
+
z_to_ad_lower_case = 'zaaabacaçad'
|
65
|
+
z_to_ad_upper_case = 'ZAAABACAÇAD'
|
66
|
+
lower_case_range = TrText.new('z')..TrText.new('ad')
|
67
|
+
upper_case_range = TrText.new('Z')..TrText.new('AD')
|
68
|
+
|
69
|
+
expect(lower_case_range.to_a.join).to eq z_to_ad_lower_case
|
70
|
+
expect(upper_case_range.to_a.join).to eq z_to_ad_upper_case
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
|
+
$LOAD_PATH.prepend(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require 'turkish_ranges/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = 'turkish_ranges'
|
9
|
+
spec.version = TurkishRanges::VERSION
|
10
|
+
spec.authors = ['Sıtkı Bağdat']
|
11
|
+
spec.email = ['sbagdat@gmail.com']
|
12
|
+
|
13
|
+
spec.summary = 'Ranges and string comparisons meet Turkish language'
|
14
|
+
spec.description = 'Ranges and string comparisons meet Turkish language. You can use ' \
|
15
|
+
'it anywhere in your code, Range, Regexp, etc..'
|
16
|
+
spec.homepage = 'https://github.com/sbagdat/turkish_ranges'
|
17
|
+
spec.license = 'MIT'
|
18
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.7.0')
|
19
|
+
spec.files = `git ls-files -z`.split("\x0")
|
20
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
|
+
|
23
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
24
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
25
|
+
spec.metadata['source_code_uri'] = spec.homepage
|
26
|
+
spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/main/CHANGELOG.md"
|
27
|
+
spec.require_paths = ['lib']
|
28
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turkish_ranges
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sıtkı Bağdat
|
@@ -14,10 +14,32 @@ description: Ranges and string comparisons meet Turkish language. You can use it
|
|
14
14
|
in your code, Range, Regexp, etc..
|
15
15
|
email:
|
16
16
|
- sbagdat@gmail.com
|
17
|
-
executables:
|
17
|
+
executables:
|
18
|
+
- console
|
19
|
+
- setup
|
18
20
|
extensions: []
|
19
21
|
extra_rdoc_files: []
|
20
|
-
files:
|
22
|
+
files:
|
23
|
+
- ".gitignore"
|
24
|
+
- ".rspec"
|
25
|
+
- ".rubocop.yml"
|
26
|
+
- ".travis.yml"
|
27
|
+
- CHANGELOG.md
|
28
|
+
- CODE_OF_CONDUCT.md
|
29
|
+
- Gemfile
|
30
|
+
- Gemfile.lock
|
31
|
+
- LICENSE.txt
|
32
|
+
- README.md
|
33
|
+
- Rakefile
|
34
|
+
- bin/console
|
35
|
+
- bin/setup
|
36
|
+
- lib/turkish_ranges.rb
|
37
|
+
- lib/turkish_ranges/tr_text.rb
|
38
|
+
- lib/turkish_ranges/version.rb
|
39
|
+
- spec/spec_helper.rb
|
40
|
+
- spec/tr_text_spec.rb
|
41
|
+
- spec/turkish_ranges_spec.rb
|
42
|
+
- turkish_ranges.gemspec
|
21
43
|
homepage: https://github.com/sbagdat/turkish_ranges
|
22
44
|
licenses:
|
23
45
|
- MIT
|
@@ -25,7 +47,7 @@ metadata:
|
|
25
47
|
allowed_push_host: https://rubygems.org
|
26
48
|
homepage_uri: https://github.com/sbagdat/turkish_ranges
|
27
49
|
source_code_uri: https://github.com/sbagdat/turkish_ranges
|
28
|
-
changelog_uri: https://github.com/sbagdat/turkish_ranges/CHANGELOG.md
|
50
|
+
changelog_uri: https://github.com/sbagdat/turkish_ranges/blob/main/CHANGELOG.md
|
29
51
|
post_install_message:
|
30
52
|
rdoc_options: []
|
31
53
|
require_paths:
|
@@ -45,4 +67,7 @@ rubygems_version: 3.1.2
|
|
45
67
|
signing_key:
|
46
68
|
specification_version: 4
|
47
69
|
summary: Ranges and string comparisons meet Turkish language
|
48
|
-
test_files:
|
70
|
+
test_files:
|
71
|
+
- spec/spec_helper.rb
|
72
|
+
- spec/tr_text_spec.rb
|
73
|
+
- spec/turkish_ranges_spec.rb
|