Class: BuildMaster::Site
- Inherits:
-
Object
- Object
- BuildMaster::Site
- Defined in:
- lib/buildmaster/site/site.rb
Class Method Summary collapse
- .collect_candidates(dir) ⇒ Object
- .setup(spec, templates_dir = spec.cotta.dir(__FILE__).parent.dir('templates')) ⇒ Object
Instance Method Summary collapse
- #build ⇒ Object
- #execute(arguments) ⇒ Object
-
#initialize(spec) ⇒ Site
constructor
A new instance of Site.
- #output_dir ⇒ Object
- #server(*args) ⇒ Object
- #test(port_number = 2000) ⇒ Object
- #test_offline(port_number = 2000) ⇒ Object
Constructor Details
#initialize(spec) ⇒ Site
Returns a new instance of Site.
27 28 29 30 31 |
# File 'lib/buildmaster/site/site.rb', line 27 def initialize(spec) @spec = spec @spec.validate_inputs @template = @spec.load_template end |
Class Method Details
.collect_candidates(dir) ⇒ Object
21 22 23 24 25 |
# File 'lib/buildmaster/site/site.rb', line 21 def Site::collect_candidates(dir) dir.list.select do |item| item.respond_to?(:file) && item.file('template.html').exists? end end |
.setup(spec, templates_dir = spec.cotta.dir(__FILE__).parent.dir('templates')) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'lib/buildmaster/site/site.rb', line 11 def Site::setup(spec, templates_dir = spec.cotta.dir(__FILE__).parent.dir('templates')) command_line = spec.cotta.command_interface command_line.puts 'setting up site' candidates = collect_candidates(templates_dir).collect {|item| item.name} selection = command_line.prompt_for_choice('Select the template that you want to use', candidates) selected_dir = templates_dir.dir(selection) selected_dir.file('template.html').copy_to(spec.template_file) selected_dir.dir('content').copy_to(spec.content_dir) end |
Instance Method Details
#build ⇒ Object
46 47 48 49 50 |
# File 'lib/buildmaster/site/site.rb', line 46 def build @count = 0 build_directory(@spec.output_dir, @spec.content_dir, @template) puts "Generated file count: #{@count}" end |
#execute(arguments) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/buildmaster/site/site.rb', line 38 def execute(arguments) action = 'build' if arguments.size > 0 action = arguments[0] end send action end |
#output_dir ⇒ Object
34 35 36 |
# File 'lib/buildmaster/site/site.rb', line 34 def output_dir @spec.output_dir end |
#server(*args) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/buildmaster/site/site.rb', line 52 def server(*args) require 'site_server' @server = SiteServer.new(@spec, *args) ['INT', 'TERM'].each { |signal| trap(signal){ @server.stop} } @server.start end |
#test(port_number = 2000) ⇒ Object
61 62 63 |
# File 'lib/buildmaster/site/site.rb', line 61 def test(port_number=2000) launch_server(port_number) {|port_number| SiteTester.test("http://localhost:#{port_number}/index.html")} end |
#test_offline(port_number = 2000) ⇒ Object
65 66 67 |
# File 'lib/buildmaster/site/site.rb', line 65 def test_offline(port_number=2000) launch_server(port_number) {|port_number| SiteTester.test_offline("http://localhost:#{port_number}/index.html")} end |