usmu 1.2.0 → 1.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 98c4d548d6ce9899b3072b1e20c221c897236c4b
4
- data.tar.gz: b4e9bbe42c3daf79e419fc70e5fd9346cbfc289a
3
+ metadata.gz: a17b2f0a54894311de49ba082286ef8b42abdddb
4
+ data.tar.gz: b8b72e07ca7986addb70bf255ec6a18c15e6471c
5
5
  SHA512:
6
- metadata.gz: b0b63588aba8d2c67cdfefe4b0e196d6fb22ac4fffb5a74eeb30fa0d4ee545927c0b9d21747736c741d1ffc11049a200be99434ea0ae7407f6b18d264e7ef2a9
7
- data.tar.gz: 5007c6d0c1f35fbaa490fc5565f2c8dfb4aa7216e605740261c695d395c799e5d8adc23b262d93a87dbaf966a814f9b8254d50962b0af95c5dce003afaa6eeac
6
+ metadata.gz: 5783809764b9fee5b97a5879592f18b3766e50c82c9d4cfb1aadeb84e437c2b2bc079d1caf285e3af161209598c76685cd8ac29ee8adc3e2804351810ad6095c
7
+ data.tar.gz: f1d90b1aec2431e0d7c788ce09385179624c7a09121bdcbef5ed66fad5ce78276e2a0cde4b764cb610c2d7c366d6ec66ca169d69a570e60a7d41392babe9e256
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Usmu Change Log
2
2
 
3
+ ## 1.2.1
4
+
5
+ Matthew Scharley <matt.scharley@gmail.com>
6
+
7
+ * Remove useless gem (f1a9659a03c239da7348ce75e6fcf2f055c4079e)
8
+ * Fix options to Rack to set hostname and port correctly (1364e9ee14bf2d79fd379363a0e2e820f9382e30)
9
+ * Fix tests (edb9e246aee28b57d2a51a3bb310c76cf3474054)
10
+
3
11
  ## 1.2.0
4
12
 
5
13
  Matthew Scharley <matt.scharley@gmail.com>
@@ -78,8 +78,8 @@ module Usmu
78
78
  @log.info('Starting webserver...')
79
79
 
80
80
  Rack::Handler::WEBrick.run Ui::RackServer.new(configuration),
81
- host: configuration['serve', 'host', default: 'localhost'],
82
- port: configuration['serve', 'port', default: 8080]
81
+ Host: configuration['serve', 'host', default: 'localhost'],
82
+ Port: configuration['serve', 'port', default: 8080]
83
83
  end
84
84
 
85
85
  private
data/lib/usmu/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
2
  module Usmu
3
3
  # The current version string for the gem
4
- VERSION = '1.2.0'
4
+ VERSION = '1.2.1'
5
5
  end
@@ -1,5 +1,116 @@
1
1
  require 'usmu/plugin/core'
2
+ require 'usmu/configuration'
3
+ require 'usmu/mock_commander'
4
+ require 'ostruct'
5
+ require 'rack'
6
+ require 'usmu/ui/rack_server'
2
7
 
3
8
  RSpec.describe Usmu::Plugin::Core do
9
+ let (:plugin) { described_class.new }
10
+ let (:configuration) { Usmu::Configuration.from_hash({}) }
11
+ let (:ui) { OpenStruct.new configuration: configuration }
12
+ let (:commander) { Usmu::MockCommander.new }
13
+ let (:options) { Commander::Command::Options.new }
4
14
 
