friends 0.25 → 0.26
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 +4 -4
- data/CHANGELOG.md +10 -2
- data/README.md +4 -0
- data/lib/friends/friend.rb +1 -1
- data/lib/friends/version.rb +1 -1
- data/test/friend_spec.rb +76 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 045b1ac8af5c8004d171bf68792d452509beb67b
|
4
|
+
data.tar.gz: 817d9105c51b235a4d317ef4bc7271a55b888739
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc9894a009593305940c9b241374d7e7fa8568f83152efdf59522b74fa7caad9af32c2990cc055428856e5f1835ff4b74028ead5dfa7c96f26e5f6a93e9af8c4
|
7
|
+
data.tar.gz: 52d6e320aefd0fd4a45373ae20b1aa36c2b96f24367c35d61a13f10d29470c78ada7640460e03565f06084c2f389229f8689eca9519cbe18a26aca9ff391224b
|
data/CHANGELOG.md
CHANGED
@@ -1,12 +1,20 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [v0.
|
4
|
-
[Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.
|
3
|
+
## [v0.26](https://github.com/JacobEvelyn/friends/tree/v0.26) (2016-05-23)
|
4
|
+
[Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.25...v0.26)
|
5
5
|
|
6
6
|
**Fixed bugs:**
|
7
7
|
|
8
|
+
- Adding/filtering friend with tag but no nickname incorrectly counts the tag as part of the name [\#140](https://github.com/JacobEvelyn/friends/issues/140)
|
8
9
|
- Error: stack level too deep [\#136](https://github.com/JacobEvelyn/friends/issues/136)
|
9
10
|
|
11
|
+
**Merged pull requests:**
|
12
|
+
|
13
|
+
- Fix deserialization for friends with tags and no nicknames [\#141](https://github.com/JacobEvelyn/friends/pull/141) ([JacobEvelyn](https://github.com/JacobEvelyn))
|
14
|
+
|
15
|
+
## [v0.25](https://github.com/JacobEvelyn/friends/tree/v0.25) (2016-05-22)
|
16
|
+
[Full Changelog](https://github.com/JacobEvelyn/friends/compare/v0.24...v0.25)
|
17
|
+
|
10
18
|
**Closed issues:**
|
11
19
|
|
12
20
|
- Remove tag-migration code for 1.0 release [\#139](https://github.com/JacobEvelyn/friends/issues/139)
|
data/README.md
CHANGED
@@ -5,6 +5,10 @@
|
|
5
5
|
Spend time with the people you care about. Introvert-tested.
|
6
6
|
Extrovert-approved.
|
7
7
|
|
8
|
+
**NOTE: Participation is encouraged! Make Issues, ask questions, submit Pull
|
9
|
+
Requests (even if it's your first time contributing to open-source—you'll get
|
10
|
+
lots of help), and give feedback!**
|
11
|
+
|
8
12
|
## Table of Contents
|
9
13
|
|
10
14
|
- [Overview](#overview)
|
data/lib/friends/friend.rb
CHANGED
@@ -17,7 +17,7 @@ module Friends
|
|
17
17
|
def self.deserialization_regex
|
18
18
|
# Note: this regex must be on one line because whitespace is important
|
19
19
|
# rubocop:disable Metrics/LineLength
|
20
|
-
/(#{SERIALIZATION_PREFIX})?(?<name>[^\(\[
|
20
|
+
/(#{SERIALIZATION_PREFIX})?(?<name>[^\(\[@]*[^\(\[@\s])(\s+\(#{NICKNAME_PREFIX}(?<nickname_str>.+)\))?(\s+\[(?<location_name>[^\]]+)\])?(\s+(?<tags_str>(#{TAG_REGEX}\s*)+))?/
|
21
21
|
# rubocop:enable Metrics/LineLength
|
22
22
|
end
|
23
23
|
|
data/lib/friends/version.rb
CHANGED
data/test/friend_spec.rb
CHANGED
@@ -24,6 +24,82 @@ describe Friends::Friend do
|
|
24
24
|
|
25
25
|
it { proc { subject }.must_raise Serializable::SerializationError }
|
26
26
|
end
|
27
|
+
|
28
|
+
describe "when string has one nickname" do
|
29
|
+
let(:serialized_str) { "Guybrush Threepwood (a.k.a. Brush)" }
|
30
|
+
it { subject.name.must_equal "Guybrush Threepwood" }
|
31
|
+
it { subject.instance_variable_get(:@nicknames).must_equal ["Brush"] }
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "when string has multiple nicknames" do
|
35
|
+
let(:serialized_str) { "Guybrush Threepwood (a.k.a. Brush a.k.a. Guy)" }
|
36
|
+
it { subject.name.must_equal "Guybrush Threepwood" }
|
37
|
+
it do
|
38
|
+
subject.instance_variable_get(:@nicknames).must_equal ["Brush", "Guy"]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "when string has a location" do
|
43
|
+
let(:serialized_str) { "Guybrush Threepwood [Plunder Island]" }
|
44
|
+
it { subject.name.must_equal "Guybrush Threepwood" }
|
45
|
+
it { subject.location_name.must_equal "Plunder Island" }
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "when string has one tag" do
|
49
|
+
let(:serialized_str) { "Guybrush Threepwood @pirate" }
|
50
|
+
it { subject.name.must_equal "Guybrush Threepwood" }
|
51
|
+
it { subject.tags.must_equal ["@pirate"] }
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "when string has multiple tags" do
|
55
|
+
let(:serialized_str) { "Guybrush Threepwood @pirate @swashbuckler" }
|
56
|
+
it { subject.name.must_equal "Guybrush Threepwood" }
|
57
|
+
it { subject.tags.must_equal ["@pirate", "@swashbuckler"] }
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "when string has nicknames and tags" do
|
61
|
+
let(:serialized_str) do
|
62
|
+
"Guybrush Threepwood (a.k.a. Brush a.k.a. Guy) @pirate @swashbuckler"
|
63
|
+
end
|
64
|
+
it { subject.name.must_equal "Guybrush Threepwood" }
|
65
|
+
it do
|
66
|
+
subject.instance_variable_get(:@nicknames).must_equal ["Brush", "Guy"]
|
67
|
+
end
|
68
|
+
it { subject.tags.must_equal ["@pirate", "@swashbuckler"] }
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "when string has nicknames and a location" do
|
72
|
+
let(:serialized_str) do
|
73
|
+
"Guybrush Threepwood (a.k.a. Brush a.k.a. Guy) [Plunder Island]"
|
74
|
+
end
|
75
|
+
it { subject.name.must_equal "Guybrush Threepwood" }
|
76
|
+
it do
|
77
|
+
subject.instance_variable_get(:@nicknames).must_equal ["Brush", "Guy"]
|
78
|
+
end
|
79
|
+
it { subject.location_name.must_equal "Plunder Island" }
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "when string has a location and tags" do
|
83
|
+
let(:serialized_str) do
|
84
|
+
"Guybrush Threepwood [Plunder Island] @pirate @swashbuckler"
|
85
|
+
end
|
86
|
+
it { subject.name.must_equal "Guybrush Threepwood" }
|
87
|
+
it { subject.location_name.must_equal "Plunder Island" }
|
88
|
+
it { subject.tags.must_equal ["@pirate", "@swashbuckler"] }
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "when string has nicknames, a location, and tags" do
|
92
|
+
let(:serialized_str) do
|
93
|
+
"Guybrush Threepwood (a.k.a. Brush a.k.a. Guy) [Plunder Island] "\
|
94
|
+
"@pirate @swashbuckler"
|
95
|
+
end
|
96
|
+
it { subject.name.must_equal "Guybrush Threepwood" }
|
97
|
+
it do
|
98
|
+
subject.instance_variable_get(:@nicknames).must_equal ["Brush", "Guy"]
|
99
|
+
end
|
100
|
+
it { subject.location_name.must_equal "Plunder Island" }
|
101
|
+
it { subject.tags.must_equal ["@pirate", "@swashbuckler"] }
|
102
|
+
end
|
27
103
|
end
|
28
104
|
|
29
105
|
describe "#new" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: friends
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.26'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacob Evelyn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chronic
|