charsi 0.1.1 → 0.1.2

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
  SHA256:
3
- metadata.gz: 13f9c33cc143b1ba678512bc2a2a2d18eaec7dc0cf415b56de4aed7ccbc0de91
4
- data.tar.gz: cda881471b17de5bdadde2380bc3597cc2c58fae1eb7aaa70c89b2a5d763b2bd
3
+ metadata.gz: d2cacf89713b13f50ad0ebe1ce862ad84fa7b88b5a71297c2dcfa5c5b44d6afe
4
+ data.tar.gz: e460984bfa0c4e8b23f9ad13e838d17a0c1a03ea09894295619c9d4641cf5de2
5
5
  SHA512:
6
- metadata.gz: 755013228a16d5982abf82c05c4536818fd5d9b52ffa69d5213d0da1619393b8f22d52007a3e2ad6e15fdf68b671548fcfd2c83580c5853f05b92d9d5c013650
7
- data.tar.gz: 5ba4457348c9d05d987a17721e6fadec39c47896778bdc649d9f126cbcfa0600729d43954c02faa9654b893c62156d22367b2d7615b60139075ae94857bbb5a0
6
+ metadata.gz: baf2444f0cbff82668fe697e9fd1e655a177b55171c187a475931e628d500c2933686bc856072a9ab0bf12152eb1db05bd04774b27bdf15187866b0121a125a5
7
+ data.tar.gz: '08bf088c251de38ada92c83f4eca065356262e44f9c9dc7575d0519536f880527cc7c445df3dc8caa25efef67302ba4b265c2d4c6c4285ecc04a7a4ddd012c02'
data/bin/charsi CHANGED
@@ -16,6 +16,16 @@ elsif command == 'new'
16
16
  raise ArgumentError, 'Project name is required' if project_name.nil?
17
17
 
18
18
  Charsi::Generator.generate(project_name)
19
+
20
+ elsif command == 'serve'
21
+ charsi = Charsi::Builder.new
22
+ server = Charsi::Server.new
23
+
24
+ charsi.build
25
+
26
+ Thread.new { charsi.watch } if watch_flag
27
+
28
+ server.serve
19
29
  else
20
30
  puts 'Usage: charsi build [--watch]'
21
31
  end
data/charsi.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'charsi'
3
- spec.version = '0.1.1'
3
+ spec.version = '0.1.2'
4
4
 
5
5
  spec.authors = ['Ryan Beasse']
6
6
  spec.email = ['me@ryanbeasse.com']
@@ -29,4 +29,5 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency 'tailwindcss-ruby', '~> 4.1'
30
30
  spec.add_dependency 'filewatcher', '~> 2.1'
31
31
  spec.add_dependency 'logger', '~> 1.6'
32
+ spec.add_dependency 'webrick', '~> 1.9'
32
33
  end
@@ -0,0 +1,22 @@
1
+ require 'webrick'
2
+
3
+ module Charsi
4
+ class Server
5
+ DEFAULT_PORT = 8000
6
+
7
+ def initialize
8
+ @config = Configuration.new
9
+ end
10
+
11
+ def serve
12
+ build_dir = @config.path(:output_dir)
13
+
14
+ server = WEBrick::HTTPServer.new(Port: DEFAULT_PORT, DocumentRoot: build_dir)
15
+ trap('INT') { server.shutdown }
16
+
17
+ puts "[charsi] Serving #{build_dir} at http://localhost:#{DEFAULT_PORT}"
18
+
19
+ server.start
20
+ end
21
+ end
22
+ end
data/lib/charsi.rb CHANGED
@@ -14,4 +14,5 @@ module Charsi
14
14
  require 'charsi/app'
15
15
  require 'charsi/builder'
16
16
  require 'charsi/generator'
17
+ require 'charsi/server'
17
18
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: charsi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Beasse
@@ -79,6 +79,20 @@ dependencies:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
81
  version: '1.6'
82
+ - !ruby/object:Gem::Dependency
83
+ name: webrick
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.9'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.9'
82
96
  email:
83
97
  - me@ryanbeasse.com
84
98
  executables:
@@ -99,6 +113,7 @@ files:
99
113
  - lib/charsi/configuration.rb
100
114
  - lib/charsi/file.rb
101
115
  - lib/charsi/generator.rb
116
+ - lib/charsi/server.rb
102
117
  - lib/charsi/template.rb
103
118
  - templates/site/Gemfile.template
104
119
  - templates/site/assets/css/tailwind.css.template