15
+ context '#commands' do
16
+ it 'stores a the UI given to it' do
17
+ plugin.commands(ui, commander)
18
+
19
+ expect(plugin.send :ui).to eq(ui)
20
+ expect(@log_output.readline).to eq(" DEBUG Usmu::Plugin::Core : Adding core console commands...\n")
21
+ end
22
+
23
+ it 'defines a "generate" command' do
24
+ plugin.commands(ui, commander)
25
+
26
+ command = commander.get_command :generate
27
+ expect(command[:syntax]).to eq('usmu generate')
28
+ expect(command[:description]).to eq('Generates your website using the configuration specified.')
29
+ expect(command[:action]).to be_a(Proc)
30
+ end
31
+
32
+ it 'defines a "init" command' do
33
+ plugin.commands(ui, commander)
34
+
35
+ command = commander.get_command :init
36
+ expect(command[:syntax]).to eq('usmu init [path]')
37
+ expect(command[:description]).to eq('Initialise a new website in the given path, or the current directory if none given.')
38
+ expect(command[:action]).to be_a(Proc)
39
+ end
40
+
41
+ it 'defines a "serve" command' do
42
+ plugin.commands(ui, commander)
43
+
44
+ command = commander.get_command :serve
45
+ expect(command[:syntax]).to eq('usmu serve')
46
+ expect(command[:description]).to eq('Serve files processed files directly. This won\'t update files on disk, but you will be able to view your website as rendered.')
47
+ expect(command[:action]).to be_a(Proc)
48
+ end
49
+ end
50
+
51
+ context '#command_generate' do
52
+ it 'raises an error when arguments are specified' do
53
+ expect { plugin.command_generate(['foo'], options) }.to raise_error('This command does not take arguments')
54
+ end
55
+
56
+ it 'raises an error when invalid options are specified' do
57
+ expect { plugin.command_generate([], []) }.to raise_error('Invalid options')
58
+ end
59
+
60
+ it 'should generate a site' do
61
+ expect(configuration.generator).to receive(:generate)
62
+
63
+ plugin.send :ui=, ui
64
+ plugin.command_generate [], options
65
+ end
66
+ end
67
+
68
+ context '#command_init' do
69
+ it 'should do something'
70
+ end
71
+
72
+ context '#command_serve' do
73
+ let (:empty_configuration) { Usmu::Configuration.from_hash({}) }
74
+ let (:configuration) {
75
+ Usmu::Configuration.from_hash(
76
+ {
77
+ 'serve' => {
78
+ 'host' => '0.0.0.0',
79
+ 'port' => 8008,
80
+ }
81
+ }
82
+ )
83
+ }
84
+ let (:rs) { OpenStruct.new }
85
+
86
+ before do
87
+ allow(Usmu::Ui::RackServer).to receive(:new).with(empty_configuration).and_return(rs)
88
+ allow(Usmu::Ui::RackServer).to receive(:new).with(configuration).and_return(rs)
89
+ end
90
+
91
+ it 'raises an error when arguments are specified' do
92
+ expect { plugin.command_serve(['foo'], options) }.to raise_error('This command does not take arguments')
93
+ end
94
+
95
+ it 'raises an error when invalid options are specified' do
96
+ expect { plugin.command_serve([], []) }.to raise_error('Invalid options')
97
+ end
98
+
99
+ it 'should start a WEBrick Rack handler with a new RackServer UI' do
100
+ plugin.send :ui=, OpenStruct.new(configuration: empty_configuration)
101
+ expect(Rack::Handler::WEBrick).to receive(:run).with(rs, Host: 'localhost', Port: 8080)
102
+ plugin.command_serve [], options
103
+ expect(@log_output.readline).to eq(" INFO Usmu::Plugin::Core : Starting webserver...\n")
104
+ end
105
+
106
+ it 'should take hostname and ports from the configuration file' do
107
+ plugin.send :ui=, OpenStruct.new(configuration: configuration)
108
+ expect(Rack::Handler::WEBrick).to receive(:run).with(rs, Host: '0.0.0.0', Port: 8008)
109
+ plugin.command_serve [], options
110
+ end
111
+ end
112
+
113
+ context '#init_copy_file' do
114
+ it 'should do something'
115
+ end
5
116
  end
@@ -95,9 +95,8 @@ RSpec.describe Usmu::SiteGenerator do
95
95
  end
96
96
 
97
97
  it 'should write a file and update mtime to match source files' do
98
- page = OpenStruct.new name: 'test.slim', input_path: 'src/test.slim', output_filename: 'test.html', render: '<!DOCTYPE html><h1>It works!</h1>'
98
+ page = OpenStruct.new name: 'test.slim', input_path: 'src/test.slim', output_filename: 'test.html', render: '<!DOCTYPE html><h1>It works!</h1>', mtime: 100
99
99
  expect(File).to receive(:write).with('site/test.html', '<!DOCTYPE html><h1>It works!</h1>')
