thunderbird 0.2.1 → 0.3.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 +4 -4
- data/lib/thunderbird/install.rb +1 -1
- data/lib/thunderbird/local_folder.rb +3 -3
- data/lib/thunderbird/profile.rb +1 -1
- data/lib/thunderbird/profiles.rb +3 -3
- data/lib/thunderbird/subdirectory.rb +19 -10
- data/lib/thunderbird/subdirectory_placeholder.rb +1 -1
- data/lib/thunderbird/version.rb +2 -2
- data/thunderbird.gemspec +4 -6
- metadata +4 -10
- data/.rspec +0 -3
- data/.rubocop.yml +0 -193
- data/.rubocop_todo.yml +0 -17
- data/CHANGELOG.md +0 -3
- data/Gemfile +0 -12
- data/Rakefile +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b00596eb313f59ff0067a1cdbc9f3c177d955c8c3d53dfc25ca997852063f108
|
4
|
+
data.tar.gz: a1d8a4616d516454cb2e3b7ce61661285ba9f09073f1b9b5c38a6710a3fda46c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfee0f4a65980836566ef8935dfa9c1bf055d8315f909a76ca3a3a1686afe021988600a0d9613ddf546b28587d12aef88107d68612b48d5e3dc2464859e79866
|
7
|
+
data.tar.gz: 960916c4437ab68df3893816abba8b734bab5237f98190543278bd65af93fbc2730b0b985e90752fc19207cd9476c3d034be0bb450c90a7739dcaf90c416b3ed
|
data/lib/thunderbird/install.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "thunderbird/profile"
|
4
3
|
require "thunderbird/subdirectory"
|
5
4
|
|
6
5
|
class Thunderbird
|
7
6
|
# A local folder is a file containing emails
|
7
|
+
# It is not a "live" folder that is sync-able with an online account
|
8
8
|
class LocalFolder
|
9
9
|
attr_reader :path
|
10
10
|
attr_reader :profile
|
11
11
|
|
12
|
-
def initialize(profile
|
12
|
+
def initialize(profile:, path:)
|
13
13
|
@profile = profile
|
14
14
|
@path = path
|
15
15
|
end
|
@@ -51,7 +51,7 @@ class Thunderbird
|
|
51
51
|
def subdirectory
|
52
52
|
return nil if !in_subdirectory?
|
53
53
|
|
54
|
-
Subdirectory.new(
|
54
|
+
Subdirectory.new(path: subdirectory_path, root: profile.local_folders_path)
|
55
55
|
end
|
56
56
|
|
57
57
|
def path_elements
|
data/lib/thunderbird/profile.rb
CHANGED
data/lib/thunderbird/profiles.rb
CHANGED
@@ -10,19 +10,19 @@ class Thunderbird
|
|
10
10
|
def profile_for_path(path)
|
11
11
|
title, entries = blocks.find { |_name, entries| entries[:Path] == path }
|
12
12
|
|
13
|
-
Thunderbird::Profile.new(title, entries) if title
|
13
|
+
Thunderbird::Profile.new(title: title, entries: entries) if title
|
14
14
|
end
|
15
15
|
|
16
16
|
def profile(name)
|
17
17
|
title, entries = blocks.find { |_name, entries| entries[:Name] == name }
|
18
18
|
|
19
|
-
Thunderbird::Profile.new(title, entries) if title
|
19
|
+
Thunderbird::Profile.new(title: title, entries: entries) if title
|
20
20
|
end
|
21
21
|
|
22
22
|
def installs
|
23
23
|
@installs ||= begin
|
24
24
|
pairs = blocks.filter { |name, _entries| name.start_with?("Install") }
|
25
|
-
pairs.map { |title, entries| Thunderbird::Install.new(title, entries) }
|
25
|
+
pairs.map { |title, entries| Thunderbird::Install.new(title: title, entries: entries) }
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -8,10 +8,10 @@ class Thunderbird
|
|
8
8
|
# `path` is the UI path, it doesn't have the '.sbd' extensions
|
9
9
|
# that are present in the real, file system path
|
10
10
|
attr_reader :path
|
11
|
-
attr_reader :
|
11
|
+
attr_reader :root
|
12
12
|
|
13
|
-
def initialize(
|
14
|
-
@
|
13
|
+
def initialize(root:, path:)
|
14
|
+
@root = root
|
15
15
|
@path = path
|
16
16
|
end
|
17
17
|
|
@@ -35,7 +35,7 @@ class Thunderbird
|
|
35
35
|
# subdirectory relative path is 'Foo.sbd/Bar.sbd/Baz.sbd'
|
36
36
|
def full_path
|
37
37
|
relative_path = File.join(subdirectories)
|
38
|
-
File.join(
|
38
|
+
File.join(root, relative_path)
|
39
39
|
end
|
40
40
|
|
41
41
|
private
|
@@ -51,15 +51,15 @@ class Thunderbird
|
|
51
51
|
def parent
|
52
52
|
return nil if !sub_sub_directory?
|
53
53
|
|
54
|
-
self.class.new(
|
54
|
+
self.class.new(root: root, path: File.join(path_elements[0..-2]))
|
55
55
|
end
|
56
56
|
|
57
57
|
# placeholder relative path is 'Foo.sbd/Bar.sbd/Baz'
|
58
58
|
def placeholder
|
59
59
|
@placeholder = begin
|
60
60
|
relative_path = File.join(subdirectories[0..-2], path_elements[-1])
|
61
|
-
path = File.join(
|
62
|
-
Thunderbird::SubdirectoryPlaceholder.new(path)
|
61
|
+
path = File.join(root, relative_path)
|
62
|
+
Thunderbird::SubdirectoryPlaceholder.new(path: path)
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -82,13 +82,22 @@ class Thunderbird
|
|
82
82
|
def check
|
83
83
|
case
|
84
84
|
when exists? && !placeholder.exists?
|
85
|
-
Kernel.puts
|
85
|
+
Kernel.puts(
|
86
|
+
"Can't set up folder '#{full_path}': " \
|
87
|
+
"'#{full_path}' exists, but '#{placeholder.path}' is missing"
|
88
|
+
)
|
86
89
|
false
|
87
90
|
when placeholder.exists? && !placeholder.regular?
|
88
|
-
Kernel.puts
|
91
|
+
Kernel.puts(
|
92
|
+
"Can't set up folder '#{full_path}': " \
|
93
|
+
"'#{placeholder.path}' exists, but it is not a regular file"
|
94
|
+
)
|
89
95
|
false
|
90
96
|
when exists? && !directory?
|
91
|
-
Kernel.puts
|
97
|
+
Kernel.puts(
|
98
|
+
"Can't set up folder '#{full_path}': " \
|
99
|
+
"'#{full_path}' exists, but it is not a directory"
|
100
|
+
)
|
92
101
|
false
|
93
102
|
else
|
94
103
|
true
|
data/lib/thunderbird/version.rb
CHANGED
data/thunderbird.gemspec
CHANGED
@@ -11,18 +11,16 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.summary = "Conveniences for interacting with Mozilla Thunderbird"
|
12
12
|
spec.homepage = "https://github.com/joeyates/thunderbird"
|
13
13
|
spec.license = "MIT"
|
14
|
-
spec.required_ruby_version = ">= 2.
|
14
|
+
spec.required_ruby_version = ">= 2.7"
|
15
15
|
|
16
16
|
spec.metadata["homepage_uri"] = spec.homepage
|
17
17
|
spec.metadata["source_code_uri"] = "https://github.com/joeyates/thunderbird"
|
18
18
|
spec.metadata["changelog_uri"] = "https://github.com/joeyates/thunderbird/blob/main/CHANGELOG.md"
|
19
19
|
spec.metadata["rubygems_mfa_required"] = "true"
|
20
20
|
|
21
|
-
spec.files = Dir.
|
22
|
-
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
21
|
+
spec.files = Dir.glob("lib/**/*.rb")
|
22
|
+
spec.files += ["thunderbird.gemspec"]
|
23
|
+
spec.files += %w(LICENSE.txt README.md)
|
26
24
|
spec.bindir = "exe"
|
27
25
|
spec.executables = []
|
28
26
|
spec.require_paths = ["lib"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thunderbird
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Yates
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: os
|
@@ -31,14 +31,8 @@ executables: []
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
-
- ".rspec"
|
35
|
-
- ".rubocop.yml"
|
36
|
-
- ".rubocop_todo.yml"
|
37
|
-
- CHANGELOG.md
|
38
|
-
- Gemfile
|
39
34
|
- LICENSE.txt
|
40
35
|
- README.md
|
41
|
-
- Rakefile
|
42
36
|
- lib/thunderbird.rb
|
43
37
|
- lib/thunderbird/install.rb
|
44
38
|
- lib/thunderbird/local_folder.rb
|
@@ -64,14 +58,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
64
58
|
requirements:
|
65
59
|
- - ">="
|
66
60
|
- !ruby/object:Gem::Version
|
67
|
-
version: '2.
|
61
|
+
version: '2.7'
|
68
62
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
63
|
requirements:
|
70
64
|
- - ">="
|
71
65
|
- !ruby/object:Gem::Version
|
72
66
|
version: '0'
|
73
67
|
requirements: []
|
74
|
-
rubygems_version: 3.
|
68
|
+
rubygems_version: 3.3.7
|
75
69
|
signing_key:
|
76
70
|
specification_version: 4
|
77
71
|
summary: Conveniences for interacting with Mozilla Thunderbird
|
data/.rspec
DELETED
data/.rubocop.yml
DELETED
@@ -1,193 +0,0 @@
|
|
1
|
-
inherit_from: .rubocop_todo.yml
|
2
|
-
|
3
|
-
AllCops:
|
4
|
-
TargetRubyVersion: 2.5
|
5
|
-
Exclude:
|
6
|
-
- "bin/stubs/*"
|
7
|
-
- "vendor/**/*"
|
8
|
-
|
9
|
-
Gemspec/DateAssignment:
|
10
|
-
Enabled: true
|
11
|
-
|
12
|
-
Gemspec/RequireMFA:
|
13
|
-
Enabled: true
|
14
|
-
|
15
|
-
Layout/DotPosition:
|
16
|
-
Enabled: true
|
17
|
-
EnforcedStyle: trailing
|
18
|
-
|
19
|
-
Layout/LineEndStringConcatenationIndentation:
|
20
|
-
Enabled: true
|
21
|
-
|
22
|
-
Layout/SpaceBeforeBrackets:
|
23
|
-
Enabled: true
|
24
|
-
|
25
|
-
Layout/SpaceInsideHashLiteralBraces:
|
26
|
-
Enabled: true
|
27
|
-
EnforcedStyle: no_space
|
28
|
-
|
29
|
-
Lint/AmbiguousAssignment:
|
30
|
-
Enabled: true
|
31
|
-
|
32
|
-
Lint/AmbiguousOperatorPrecedence:
|
33
|
-
Enabled: true
|
34
|
-
|
35
|
-
Lint/AmbiguousRange:
|
36
|
-
Enabled: true
|
37
|
-
|
38
|
-
Lint/DeprecatedConstants:
|
39
|
-
Enabled: true
|
40
|
-
|
41
|
-
Lint/DuplicateBranch:
|
42
|
-
Enabled: true
|
43
|
-
|
44
|
-
Lint/DuplicateRegexpCharacterClassElement:
|
45
|
-
Enabled: true
|
46
|
-
|
47
|
-
Lint/EmptyBlock:
|
48
|
-
Enabled: true
|
49
|
-
|
50
|
-
Lint/EmptyClass:
|
51
|
-
Enabled: true
|
52
|
-
|
53
|
-
Lint/EmptyInPattern:
|
54
|
-
Enabled: true
|
55
|
-
|
56
|
-
Lint/IncompatibleIoSelectWithFiberScheduler:
|
57
|
-
Enabled: true
|
58
|
-
|
59
|
-
Lint/LambdaWithoutLiteralBlock:
|
60
|
-
Enabled: true
|
61
|
-
|
62
|
-
Lint/NoReturnInBeginEndBlocks:
|
63
|
-
Enabled: true
|
64
|
-
|
65
|
-
Lint/NumberedParameterAssignment:
|
66
|
-
Enabled: true
|
67
|
-
|
68
|
-
Lint/OrAssignmentToConstant:
|
69
|
-
Enabled: true
|
70
|
-
|
71
|
-
Lint/RedundantDirGlobSort:
|
72
|
-
Enabled: true
|
73
|
-
|
74
|
-
Lint/RequireRelativeSelfPath:
|
75
|
-
Enabled: true
|
76
|
-
|
77
|
-
Lint/SymbolConversion:
|
78
|
-
Enabled: true
|
79
|
-
|
80
|
-
Lint/ToEnumArguments:
|
81
|
-
Enabled: true
|
82
|
-
|
83
|
-
Lint/TripleQuotes:
|
84
|
-
Enabled: true
|
85
|
-
|
86
|
-
Lint/UnexpectedBlockArity:
|
87
|
-
Enabled: true
|
88
|
-
|
89
|
-
Lint/UnmodifiedReduceAccumulator:
|
90
|
-
Enabled: true
|
91
|
-
|
92
|
-
Lint/UselessRuby2Keywords:
|
93
|
-
Enabled: true
|
94
|
-
|
95
|
-
Naming/BlockForwarding:
|
96
|
-
Enabled: true
|
97
|
-
|
98
|
-
Security/IoMethods:
|
99
|
-
Enabled: true
|
100
|
-
|
101
|
-
Style/AccessorGrouping:
|
102
|
-
Enabled: true
|
103
|
-
EnforcedStyle: separated
|
104
|
-
|
105
|
-
Style/ArgumentsForwarding:
|
106
|
-
Enabled: true
|
107
|
-
|
108
|
-
Style/CollectionCompact:
|
109
|
-
Enabled: true
|
110
|
-
|
111
|
-
Style/DocumentDynamicEvalDefinition:
|
112
|
-
Enabled: true
|
113
|
-
|
114
|
-
Style/EmptyCaseCondition:
|
115
|
-
Enabled: false
|
116
|
-
|
117
|
-
Style/EndlessMethod:
|
118
|
-
Enabled: true
|
119
|
-
|
120
|
-
Style/FileRead:
|
121
|
-
Enabled: true
|
122
|
-
|
123
|
-
Style/FileWrite:
|
124
|
-
Enabled: true
|
125
|
-
|
126
|
-
Style/HashConversion:
|
127
|
-
Enabled: true
|
128
|
-
|
129
|
-
Style/HashExcept:
|
130
|
-
Enabled: true
|
131
|
-
|
132
|
-
Style/IfWithBooleanLiteralBranches:
|
133
|
-
Enabled: true
|
134
|
-
|
135
|
-
Style/InPatternThen:
|
136
|
-
Enabled: true
|
137
|
-
|
138
|
-
Style/MapToHash:
|
139
|
-
Enabled: true
|
140
|
-
|
141
|
-
Style/MultilineInPatternThen:
|
142
|
-
Enabled: true
|
143
|
-
|
144
|
-
Style/NegatedIf:
|
145
|
-
Enabled: false
|
146
|
-
|
147
|
-
Style/NegatedIfElseCondition:
|
148
|
-
Enabled: true
|
149
|
-
|
150
|
-
Style/NilLambda:
|
151
|
-
Enabled: true
|
152
|
-
|
153
|
-
Style/NumberedParameters:
|
154
|
-
Enabled: true
|
155
|
-
|
156
|
-
Style/NumberedParametersLimit:
|
157
|
-
Enabled: true
|
158
|
-
|
159
|
-
Style/OpenStructUse:
|
160
|
-
Enabled: true
|
161
|
-
|
162
|
-
Style/QuotedSymbols:
|
163
|
-
Enabled: true
|
164
|
-
|
165
|
-
Style/RedundantArgument:
|
166
|
-
Enabled: true
|
167
|
-
|
168
|
-
Style/RedundantSelfAssignmentBranch:
|
169
|
-
Enabled: true
|
170
|
-
|
171
|
-
Style/SelectByRegexp:
|
172
|
-
Enabled: true
|
173
|
-
|
174
|
-
Style/StringChars:
|
175
|
-
Enabled: true
|
176
|
-
|
177
|
-
Style/StringLiterals:
|
178
|
-
Enabled: true
|
179
|
-
EnforcedStyle: double_quotes
|
180
|
-
|
181
|
-
Style/StringLiteralsInInterpolation:
|
182
|
-
Enabled: true
|
183
|
-
EnforcedStyle: double_quotes
|
184
|
-
|
185
|
-
Style/SwapValues:
|
186
|
-
Enabled: true
|
187
|
-
|
188
|
-
Layout/LineLength:
|
189
|
-
Max: 120
|
190
|
-
|
191
|
-
Metrics/BlockLength:
|
192
|
-
Exclude:
|
193
|
-
- "spec/**/*"
|
data/.rubocop_todo.yml
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# This configuration was generated by
|
2
|
-
# `rubocop --auto-gen-config`
|
3
|
-
# on 2022-02-06 20:52:48 UTC using RuboCop version 1.25.1.
|
4
|
-
# The point is for the user to remove these configuration records
|
5
|
-
# one by one as the offenses are removed from the code base.
|
6
|
-
# Note that changes in the inspected code, or installation of new
|
7
|
-
# versions of RuboCop, may require this file to be generated again.
|
8
|
-
|
9
|
-
# Offense count: 2
|
10
|
-
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
11
|
-
Metrics/AbcSize:
|
12
|
-
Max: 25
|
13
|
-
|
14
|
-
# Offense count: 2
|
15
|
-
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
16
|
-
Metrics/MethodLength:
|
17
|
-
Max: 25
|
data/CHANGELOG.md
DELETED
data/Gemfile
DELETED