everything-core 0.0.8 → 0.0.13
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 +5 -5
- data/.travis.yml +3 -2
- data/CHANGELOG.md +31 -0
- data/Gemfile +1 -0
- data/README.md +42 -9
- data/bin/console +1 -1
- data/bin/setup +0 -2
- data/everything-core.gemspec +19 -12
- data/lib/everything.rb +3 -1
- data/lib/everything/logger.rb +25 -0
- data/lib/everything/logger/base.rb +17 -0
- data/lib/everything/logger/debug.rb +7 -0
- data/lib/everything/logger/error.rb +11 -0
- data/lib/everything/logger/log_it.rb +24 -0
- data/lib/everything/logger/verbose.rb +11 -0
- data/lib/everything/piece.rb +2 -2
- data/lib/everything/piece/content.rb +31 -6
- data/lib/everything/piece/metadata.rb +31 -2
- data/lib/everything/version.rb +1 -1
- metadata +53 -32
- data/spec/everything/piece/content_spec.rb +0 -190
- data/spec/everything/piece/metadata_spec.rb +0 -198
- data/spec/everything/piece_spec.rb +0 -195
- data/spec/everything_spec.rb +0 -19
- data/spec/spec_helper.rb +0 -99
- data/spec/support/pieces.rb +0 -13
data/lib/everything/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: everything-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kyle Tolle
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -30,62 +30,88 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.
|
33
|
+
version: 0.0.3
|
34
34
|
type: :runtime
|
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: 0.0.
|
40
|
+
version: 0.0.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1
|
47
|
+
version: '2.1'
|
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: '1
|
54
|
+
version: '2.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 13.0.1
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 13.0.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
75
|
+
version: '3.9'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
82
|
+
version: '3.9'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
84
|
+
name: timecop
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
89
|
+
version: '0.9'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
96
|
+
version: '0.9'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: fakefs
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.2.2
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.2.2
|
83
111
|
description: Gives you access to pieces within your everything repo.
|
84
112
|
email:
|
85
113
|
- kyle@nullsix.com
|
86
|
-
executables:
|
87
|
-
- console
|
88
|
-
- setup
|
114
|
+
executables: []
|
89
115
|
extensions: []
|
90
116
|
extra_rdoc_files: []
|
91
117
|
files:
|
@@ -102,20 +128,22 @@ files:
|
|
102
128
|
- bin/setup
|
103
129
|
- everything-core.gemspec
|
104
130
|
- lib/everything.rb
|
131
|
+
- lib/everything/logger.rb
|
132
|
+
- lib/everything/logger/base.rb
|
133
|
+
- lib/everything/logger/debug.rb
|
134
|
+
- lib/everything/logger/error.rb
|
135
|
+
- lib/everything/logger/log_it.rb
|
136
|
+
- lib/everything/logger/verbose.rb
|
105
137
|
- lib/everything/piece.rb
|
106
138
|
- lib/everything/piece/content.rb
|
107
139
|
- lib/everything/piece/metadata.rb
|
108
140
|
- lib/everything/version.rb
|
109
|
-
- spec/everything/piece/content_spec.rb
|
110
|
-
- spec/everything/piece/metadata_spec.rb
|
111
|
-
- spec/everything/piece_spec.rb
|
112
|
-
- spec/everything_spec.rb
|
113
|
-
- spec/spec_helper.rb
|
114
|
-
- spec/support/pieces.rb
|
115
141
|
homepage: https://github.com/kyletolle/everything-core
|
116
142
|
licenses:
|
117
143
|
- MIT
|
118
|
-
metadata:
|
144
|
+
metadata:
|
145
|
+
homepage_uri: https://github.com/kyletolle/everything-core
|
146
|
+
source_code_uri: https://github.com/kyletolle/everything-core
|
119
147
|
post_install_message:
|
120
148
|
rdoc_options: []
|
121
149
|
require_paths:
|
@@ -124,22 +152,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
124
152
|
requirements:
|
125
153
|
- - ">="
|
126
154
|
- !ruby/object:Gem::Version
|
127
|
-
version:
|
155
|
+
version: 2.7.1
|
128
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
157
|
requirements:
|
130
158
|
- - ">="
|
131
159
|
- !ruby/object:Gem::Version
|
132
160
|
version: '0'
|
133
161
|
requirements: []
|
134
|
-
|
135
|
-
rubygems_version: 2.5.1
|
162
|
+
rubygems_version: 3.1.2
|
136
163
|
signing_key:
|
137
164
|
specification_version: 4
|
138
165
|
summary: Library for working with your `everything` repository.
|
139
|
-
test_files:
|
140
|
-
- spec/everything/piece/content_spec.rb
|
141
|
-
- spec/everything/piece/metadata_spec.rb
|
142
|
-
- spec/everything/piece_spec.rb
|
143
|
-
- spec/everything_spec.rb
|
144
|
-
- spec/spec_helper.rb
|
145
|
-
- spec/support/pieces.rb
|
166
|
+
test_files: []
|
@@ -1,190 +0,0 @@
|
|
1
|
-
require './spec/support/pieces'
|
2
|
-
|
3
|
-
describe Everything::Piece::Content do
|
4
|
-
shared_context 'with tmp piece markdown file on disk' do
|
5
|
-
let(:tmp_piece_markdown_path) do
|
6
|
-
File.join(tmp_piece_path, 'index.md')
|
7
|
-
end
|
8
|
-
|
9
|
-
let(:given_markdown) do
|
10
|
-
<<MD
|
11
|
-
# Piece Title Here
|
12
|
-
|
13
|
-
The body is totally this right here.
|
14
|
-
|
15
|
-
And it might even include multiple lines!
|
16
|
-
MD
|
17
|
-
end
|
18
|
-
|
19
|
-
before do
|
20
|
-
File.open(tmp_piece_markdown_path, 'w') do |markdown_file|
|
21
|
-
markdown_file.puts given_markdown
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
let(:content) do
|
27
|
-
described_class.new(tmp_piece_path)
|
28
|
-
end
|
29
|
-
|
30
|
-
describe '#file_path' do
|
31
|
-
include_context 'with tmp piece on disk'
|
32
|
-
|
33
|
-
let(:expected_file_path) do
|
34
|
-
"#{tmp_piece_path}/index.md"
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'is the index.md under the piece' do
|
38
|
-
expect(content.file_path).to eq(expected_file_path)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe '#title' do
|
43
|
-
include_context 'with tmp piece on disk'
|
44
|
-
include_context 'with tmp piece markdown file on disk'
|
45
|
-
|
46
|
-
let(:expected_title) do
|
47
|
-
'Piece Title Here'
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'is the title from the markdown' do
|
51
|
-
expect(content.title).to eq(expected_title)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
describe '#body' do
|
56
|
-
include_context 'with tmp piece on disk'
|
57
|
-
include_context 'with tmp piece markdown file on disk'
|
58
|
-
|
59
|
-
let(:expected_body) do
|
60
|
-
<<MD
|
61
|
-
The body is totally this right here.
|
62
|
-
|
63
|
-
And it might even include multiple lines!
|
64
|
-
MD
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'is the body text from the markdown' do
|
68
|
-
expect(content.body).to eq(expected_body)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
describe '#raw_markdown' do
|
73
|
-
include_context 'with tmp piece on disk'
|
74
|
-
include_context 'with tmp piece markdown file on disk'
|
75
|
-
|
76
|
-
let(:expected_raw_markdown) do
|
77
|
-
given_markdown
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'is the markdown from the file' do
|
81
|
-
expect(content.raw_markdown).to eq(expected_raw_markdown)
|
82
|
-
end
|
83
|
-
|
84
|
-
it 'memoizes the file read' do
|
85
|
-
allow(File)
|
86
|
-
.to receive(:read)
|
87
|
-
.and_call_original
|
88
|
-
|
89
|
-
2.times { content.raw_markdown }
|
90
|
-
|
91
|
-
expect(File)
|
92
|
-
.to have_received(:read)
|
93
|
-
.exactly(:once)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
describe '#raw_markdown=' do
|
98
|
-
include_context 'with tmp piece on disk'
|
99
|
-
|
100
|
-
let(:new_raw_markdown) do
|
101
|
-
<<MD
|
102
|
-
# New Markdown
|
103
|
-
|
104
|
-
This is a completely new bit of markdown.
|
105
|
-
MD
|
106
|
-
end
|
107
|
-
|
108
|
-
it 'sets the raw_markdown value' do
|
109
|
-
content.raw_markdown = new_raw_markdown
|
110
|
-
|
111
|
-
expect(content.raw_markdown).to eq(new_raw_markdown)
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
describe '#save' do
|
116
|
-
let(:tmp_dir) do
|
117
|
-
Dir.tmpdir
|
118
|
-
end
|
119
|
-
|
120
|
-
let(:tmp_piece_path) do
|
121
|
-
File.join(tmp_dir, 'a-test-piece')
|
122
|
-
end
|
123
|
-
|
124
|
-
before do
|
125
|
-
content.raw_markdown = "# Ship Shape"
|
126
|
-
end
|
127
|
-
|
128
|
-
after do
|
129
|
-
FileUtils.remove_entry(tmp_piece_path)
|
130
|
-
end
|
131
|
-
|
132
|
-
context 'when the piece directory does not exist' do
|
133
|
-
it 'creates the folder' do
|
134
|
-
expect(Dir.exist?(tmp_piece_path)).to eq(false)
|
135
|
-
|
136
|
-
content.save
|
137
|
-
|
138
|
-
expect(Dir.exist?(tmp_piece_path)).to eq(true)
|
139
|
-
end
|
140
|
-
|
141
|
-
it 'creates the content markdown file' do
|
142
|
-
expect(File.exist?(content.file_path)).to eq(false)
|
143
|
-
|
144
|
-
content.save
|
145
|
-
|
146
|
-
expect(File.exist?(content.file_path)).to eq(true)
|
147
|
-
end
|
148
|
-
|
149
|
-
it 'writes the markdown to the file' do
|
150
|
-
content.save
|
151
|
-
|
152
|
-
expect(File.read(content.file_path)).to eq('# Ship Shape')
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
context 'when the piece directory exists' do
|
157
|
-
before do
|
158
|
-
FileUtils.mkdir_p(tmp_piece_path)
|
159
|
-
end
|
160
|
-
|
161
|
-
context 'when the content file does not exist' do
|
162
|
-
it 'creates the content markdown file' do
|
163
|
-
expect(File.exist?(content.file_path)).to eq(false)
|
164
|
-
|
165
|
-
content.save
|
166
|
-
|
167
|
-
expect(File.exist?(content.file_path)).to eq(true)
|
168
|
-
end
|
169
|
-
|
170
|
-
it 'writes the markdown to the file' do
|
171
|
-
content.save
|
172
|
-
|
173
|
-
expect(File.read(content.file_path)).to eq('# Ship Shape')
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
context 'when the content file already exists' do
|
178
|
-
before do
|
179
|
-
File.write(content.file_path, '# Rolly Polly')
|
180
|
-
end
|
181
|
-
|
182
|
-
it 'overwrites the file with the correct markdown' do
|
183
|
-
content.save
|
184
|
-
|
185
|
-
expect(File.read(content.file_path)).to eq('# Ship Shape')
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|
@@ -1,198 +0,0 @@
|
|
1
|
-
require './spec/support/pieces'
|
2
|
-
|
3
|
-
describe Everything::Piece::Metadata do
|
4
|
-
shared_context 'with tmp piece metadata file on disk' do
|
5
|
-
let(:tmp_piece_metadata_path) do
|
6
|
-
File.join(tmp_piece_path, 'index.yaml')
|
7
|
-
end
|
8
|
-
|
9
|
-
let(:given_yaml) do
|
10
|
-
<<YAML
|
11
|
-
---
|
12
|
-
public: false
|
13
|
-
YAML
|
14
|
-
end
|
15
|
-
|
16
|
-
before do
|
17
|
-
File.open(tmp_piece_metadata_path, 'w') do |metadata_file|
|
18
|
-
metadata_file.puts given_yaml
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
let(:metadata) do
|
24
|
-
described_class.new(tmp_piece_path)
|
25
|
-
end
|
26
|
-
|
27
|
-
describe '#[]' do
|
28
|
-
include_context 'with tmp piece on disk'
|
29
|
-
|
30
|
-
let(:yaml_double) do
|
31
|
-
instance_double(Hash)
|
32
|
-
end
|
33
|
-
let(:given_key) { 'public' }
|
34
|
-
|
35
|
-
before do
|
36
|
-
expect(YAML)
|
37
|
-
.to receive(:load_file)
|
38
|
-
.and_return(yaml_double)
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'delegates to the yaml' do
|
42
|
-
allow(yaml_double)
|
43
|
-
.to receive(:[])
|
44
|
-
|
45
|
-
metadata[given_key]
|
46
|
-
|
47
|
-
expect(yaml_double)
|
48
|
-
.to have_received(:[])
|
49
|
-
.with(given_key)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe '#file_path' do
|
54
|
-
include_context 'with tmp piece on disk'
|
55
|
-
|
56
|
-
let(:expected_file_path) do
|
57
|
-
"#{tmp_piece_path}/index.yaml"
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'is the index.yaml under the piece' do
|
61
|
-
expect(metadata.file_path).to eq(expected_file_path)
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe '#raw_yaml' do
|
66
|
-
include_context 'with tmp piece on disk'
|
67
|
-
include_context 'with tmp piece metadata file on disk'
|
68
|
-
|
69
|
-
let(:expected_raw_yaml) do
|
70
|
-
{
|
71
|
-
'public' => false
|
72
|
-
}
|
73
|
-
end
|
74
|
-
|
75
|
-
it 'is the yaml as parsed from the file' do
|
76
|
-
expect(metadata.raw_yaml).to eq(expected_raw_yaml)
|
77
|
-
end
|
78
|
-
|
79
|
-
it 'memoizes the yaml read' do
|
80
|
-
allow(YAML)
|
81
|
-
.to receive(:load_file)
|
82
|
-
.and_call_original
|
83
|
-
|
84
|
-
metadata.raw_yaml
|
85
|
-
metadata.raw_yaml
|
86
|
-
|
87
|
-
expect(YAML)
|
88
|
-
.to have_received(:load_file)
|
89
|
-
.exactly(:once)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
describe '#raw_yaml=' do
|
94
|
-
include_context 'with tmp piece on disk'
|
95
|
-
|
96
|
-
let(:new_raw_yaml) do
|
97
|
-
<<YAML
|
98
|
-
---
|
99
|
-
public: true
|
100
|
-
other: okay
|
101
|
-
YAML
|
102
|
-
end
|
103
|
-
|
104
|
-
it 'sets the raw_yaml value' do
|
105
|
-
metadata.raw_yaml = new_raw_yaml
|
106
|
-
|
107
|
-
expect(metadata.raw_yaml).to eq(new_raw_yaml)
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
describe '#save' do
|
112
|
-
let(:tmp_dir) do
|
113
|
-
Dir.tmpdir
|
114
|
-
end
|
115
|
-
|
116
|
-
let(:tmp_piece_path) do
|
117
|
-
File.join(tmp_dir, 'fake-piece-here')
|
118
|
-
end
|
119
|
-
|
120
|
-
before do
|
121
|
-
metadata.raw_yaml = <<YAML
|
122
|
-
---
|
123
|
-
favorite_color: blue
|
124
|
-
YAML
|
125
|
-
end
|
126
|
-
|
127
|
-
after do
|
128
|
-
FileUtils.remove_entry(tmp_piece_path)
|
129
|
-
end
|
130
|
-
|
131
|
-
context 'when the piece directory does not exist' do
|
132
|
-
it 'creates the folder' do
|
133
|
-
expect(Dir.exist?(tmp_piece_path)).to eq(false)
|
134
|
-
|
135
|
-
metadata.save
|
136
|
-
|
137
|
-
expect(Dir.exist?(tmp_piece_path)).to eq(true)
|
138
|
-
end
|
139
|
-
|
140
|
-
it 'creates the metadata yaml file' do
|
141
|
-
expect(File.exist?(metadata.file_path)).to eq(false)
|
142
|
-
|
143
|
-
metadata.save
|
144
|
-
|
145
|
-
expect(File.exist?(metadata.file_path)).to eq(true)
|
146
|
-
end
|
147
|
-
|
148
|
-
it 'writes the yaml to the file' do
|
149
|
-
metadata.save
|
150
|
-
|
151
|
-
expect(File.read(metadata.file_path)).to eq(<<YAML)
|
152
|
-
---
|
153
|
-
favorite_color: blue
|
154
|
-
YAML
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
context 'when the piece directory exists' do
|
159
|
-
before do
|
160
|
-
FileUtils.mkdir_p(tmp_piece_path)
|
161
|
-
end
|
162
|
-
|
163
|
-
context 'when the metadata file does not exist' do
|
164
|
-
it 'creates the metadata yaml file' do
|
165
|
-
expect(File.exist?(metadata.file_path)).to eq(false)
|
166
|
-
|
167
|
-
metadata.save
|
168
|
-
|
169
|
-
expect(File.exist?(metadata.file_path)).to eq(true)
|
170
|
-
end
|
171
|
-
|
172
|
-
it 'writes the yaml to the file' do
|
173
|
-
metadata.save
|
174
|
-
|
175
|
-
expect(File.read(metadata.file_path)).to eq(<<YAML)
|
176
|
-
---
|
177
|
-
favorite_color: blue
|
178
|
-
YAML
|
179
|
-
end
|
180
|
-
end
|
181
|
-
|
182
|
-
context 'when the metadata file already exists' do
|
183
|
-
before do
|
184
|
-
File.write(metadata.file_path, "---\nwho: knows")
|
185
|
-
end
|
186
|
-
|
187
|
-
it 'overwrites the file with the correct yaml' do
|
188
|
-
metadata.save
|
189
|
-
|
190
|
-
expect(File.read(metadata.file_path)).to eq(<<YAML)
|
191
|
-
---
|
192
|
-
favorite_color: blue
|
193
|
-
YAML
|
194
|
-
end
|
195
|
-
end
|
196
|
-
end
|
197
|
-
end
|
198
|
-
end
|