100
- expect(File).to receive(:stat).with('src/test.slim').and_return(OpenStruct.new mtime: 100)
101
100
  expect(FileUtils).to receive(:touch).with('site/test.html', mtime: 100).and_return(true)
102
101
  expect(FileUtils).to_not receive(:mkdir_p)
103
102
 
@@ -108,9 +107,8 @@ RSpec.describe Usmu::SiteGenerator do
108
107
  end
109
108
 
110
109
  it 'should create directories as necessary' do
111
- page = OpenStruct.new name: 'test.slim', input_path: 'src/subdir/test.slim', output_filename: 'subdir/test.html', render: '<!DOCTYPE html><h1>It works!</h1>'
110
+ page = OpenStruct.new name: 'test.slim', input_path: 'src/subdir/test.slim', output_filename: 'subdir/test.html', render: '<!DOCTYPE html><h1>It works!</h1>', mtime: 100
112
111
  expect(File).to receive(:write).with('site/subdir/test.html', '<!DOCTYPE html><h1>It works!</h1>')
113
- expect(File).to receive(:stat).with('src/subdir/test.slim').and_return(OpenStruct.new mtime: 100)
114
112
  expect(FileUtils).to receive(:touch).with('site/subdir/test.html', mtime: 100).and_return(true)
115
113
  expect(FileUtils).to receive(:mkdir_p).with('site/subdir')
116
114
 
data/usmu.gemspec CHANGED
@@ -38,7 +38,6 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency 'guard-rspec', '~> 4.3'
39
39
  spec.add_development_dependency 'turnip', '~> 2.0'
40
40
  spec.add_development_dependency 'sass', '~> 3.4'
41
- spec.add_development_dependency 'timeout', '~> 0.0'
42
41
 
43
42
  case ENV['BUILD_PLATFORM']
44
43
  when 'ruby'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usmu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Scharley
@@ -206,20 +206,6 @@ dependencies:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: '3.4'
209
- - !ruby/object:Gem::Dependency
210
- name: timeout
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - "~>"
214
- - !ruby/object:Gem::Version
215
- version: '0.0'
216
- type: :development
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - "~>"
221
- - !ruby/object:Gem::Version
222
- version: '0.0'
223
209
  - !ruby/object:Gem::Dependency
224
210
  name: redcarpet
225
211
  requirement: !ruby/object:Gem::Requirement
@@ -304,7 +290,6 @@ files:
304
290
  - spec/mock/usmu/mock_metadata_configuration.rb
305
291
  - spec/mock/usmu/mock_plugin.rb
306
292
  - spec/mock/usmu/mock_remote_files.rb
307
- - spec/plugin/core_spec.rb
308
293
  - spec/spec_helper.rb
309
294
  - spec/support/shared_layout.rb
310
295
  - spec/usmu/configuration_spec.rb
@@ -384,7 +369,6 @@ test_files:
384
369
  - spec/mock/usmu/mock_metadata_configuration.rb
385
370
  - spec/mock/usmu/mock_plugin.rb
386
371
  - spec/mock/usmu/mock_remote_files.rb
387
- - spec/plugin/core_spec.rb
388
372
  - spec/spec_helper.rb
389
373
  - spec/support/shared_layout.rb
390
374
  - spec/usmu/configuration_spec.rb
