bugler 0.0.3 → 0.0.4

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: c227464bda757b19d06c02a052df375b283a44c9
4
- data.tar.gz: b39c1c7969242e590ed7fc102fc47bb8b7953ace
3
+ metadata.gz: 615c556c9f45e6b7e694323aaa8dba749a38e2ac
4
+ data.tar.gz: 2a7cb44b5d4e4e81841cb2c93271e64dd3eec314
5
5
  SHA512:
6
- metadata.gz: 5fc8a3963972b228e3887bf4a3923d7d9481045e0e3d05d3e8bca1698a5d91ac8b7cd6a6fde60a6fad09ca50bca6669e0e22d7fb588768c5236973ab79c37fd8
7
- data.tar.gz: 862ca24d7c9432de4b7927e814349bf9aae5f0460da33f1a7d953ac840e0a5a658ce1d5fed1f274ba5e51a73753a97e0344aea6627d65ebb07c8b34676e22455
6
+ metadata.gz: 88f22d0694b59556ee90cdf3ccb8304d6478569b73cc737a718f35dafdf50e8bdb3360d94a6d3e413d294e66e82db3ac48ce54dd3889e27b7aa14e59fdd70ce8
7
+ data.tar.gz: e74962835ca02dc0f3135634ea8b0fe6e6e5a54e94474755baec1bf49e0e614337ee1fcb0df2193ec9efaf830865cbe581842ad6af71a5c3c137b67402a1d549
data/bin/bugler CHANGED
@@ -3,7 +3,7 @@
3
3
  require 'bugler'
4
4
 
5
5
  begin
6
- Bugler::CLI.exec(ARGV)
6
+ Bugler::CLI.exec(ARGV, Dir.pwd)
7
7
  rescue RuntimeError => e
8
8
  puts e
9
9
  exit 1
data/lib/bugler.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  require 'bugler/config'
2
+ require 'webrick'
3
+ require 'fileutils'
2
4
 
3
5
  module Bugler
4
6
  def self.hi
@@ -6,12 +8,18 @@ module Bugler
6
8
  end
7
9
 
8
10
  module CLI
9
- def self.exec(argv)
11
+ def self.exec(argv, working_directory=__dir__)
10
12
  if argv.empty?
11
13
  print Bugler::Config::HELP_TEXT
12
14
  elsif argv[0] == 'init'
13
15
  argv.shift
14
16
  self.init(argv)
17
+ elsif argv[0] == 'server'
18
+ self.server working_directory
19
+ elsif argv[0] == 'build'
20
+ self.build working_directory
21
+ else
22
+ raise Bugler::Config::ERROR_EXEC_UNRECOGNIZED
15
23
  end
16
24
  end
17
25
  def self.init(argv)
@@ -28,5 +36,32 @@ module Bugler
28
36
  File.write(f, "") unless File.exists?(f)
29
37
  end
30
38
  end
39
+ def self.server(working_directory, port=Bugler::Config::DEFAULT_PORT)
40
+ raise Bugler::Config::ERROR_SERVER_NOT_A_PROJECT unless File.exists?(".bugler")
41
+
42
+ # Build if not already built
43
+ if !File.exists?(File.join(working_directory, "build"))
44
+ self.build(working_directory)
45
+ end
46
+
47
+ puts "Starting Bugler test server on port %i..." % port
48
+
49
+ server = WEBrick::HTTPServer.new :Port => port, :DocumentRoot => File.join(working_directory, 'build')
50
+
51
+ trap 'INT' do
52
+ server.shutdown
53
+ end
54
+
55
+ server.start
56
+ end
57
+ def self.build(working_directory)
58
+ raise Bugler::Config::ERROR_SERVER_NOT_A_PROJECT unless File.exists?(".bugler")
59
+ Dir.mkdir 'build' unless File.exists?('build')
60
+ # For now, copy over the erbs to htmls
61
+ Dir.foreach File.join(working_directory,'src') do |f|
62
+ next if f == '.' or f == '..'
63
+ FileUtils.cp File.join('src', f), File.join(working_directory, 'build', f.sub!('erb', 'html'))
64
+ end
65
+ end
31
66
  end
32
67
  end
data/lib/bugler/config.rb CHANGED
@@ -7,9 +7,13 @@ module Bugler
7
7
  Usage:
8
8
  bugler init <NAME> - Generate new blank website
9
9
  }
10
+ ERROR_EXEC_UNRECOGNIZED = "Error: Command not recognized."
10
11
  ERROR_INIT_NO_NAME = "Error: Please provide a name for your app"
11
12
  ERROR_INIT_ARGV = "Error: Provided argv argument must be an array"
13
+ ERROR_SERVER_NOT_A_PROJECT = "Error: Current directory is not a bugler project. Try 'bugler init <NAME>'"
12
14
 
13
15
  SOURCE_DIRNAME = "src"
16
+
17
+ DEFAULT_PORT = 8080
14
18
  end
15
19
  end
@@ -1,3 +1,3 @@
1
1
  module Bugler
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bugler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Grice
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-17 00:00:00.000000000 Z
11
+ date: 2018-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec