bugler 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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