@@ -1,116 +0,0 @@
1
- require 'usmu/plugin/core'
2
- require 'usmu/configuration'
3
- require 'usmu/mock_commander'
4
- require 'ostruct'
5
- require 'rack'
6
- require 'usmu/ui/rack_server'
7
-
8
- RSpec.describe Usmu::Plugin::Core do
9
- let (:plugin) { described_class.new }
10
- let (:configuration) { Usmu::Configuration.from_hash({}) }
11
- let (:ui) { OpenStruct.new configuration: configuration }
12
- let (:commander) { Usmu::MockCommander.new }
13
- let (:options) { Commander::Command::Options.new }
14
-
15
- context '#commands' do
16
- it 'stores a the UI given to it' do
17
- plugin.commands(ui, commander)
18
-
19
- expect(plugin.send :ui).to eq(ui)
20
- expect(@log_output.readline).to eq(" DEBUG Usmu::Plugin::Core : Adding core console commands...\n")
21
- end
22
-
23
- it 'defines a "generate" command' do
24
- plugin.commands(ui, commander)
25
-
26
- command = commander.get_command :generate
27
- expect(command[:syntax]).to eq('usmu generate')
28
- expect(command[:description]).to eq('Generates your website using the configuration specified.')
29
- expect(command[:action]).to be_a(Proc)
30
- end
31
-
32
- it 'defines a "init" command' do
33
- plugin.commands(ui, commander)
34
-
35
- command = commander.get_command :init
36
- expect(command[:syntax]).to eq('usmu init [path]')
37
- expect(command[:description]).to eq('Initialise a new website in the given path, or the current directory if none given.')
38
- expect(command[:action]).to be_a(Proc)
39
- end
40
-
41
- it 'defines a "serve" command' do
42
- plugin.commands(ui, commander)
43
-
44
- command = commander.get_command :serve
45
- expect(command[:syntax]).to eq('usmu serve')
46
- expect(command[:description]).to eq('Serve files processed files directly. This won\'t update files on disk, but you will be able to view your website as rendered.')
47
- expect(command[:action]).to be_a(Proc)
48
- end
49
- end
50
-
51
- context '#command_generate' do
52
- it 'raises an error when arguments are specified' do
53
- expect { plugin.command_generate(['foo'], options) }.to raise_error('This command does not take arguments')
54
- end
55
-
56
- it 'raises an error when invalid options are specified' do
57
- expect { plugin.command_generate([], []) }.to raise_error('Invalid options')
58
- end
59
-
60
- it 'should generate a site' do
61
- expect(configuration.generator).to receive(:generate)
62
-
63
- plugin.send :ui=, ui
64
- plugin.command_generate [], options
65
- end
66
- end
67
-
68
- context '#command_init' do
69
- it 'should do something'
70
- end
71
-
72
- context '#command_serve' do
73
- let (:empty_configuration) { Usmu::Configuration.from_hash({}) }
74
- let (:configuration) {
75
- Usmu::Configuration.from_hash(
76
- {
77
- 'serve' => {
78
- 'host' => '0.0.0.0',
79
- 'port' => 8008,
80
- }
81
- }
82
- )
83
- }
84
- let (:rs) { OpenStruct.new }
85
-
86
- before do
87
- allow(Usmu::Ui::RackServer).to receive(:new).with(empty_configuration).and_return(rs)
88
- allow(Usmu::Ui::RackServer).to receive(:new).with(configuration).and_return(rs)
89
- end
90
-
91
- it 'raises an error when arguments are specified' do
92
- expect { plugin.command_serve(['foo'], options) }.to raise_error('This command does not take arguments')
93
- end
94
-
95
- it 'raises an error when invalid options are specified' do
96
- expect { plugin.command_serve([], []) }.to raise_error('Invalid options')
97
- end
98
-
99
- it 'should start a WEBrick Rack handler with a new RackServer UI' do
100
- plugin.send :ui=, OpenStruct.new(configuration: empty_configuration)
101
- expect(Rack::Handler::WEBrick).to receive(:run).with(rs, host: 'localhost', port: 8080)
102
- plugin.command_serve [], options
103
- expect(@log_output.readline).to eq(" INFO Usmu::Plugin::Core : Starting webserver...\n")
104
- end
105
-
106
- it 'should take hostname and ports from the configuration file' do
107
- plugin.send :ui=, OpenStruct.new(configuration: configuration)
108
- expect(Rack::Handler::WEBrick).to receive(:run).with(rs, host: '0.0.0.0', port: 8008)
109
- plugin.command_serve [], options
110
- end
111
- end
112
-
113
- context '#init_copy_file' do
114
- it 'should do something'
115
- end
116
- end