Compare commits

..

No commits in common. "web" and "master" have entirely different histories.
web ... master

8 changed files with 20 additions and 90 deletions

10
.gitignore vendored
View file

@ -53,7 +53,9 @@ Thumbs.db
.netrwhist
*.un~
# Ruby #
########
*.gem
/.yardoc/
# YARD Related #
################
# doc/ is the generated documentation for Yard, which can easily be generated
# locally with yardoc
# .yardoc/ is yard metadata, not necessary to be uploaded to GH
.yardoc/

View file

@ -1 +0,0 @@
ruby-2.4.2

27
Gemfile
View file

@ -1,21 +1,12 @@
# frozen_string_literal: true
source 'https://rubygems.org'
source "https://rubygems.org"
ruby '2.4.2'
# Documentation
gem "rdoc"
gem "redcarpet"
gem "thor"
gem "yard"
gem "yard-ghpages"
gem 'thor'
group :documentation do
gem 'rdoc'
gem 'redcarpet'
gem 'yard'
gem 'yard-ghpages'
end
group :test do
gem 'rubocop'
end
group :web do
gem 'rack'
end
# Testing
gem "rubocop"

View file

@ -6,7 +6,6 @@ GEM
parser (2.4.0.0)
ast (~> 2.2)
powerpack (0.1.1)
rack (2.0.3)
rainbow (2.2.2)
rake
rake (11.3.0)
@ -31,7 +30,6 @@ PLATFORMS
ruby
DEPENDENCIES
rack
rdoc
redcarpet
rubocop
@ -39,8 +37,5 @@ DEPENDENCIES
yard
yard-ghpages
RUBY VERSION
ruby 2.4.2p198
BUNDLED WITH
1.15.4
1.14.6

View file

@ -1,7 +1,5 @@
#!/usr/bin/env ruby
# frozen string literal: true
require 'rack'
require 'thor'
require 'yaml'
@ -9,7 +7,6 @@ Dir[File.join(__dir__, 'sapling', '*.rb')].each { |file| require file }
# The main Sapling interface.
class Sapling < Thor
# CLI-based options
desc 'read TREE', 'Load and traverse the TREE'
def read(file)
puts 'Welcome to Sapling, a Dialogue Tree Utility.'
@ -33,16 +30,10 @@ class Sapling < Thor
gardner.plant
end
# Web-based options
desc 'serve TREE', 'Load TREE in a web-based interface'
def serve(file)
exit unless verify_tree(file)
tree = Gardner::Plot.new(YAML.load_file(file))
Rack::Server.new(
app: Greenhouse.new(tree),
server: 'webrick',
Port: 9000
).start
def serve(tree)
exit unless verify_tree(tree)
puts 'Sinatra will be cool.'
end
desc 'export TREE', 'Save a portable HTML version of TREE'
@ -50,15 +41,4 @@ class Sapling < Thor
exit unless verify_tree(tree)
puts 'Cool feature, bro!'
end
# Miscellaneous options
desc 'example', 'Play Example Quest!'
def example
file = File.join(__dir__, '..', 'var', 'trees', 'example_quest.yaml')
puts 'Welcome to Sapling, a Dialogue Tree Utility.'
exit unless verify_tree(file)
tree = Gardner::Plot.new(YAML.load_file(file))
speaker = Dialogue::Speaker.new(tree, false)
speaker.conversation
end
end

View file

@ -1,15 +0,0 @@
require 'erb'
# The rack application
class Greenhouse
attr_reader :tree
def initialize(file)
@tree = file
@response = ERB.new(File.read('lib/sapling/index.erb')).result(binding)
end
def call(_env)
['200', { 'Content-Type' => 'text/html' }, [@response]]
end
end

View file

@ -1,20 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Sapling: Adventure Awaits!</title>
</head>
<body>
<div class="header">
<div><p>Sapling</p></div>
<div>
<a href="https://www.github.com/vagabondazulien/sapling">GitHub</a>
</div>
</div>
<div class="main">
<%= @tree.trunk %>
<div class="footer">
<div><p>Made with <3 by Nibz</p></div>
</div>
</body>

View file

@ -7,9 +7,7 @@ Gem::Specification.new do |s|
s.description = 'Create, edit, and traverse dialogue trees'
s.authors = ['Bill Niblock']
s.email = 'azulien@gmail.com'
s.files = Dir['lib/**/*.rb'] +
Dir['bin/*'] +
Dir['var/trees/*']
s.files = Dir['lib/**/*.rb'] + Dir['bin/*']
s.homepage = 'http://www.theinternetvagabond.com/sapling/'
s.license = 'MIT'
end