textrepo 0.5.7 → 0.5.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -1
- data/README.md +26 -0
- data/lib/textrepo/timestamp.rb +8 -11
- data/lib/textrepo/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf69f1606a2c55098ab6b3b8ea063aa7ee45dc06917d230abd4a29cc7a119c71
|
4
|
+
data.tar.gz: a366497c8ff6b8e305780aab3c0ac8c6bdc315e175f39ceb95ea020a6df163a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93b08a70c122530e33f05d9581052cfd17dcb56a85e03281ba9405394f946771f1b17734c1b6fd1d2771423f08c384bf2a8c0c895c5f08ff0f9b65bea3e23ae3
|
7
|
+
data.tar.gz: b9f1ce017a0e4f1b0bb68d05c9a2211b8bda3a4d78c4440c08549001b538f38c701ed0e712b14f7de510321a66afd610fc2520180322eecb4bf089fa0fbd4d4b
|
data/CHANGELOG.md
CHANGED
@@ -5,7 +5,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/)
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/).
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
|
-
|
8
|
+
- add a section to describe about **text** into `README.md`.
|
9
9
|
|
10
10
|
## [0.5.7] - 2020-11-16
|
11
11
|
### Fixed
|
data/README.md
CHANGED
@@ -61,6 +61,32 @@ stamps.each { |stamp|
|
|
61
61
|
Also see `examples` directory. There is a small tool to demonstrate
|
62
62
|
how to use `textrepo`.
|
63
63
|
|
64
|
+
## What is TEXT?
|
65
|
+
|
66
|
+
In macOS (or similar unix OS), text is a date stored into a regular
|
67
|
+
file. Its characteristics are;
|
68
|
+
|
69
|
+
- a character stream coded in some encoding system (such UTF-8),
|
70
|
+
- divided into multiple physical lines with newline character (`\n`).
|
71
|
+
|
72
|
+
In `textrepo` and its client program, a **text** is usually generated
|
73
|
+
from a text file mentioned above. It is;
|
74
|
+
|
75
|
+
- a character stream coded in UTF-8,
|
76
|
+
- consists of multiple logical lines (each of them does not contain a
|
77
|
+
newline character).
|
78
|
+
|
79
|
+
That is, newline characters are removed when text is read from a file
|
80
|
+
and added appropriately when it is written into a file.
|
81
|
+
|
82
|
+
So, **text** is represented with Ruby objects as follows:
|
83
|
+
|
84
|
+
- **Text** is represented with an `Array` object which contains
|
85
|
+
multiple `String` objects.
|
86
|
+
- A `String` object represents a **logical line** of **text**.
|
87
|
+
- Each `String` does not contain a newline character.
|
88
|
+
- An empty string ("") represents a empty line.
|
89
|
+
|
64
90
|
## Development
|
65
91
|
|
66
92
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/textrepo/timestamp.rb
CHANGED
@@ -329,11 +329,11 @@ module Textrepo
|
|
329
329
|
# Raises InvalidTimestampStringError if nil was passed as an arguemnt.
|
330
330
|
|
331
331
|
def split_stamp(stamp_str)
|
332
|
-
raise InvalidTimestampStringError,
|
332
|
+
raise InvalidTimestampStringError, "(nil)" if stamp_str.nil?
|
333
333
|
# yyyy mo dd hh mi ss sfx
|
334
334
|
a = [0..3, 4..5, 6..7, 8..9, 10..11, 12..13, 15..17].map {|r| stamp_str[r]}
|
335
335
|
a.delete_at(-1) if a[-1].nil?
|
336
|
-
a
|
336
|
+
a.map{|e| e || "" }
|
337
337
|
end
|
338
338
|
|
339
339
|
##
|
@@ -348,18 +348,15 @@ module Textrepo
|
|
348
348
|
# parse_s("20201028163529_034") -> Timestamp
|
349
349
|
|
350
350
|
def parse_s(stamp_str)
|
351
|
+
raise InvalidTimestampStringError, "(nil)" if stamp_str.nil?
|
352
|
+
raise InvalidTimestampStringError, "(empty string)" if stamp_str.empty?
|
353
|
+
raise InvalidTimestampStringError, stamp_str if stamp_str.size < 14
|
354
|
+
|
351
355
|
begin
|
352
356
|
ye, mo, da, ho, mi, se, sfx = split_stamp(stamp_str).map(&:to_i)
|
353
357
|
Timestamp.new(Time.new(ye, mo, da, ho, mi, se), sfx)
|
354
|
-
rescue
|
355
|
-
|
356
|
-
"(nil)"
|
357
|
-
elsif stamp_str.empty?
|
358
|
-
"(empty string)"
|
359
|
-
else
|
360
|
-
stamp_str
|
361
|
-
end
|
362
|
-
raise InvalidTimestampStringError, emsg
|
358
|
+
rescue ArgumentRangeError, ArgumentError => _
|
359
|
+
raise InvalidTimestampStringError, stamp_str
|
363
360
|
end
|
364
361
|
end
|
365
362
|
end
|
data/lib/textrepo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: textrepo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mnbi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -77,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: '0'
|
79
79
|
requirements: []
|
80
|
-
rubygems_version: 3.
|
80
|
+
rubygems_version: 3.2.3
|
81
81
|
signing_key:
|
82
82
|
specification_version: 4
|
83
83
|
summary: A repository to store text with timestamp.
|