gamefic-sdk 1.7.0 → 2.0.0

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.
Files changed (115) hide show
  1. checksums.yaml +5 -5
  2. data/bin/gamefic +16 -0
  3. data/lib/gamefic-sdk.rb +4 -24
  4. data/lib/gamefic-sdk/diagram.rb +205 -0
  5. data/lib/gamefic-sdk/scaffold.rb +54 -0
  6. data/lib/gamefic-sdk/server.rb +81 -65
  7. data/lib/gamefic-sdk/shell.rb +22 -129
  8. data/lib/gamefic-sdk/tasks.rb +40 -0
  9. data/lib/gamefic-sdk/tasks/common.rb +21 -0
  10. data/lib/gamefic-sdk/tasks/ruby.rb +99 -0
  11. data/lib/gamefic-sdk/tasks/web.rb +82 -0
  12. data/lib/gamefic-sdk/version.rb +5 -5
  13. metadata +123 -139
  14. data/bin/gfk +0 -6
  15. data/html/core/engine.js +0 -114
  16. data/html/core/jquery.js +0 -5
  17. data/html/core/jquery.modal.css +0 -44
  18. data/html/core/jquery.modal.js +0 -225
  19. data/html/core/js.cookie.js +0 -137
  20. data/html/sinatra/engine.js +0 -65
  21. data/html/skins/hypertext/compass.png +0 -0
  22. data/html/skins/hypertext/index.html +0 -149
  23. data/html/skins/hypertext/style.css +0 -74
  24. data/html/skins/minimal/index.html.erb +0 -22
  25. data/html/skins/minimal/index.rb +0 -4
  26. data/html/skins/minimal/play.js +0 -36
  27. data/html/skins/minimal/style.css +0 -8
  28. data/html/skins/multimedia/close.png +0 -0
  29. data/html/skins/multimedia/index.html +0 -179
  30. data/html/skins/multimedia/mobile.css +0 -10
  31. data/html/skins/multimedia/spinner.gif +0 -0
  32. data/html/skins/multimedia/style.css +0 -186
  33. data/html/skins/standard/index.html.erb +0 -22
  34. data/html/skins/standard/index.rb +0 -4
  35. data/html/skins/standard/play.js +0 -18
  36. data/html/skins/standard/style.css +0 -73
  37. data/lib/gamefic-sdk/build.rb +0 -30
  38. data/lib/gamefic-sdk/config.rb +0 -126
  39. data/lib/gamefic-sdk/debug.rb +0 -4
  40. data/lib/gamefic-sdk/debug/action.rb +0 -30
  41. data/lib/gamefic-sdk/debug/plot.rb +0 -23
  42. data/lib/gamefic-sdk/platform.rb +0 -22
  43. data/lib/gamefic-sdk/platform/base.rb +0 -68
  44. data/lib/gamefic-sdk/platform/gfic.rb +0 -27
  45. data/lib/gamefic-sdk/platform/sinatra.rb +0 -98
  46. data/lib/gamefic-sdk/platform/web.rb +0 -176
  47. data/lib/gamefic-sdk/platform/web/app_config.rb +0 -81
  48. data/lib/gamefic-sdk/platform/web/engine.rb +0 -44
  49. data/lib/gamefic-sdk/platform/web/user.rb +0 -19
  50. data/lib/gamefic-sdk/shell/init.rb +0 -83
  51. data/lib/gamefic-sdk/shell/test.rb +0 -32
  52. data/scripts/save-restore-undo.plot.rb +0 -25
  53. data/scripts/snapshots.plot.rb +0 -16
  54. data/scripts/standard.plot.rb +0 -10
  55. data/scripts/standard/actions.plot.rb +0 -13
  56. data/scripts/standard/actions/drop.plot.rb +0 -19
  57. data/scripts/standard/actions/enter.plot.rb +0 -19
  58. data/scripts/standard/actions/go.plot.rb +0 -48
  59. data/scripts/standard/actions/insert.plot.rb +0 -37
  60. data/scripts/standard/actions/inventory.plot.rb +0 -9
  61. data/scripts/standard/actions/leave.plot.rb +0 -30
  62. data/scripts/standard/actions/look.plot.rb +0 -108
  63. data/scripts/standard/actions/nil.plot.rb +0 -36
  64. data/scripts/standard/actions/place.plot.rb +0 -41
  65. data/scripts/standard/actions/quit.plot.rb +0 -11
  66. data/scripts/standard/actions/take.plot.rb +0 -31
  67. data/scripts/standard/actions/talk.plot.rb +0 -27
  68. data/scripts/standard/actions/wait.plot.rb +0 -3
  69. data/scripts/standard/clothing.plot.rb +0 -4
  70. data/scripts/standard/clothing/actions.plot.rb +0 -4
  71. data/scripts/standard/clothing/actions/doff.plot.rb +0 -12
  72. data/scripts/standard/clothing/actions/drop.plot.rb +0 -8
  73. data/scripts/standard/clothing/actions/inventory.plot.rb +0 -14
  74. data/scripts/standard/clothing/actions/wear.plot.rb +0 -20
  75. data/scripts/standard/clothing/entities.plot.rb +0 -7
  76. data/scripts/standard/clothing/entities/clothing.plot.rb +0 -5
  77. data/scripts/standard/clothing/entities/coat.plot.rb +0 -3
  78. data/scripts/standard/clothing/entities/gloves.plot.rb +0 -3
  79. data/scripts/standard/clothing/entities/hat.plot.rb +0 -3
  80. data/scripts/standard/clothing/entities/pants.plot.rb +0 -3
  81. data/scripts/standard/clothing/entities/shirt.plot.rb +0 -3
  82. data/scripts/standard/clothing/entities/shoes.plot.rb +0 -3
  83. data/scripts/standard/container.plot.rb +0 -28
  84. data/scripts/standard/container/actions.plot.rb +0 -0
  85. data/scripts/standard/container/entities.plot.rb +0 -5
  86. data/scripts/standard/direction.plot.rb +0 -55
  87. data/scripts/standard/edible.plot.rb +0 -21
  88. data/scripts/standard/entities.plot.rb +0 -12
  89. data/scripts/standard/entities/character.plot.rb +0 -10
  90. data/scripts/standard/entities/fixture.plot.rb +0 -3
  91. data/scripts/standard/entities/item.plot.rb +0 -3
  92. data/scripts/standard/entities/portal.plot.rb +0 -44
  93. data/scripts/standard/entities/receptacle.plot.rb +0 -3
  94. data/scripts/standard/entities/room.plot.rb +0 -57
  95. data/scripts/standard/entities/rubble.plot.rb +0 -11
  96. data/scripts/standard/entities/scenery.plot.rb +0 -3
  97. data/scripts/standard/entities/supporter.plot.rb +0 -7
  98. data/scripts/standard/entities/thing.plot.rb +0 -7
  99. data/scripts/standard/give.plot.rb +0 -27
  100. data/scripts/standard/lockable.plot.rb +0 -79
  101. data/scripts/standard/modules.plot.rb +0 -9
  102. data/scripts/standard/modules/attachable.plot.rb +0 -12
  103. data/scripts/standard/modules/auto_takes.plot.rb +0 -50
  104. data/scripts/standard/modules/enterable.plot.rb +0 -15
  105. data/scripts/standard/modules/explicit_exits.plot.rb +0 -15
  106. data/scripts/standard/modules/itemizable.plot.rb +0 -18
  107. data/scripts/standard/modules/locale_description.plot.rb +0 -20
  108. data/scripts/standard/modules/parent-room.plot.rb +0 -9
  109. data/scripts/standard/modules/portable.plot.rb +0 -11
  110. data/scripts/standard/modules/use.plot.rb +0 -51
  111. data/scripts/standard/openable.plot.rb +0 -43
  112. data/scripts/standard/pathfinder.plot.rb +0 -65
  113. data/scripts/standard/queries.plot.rb +0 -21
  114. data/scripts/standard/test.plot.rb +0 -10
  115. data/scripts/undo.plot.rb +0 -13
@@ -1,15 +1,10 @@
1
1
  require 'thor'
2
- require 'gamefic-sdk/build'
3
2
 
4
3
  module Gamefic
5
4
  module Sdk
6
5
  class Shell < Thor
7
- autoload :Init, 'gamefic-sdk/shell/init'
8
- autoload :Test, 'gamefic-sdk/shell/test'
9
-
10
6
  map %w[--version -v] => :version
11
7
  map [:create, :new] => :init
12
- map ['scripts'] => :script
13
8
 
14
9
  desc "--version, -v", "Print the version"
15
10
  def version
@@ -17,131 +12,29 @@ module Gamefic
17
12
  puts "gamefic #{Gamefic::VERSION}"
18
13
  end
19
14
 
20
- desc 'init DIRECTORY_NAME', 'Initialize a new game in DIRECTORY_NAME'
21
- option :quiet, type: :boolean, aliases: :q, desc: 'Suppress output'
22
- option :standard, type: :boolean, default: true, desc: 'Include the standard script'
23
- option :scripts, type: :array, aliases: [:s, :script], desc: 'Additional scripts'
24
- option :webskin, default: 'standard', aliases: [:w], desc: 'Skin to use for the Web platform'
25
- option :webdir, aliases: [:d], desc: 'HTML directory to copy. This option overrides the webskin.'
26
- option :title, type: :string, aliases: [:t], desc: "The game's title"
27
- option :author, type: :string, aliases: [:a], desc: "The game's author"
15
+ desc 'init DIRECTORY_NAME', 'Create a new project in DIRECTORY_NAME'
16
+ option :gem, type: :boolean, aliases: [:g, :library, :rubygem], desc: 'Make a gem project'
28
17
  def init(directory_name)
29
- Gamefic::Sdk::Shell::Init.new(
30
- directory: directory_name, quiet: options[:quiet], scripts: options[:scripts],
31
- webskin: options[:webskin], title: options[:title], author: options[:author],
32
- webdir: options[:webdir]
33
- ).run
34
- end
35
-
36
- desc 'test [DIRECTORY_NAME]', 'Play the game in DIRECTORY_NAME'
37
- def test(directory_name = '.')
38
- Gamefic::Sdk::Shell::Test.new(directory: directory_name).run
39
- end
40
-
41
- desc 'server [DIRECTORY_NAME]', 'Run the game in DIRECTORY_NAME in a web server'
42
- option :browser, type: :boolean, aliases: :b, desc: 'Open a browser when the server starts'
43
- def server(directory_name = '.')
44
- Gamefic::Sdk::Server.set :source_dir, directory_name
45
- Gamefic::Sdk::Server.set :browser, options[:browser]
46
- pub = File.join(directory_name, 'release', 'sinatra').gsub(/\\/, '/')
47
- Gamefic::Sdk::Server.set :public_folder, pub
48
- Gamefic::Sdk::Server.run!
49
- end
50
-
51
- desc 'build [DIRECTORY_NAME]', 'Build the game for specified platforms in DIRECTORY_NAME'
52
- option :quiet, type: :boolean, aliases: :q, desc: 'Suppress output'
53
- def build(directory_name = '.')
54
- Gamefic::Sdk::Build.release(directory_name, options[:quiet])
55
- end
56
-
57
- desc 'clean [DIRECTORY_NAME]', 'Perform cleanup of DIRECTORY_NAME'
58
- def clean(directory_name = '.')
59
- Gamefic::Sdk::Build.clean(directory_name)
60
- end
61
-
62
- desc 'import [DIRECTORY_NAME]', 'Copy external scripts to the project'
63
- option :quiet, type: :boolean, aliases: :q, desc: 'Suppress output'
64
- def import(directory_name = '.')
65
- config = Gamefic::Sdk::Config.load directory_name
66
- FileUtils.remove_entry_secure config.import_path if File.exist?(config.import_path)
67
- FileUtils.mkdir_p config.import_path
68
- paths = [config.script_path, Gamefic::Sdk::GLOBAL_SCRIPT_PATH]
69
- plot = Gamefic::Sdk::Debug::Plot.new Source::File.new(*paths)
70
- plot.script 'main'
71
- plot.imported_scripts.each { |s|
72
- next unless s.absolute_path.start_with?(Gamefic::Sdk::GLOBAL_SCRIPT_PATH)
73
- src = File.absolute_path(s.absolute_path)
74
- dst = File.absolute_path(File.join(directory_name, 'imports', "#{s.path}.plot.rb"))
75
- next if src == dst
76
- puts "Importing #{s.path}" unless options[:quiet]
77
- FileUtils.mkdir_p(File.dirname(dst))
78
- FileUtils.cp_r(src, dst)
79
- }
80
- end
81
-
82
- desc 'default-config [DIRECTORY_NAME]', 'Create or overwrite config.yml with default values'
83
- def default_config(directory_name = '.')
84
- File.open(File.join(directory_name, 'config.yml'), 'w') do |file|
85
- file << Gamefic::Sdk::Config.generate
86
- end
87
- puts "Default config.yml created."
88
- end
89
-
90
- desc 'webskins', 'List the available skins for the Web platform'
91
- def webskins
92
- Dir[File.join(Gamefic::Sdk::HTML_TEMPLATE_PATH, 'skins', '*')].sort.each { |d|
93
- puts File.basename(d)
94
- }
95
- end
96
-
97
- desc 'script [PATH]', 'List or document the scripts in the SDK'
98
- def script path = nil
99
- if path.nil?
100
- s = []
101
- Dir[File.join GLOBAL_SCRIPT_PATH, '**', '*.rb'].each { |f|
102
- c = File.read(f)
103
- c.each_line { |l|
104
- match = l.match(/[\s]*#[\s]*@gamefic.script[ ]+([a-z0-9\/]+)/)
105
- unless match.nil?
106
- s.push(match[1])
107
- end
108
- }
109
- }
110
- puts s.sort.join("\n")
111
- else
112
- document_script path
113
- end
114
- end
115
-
116
- private
117
-
118
- def document_script path
119
- f = File.join(GLOBAL_SCRIPT_PATH, "#{path}.plot.rb")
120
- if File.exist?(f)
121
- c = File.read(f)
122
- doc = ''
123
- in_comment = false
124
- c.each_line { |l|
125
- if in_comment
126
- break unless l.start_with?('#')
127
- doc += "#{l[2..-1]}"
128
- else
129
- match = l.match(/[\s]*#[\s]*@gamefic.script[ ]+([a-z0-9\/]+)/)
130
- in_comment = true unless match.nil?
131
- end
132
- }
133
- if in_comment
134
- puts ''
135
- puts path
136
- puts ''
137
- puts doc unless doc == ''
138
- puts '' unless doc == ''
139
- else
140
- puts "Path '#{path}' is not documented."
141
- end
142
- else
143
- puts "Script path '#{path}' does not exist."
144
- end
18
+ scaffold = options[:gem] ? 'library' : 'project'
19
+ Gamefic::Sdk::Scaffold.build scaffold, directory_name
20
+ puts "Gamefic project initialized at #{File.realpath(directory_name)}"
21
+ end
22
+
23
+ desc 'diagram TYPE', 'Get diagram data'
24
+ long_desc %(
25
+ SDK "diagrams" are datasets that can be used in analysis tools and
26
+ graphical data representations. The dataset is provided in JSON
27
+ format.
28
+
29
+ The diagram types are entities, rooms, actions, verbs, syntaxes, and commands.
30
+ )
31
+ option :directory, type: :string, aliases: :d, desc: 'The project directory', default: '.'
32
+ def diagram type
33
+ main = Pathname.new(options[:directory]).join('main.rb').realpath.to_s
34
+ require_relative main
35
+ plot = Gamefic::Plot.new
36
+ diagram = Gamefic::Sdk::Diagram.new(plot)
37
+ puts diagram.get(type).to_json
145
38
  end
146
39
  end
147
40
  end
@@ -0,0 +1,40 @@
1
+ require 'rubygems'
2
+ require 'gamefic-sdk'
3
+ require 'rake'
4
+
5
+ module Gamefic::Sdk::Tasks
6
+ autoload :Common, 'gamefic-sdk/tasks/common'
7
+ autoload :Ruby, 'gamefic-sdk/tasks/ruby'
8
+ autoload :Web, 'gamefic-sdk/tasks/web'
9
+
10
+ module_function
11
+
12
+ def define_all
13
+ define_task 'ruby:run', 'Run a Ruby CLI app' do
14
+ Ruby.new.run
15
+ end
16
+
17
+ define_task 'ruby:build', 'Build a distributable CLI app' do
18
+ Ruby.new.build
19
+ end
20
+
21
+ define_task 'web:generate', 'Generate a web app' do
22
+ Web.new.generate
23
+ end
24
+
25
+ define_task 'web:run', 'Run a standalone web app' do
26
+ Web.new.run
27
+ end
28
+
29
+ define_task 'web:build', 'Build a distributable web app' do
30
+ Web.new.build
31
+ end
32
+ end
33
+
34
+ def define_task name, desc, &block
35
+ return if Rake::Task.task_defined?(name)
36
+ # @type [Rake::Task]
37
+ task = Rake::Task.define_task(name, &block)
38
+ task.add_description desc
39
+ end
40
+ end
@@ -0,0 +1,21 @@
1
+ require 'pathname'
2
+
3
+ module Gamefic
4
+ module Sdk
5
+ module Tasks
6
+ # Common methods for Rake tasks.
7
+ #
8
+ module Common
9
+ attr_reader :directory
10
+
11
+ def initialize directory = '.'
12
+ @directory = directory
13
+ end
14
+
15
+ def absolute_path
16
+ @absolute_path ||= Pathname.new(directory).realpath.to_s
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,99 @@
1
+ require 'gamefic-tty'
2
+ require 'tmpdir'
3
+ require 'zlib'
4
+ require 'fileutils'
5
+ require 'base64'
6
+
7
+ module Gamefic
8
+ module Sdk
9
+ module Tasks
10
+ # Tasks for running and building Ruby apps.
11
+ #
12
+ class Ruby
13
+ include Common
14
+
15
+ # Run a command-line Ruby app.
16
+ #
17
+ def run
18
+ require_relative File.join(absolute_path, 'main')
19
+ Gamefic::Tty::Engine.run
20
+ end
21
+
22
+ # Build a distributable Ruby app.
23
+ #
24
+ def build
25
+ current = $LOADED_FEATURES.clone
26
+ require_relative File.join(absolute_path, 'main')
27
+ loaded = ($LOADED_FEATURES - current)
28
+ exports = {}
29
+ exports.merge! append_gem('gamefic')
30
+ exports.merge! append_gem('gamefic-tty')
31
+ loaded.each do |path|
32
+ exports.merge! relativize(path)
33
+ end
34
+ files = {}
35
+ exports.each_pair do |rel, full|
36
+ files[rel] = Base64.encode64(Zlib::Deflate.deflate(File.read(full)))
37
+ end
38
+ program = program_code(files)
39
+ FileUtils.mkdir_p File.join(absolute_path, 'builds', 'ruby')
40
+ File.write(File.join(absolute_path, 'builds', 'ruby', "#{File.basename(absolute_path)}.rb"), program)
41
+ end
42
+
43
+ private
44
+
45
+ def append_gem name
46
+ result = {}
47
+ # @type [Gem::Specification]
48
+ spec = Gem::Specification.find_by_name(name)
49
+ spec.lib_files.each do |path|
50
+ full = File.join(spec.full_gem_path, path)
51
+ raise LoadError, "Unable to package gem file `#{path}`" unless File.file?(full)
52
+ rel = full.sub(/^(#{spec.load_paths.join('|')})\//, '')
53
+ result[rel] = full
54
+ end
55
+ result
56
+ end
57
+
58
+ def relativize path
59
+ return { path[absolute_path.length+1..-1] => path } if path.start_with?(absolute_path)
60
+ # @param spec [Gem::Specification]
61
+ Gem::Specification.each do |spec|
62
+ spec.load_paths.each do |lib_path|
63
+ return { path[lib_path.length+1..-1] => path } if path.start_with?(lib_path)
64
+ end
65
+ end
66
+ raise LoadError, "Unable to package loaded path `#{path}`"
67
+ end
68
+
69
+ # @param zips [Hash]
70
+ # @return [String]
71
+ def program_code(zips)
72
+ %(#!/usr/bin/env ruby
73
+
74
+ zips = #{zips.inspect}
75
+
76
+ require 'tmpdir'
77
+ require 'fileutils'
78
+ require 'zlib'
79
+ require 'base64'
80
+
81
+ puts 'Loading...'
82
+ Dir.mktmpdir do |tmp|
83
+ zips.each_pair do |file, code|
84
+ FileUtils.mkdir_p File.join(tmp, 'lib', File.dirname(file))
85
+ File.write(File.join(tmp, 'lib', file), Zlib::Inflate.inflate(Base64.decode64(code)))
86
+ end
87
+ $LOAD_PATH.unshift File.join(tmp, 'lib')
88
+ require 'gamefic'
89
+ require 'gamefic-tty'
90
+ require 'main'
91
+ puts "\n"
92
+ Gamefic::Tty::Engine.run
93
+ end
94
+ )
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,82 @@
1
+ require 'listen'
2
+
3
+ module Gamefic
4
+ module Sdk
5
+ module Tasks
6
+ # Tasks for running and building web apps.
7
+ #
8
+ class Web
9
+ include Common
10
+
11
+ # Generate a web app using NPM.
12
+ #
13
+ def generate
14
+ Dir.chdir absolute_path do
15
+ nv = `npm -v`.strip
16
+ puts "Node version #{nv} detected. Preparing the web app..."
17
+ Gamefic::Sdk::Scaffold.build 'react', '.'
18
+ puts 'The web app scaffold is ready.'
19
+ puts 'Run `npm install` to download the dependencies.'
20
+ end
21
+ rescue Errno::ENOENT => e
22
+ STDERR.puts "#{e.class}: #{e.message}"
23
+ STDERR.puts "Web app generation requires Node (https://nodejs.org)."
24
+ end
25
+
26
+ # Run the web app in a server.
27
+ #
28
+ def run
29
+ check_for_web_build
30
+ build_development
31
+ listener = Listen.to(File.join(absolute_path, 'web')) do |_mod, _add, _rem|
32
+ build_development
33
+ end
34
+ listener.start
35
+ # @todo Get the public folder from a config?
36
+ Gamefic::Sdk::Server.run! source_dir: absolute_path, public_folder: File.join(absolute_path, 'builds', 'web', 'development')
37
+ end
38
+
39
+ # Build a distributable web app using NPM.
40
+ #
41
+ def build
42
+ check_for_web_build
43
+ Dir.chdir absolute_path do
44
+ # exec 'npm run build'
45
+ pid = Process.spawn 'npm run build'
46
+ Process.wait pid
47
+ end
48
+ rescue Errno::ENOENT => e
49
+ STDERR.puts "#{e.class}: #{e.message}"
50
+ STDERR.puts "Web app building requires Node (https://nodejs.org)."
51
+ end
52
+
53
+ private
54
+
55
+ # True if a web build has been generated for the current project.
56
+ #
57
+ # @return [Boolean]
58
+ def web_build_exists?
59
+ File.exist?(File.join(absolute_path, 'package.json'))
60
+ end
61
+
62
+ # Check if a web build exists.
63
+ #
64
+ # @raise [LoadError] if a web build is not available.
65
+ # @return [void]
66
+ def check_for_web_build
67
+ return if web_build_exists?
68
+ puts 'This project does not appear to be configured for web builds.'
69
+ puts 'Try running `rake web:generate` first.' if Rake::Task.task_defined?('web:generate')
70
+ raise LoadError, 'package.json not found'
71
+ end
72
+
73
+ def build_development
74
+ Dir.chdir absolute_path do
75
+ pid = Process.spawn('npm run develop')
76
+ Process.wait pid
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -1,5 +1,5 @@
1
- module Gamefic
2
- module Sdk
3
- VERSION = '1.7.0'
4
- end
5
- end
1
+ module Gamefic
2
+ module Sdk
3
+ VERSION = '2.0.0'
4
+ end
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gamefic-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Snyder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-01 00:00:00.000000000 Z
11
+ date: 2020-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gamefic
@@ -16,229 +16,214 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.7'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.7'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: opal
28
+ name: gamefic-standard
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.10'
34
- - - ">="
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
35
39
  - !ruby/object:Gem::Version
36
- version: 0.10.3
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: gamefic-tty
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
37
48
  type: :runtime
38
49
  prerelease: false
39
50
  version_requirements: !ruby/object:Gem::Requirement
40
51
  requirements:
41
52
  - - "~>"
42
53
  - !ruby/object:Gem::Version
43
- version: '0.10'
44
- - - ">="
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: listen
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
45
60
  - !ruby/object:Gem::Version
46
- version: 0.10.3
61
+ version: '3.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
47
69
  - !ruby/object:Gem::Dependency
48
- name: uglifier
70
+ name: opal
49
71
  requirement: !ruby/object:Gem::Requirement
50
72
  requirements:
51
73
  - - "~>"
52
74
  - !ruby/object:Gem::Version
53
- version: '3.2'
75
+ version: '1.0'
54
76
  type: :runtime
55
77
  prerelease: false
56
78
  version_requirements: !ruby/object:Gem::Requirement
57
79
  requirements:
58
80
  - - "~>"
59
81
  - !ruby/object:Gem::Version
60
- version: '3.2'
82
+ version: '1.0'
61
83
  - !ruby/object:Gem::Dependency
62
84
  name: sinatra
63
85
  requirement: !ruby/object:Gem::Requirement
64
86
  requirements:
65
87
  - - "~>"
66
88
  - !ruby/object:Gem::Version
67
- version: '1.4'
89
+ version: '2'
68
90
  type: :runtime
69
91
  prerelease: false
70
92
  version_requirements: !ruby/object:Gem::Requirement
71
93
  requirements:
72
94
  - - "~>"
73
95
  - !ruby/object:Gem::Version
74
- version: '1.4'
96
+ version: '2'
75
97
  - !ruby/object:Gem::Dependency
76
- name: rspec
98
+ name: thor
77
99
  requirement: !ruby/object:Gem::Requirement
78
100
  requirements:
79
101
  - - "~>"
80
102
  - !ruby/object:Gem::Version
81
- version: '3.5'
82
- - - ">="
103
+ version: '1.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: bundler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
83
116
  - !ruby/object:Gem::Version
84
- version: 3.5.0
117
+ version: '2.0'
85
118
  type: :development
86
119
  prerelease: false
87
120
  version_requirements: !ruby/object:Gem::Requirement
88
121
  requirements:
89
122
  - - "~>"
90
123
  - !ruby/object:Gem::Version
91
- version: '3.5'
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: 3.5.0
124
+ version: '2.0'
95
125
  - !ruby/object:Gem::Dependency
96
126
  name: capybara
97
127
  requirement: !ruby/object:Gem::Requirement
98
128
  requirements:
99
129
  - - "~>"
100
130
  - !ruby/object:Gem::Version
101
- version: '2.0'
102
- - - ">="
131
+ version: '3.3'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
103
137
  - !ruby/object:Gem::Version
104
- version: '2.0'
138
+ version: '3.3'
139
+ - !ruby/object:Gem::Dependency
140
+ name: puma
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '3'
105
146
  type: :development
106
147
  prerelease: false
107
148
  version_requirements: !ruby/object:Gem::Requirement
108
149
  requirements:
109
150
  - - "~>"
110
151
  - !ruby/object:Gem::Version
111
- version: '2.0'
112
- - - ">="
152
+ version: '3'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rake
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
113
158
  - !ruby/object:Gem::Version
114
- version: '2.0'
159
+ version: '10.0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '10.0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rspec
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '3.0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '3.0'
115
181
  - !ruby/object:Gem::Dependency
116
182
  name: selenium-webdriver
117
183
  requirement: !ruby/object:Gem::Requirement
118
184
  requirements:
119
185
  - - "~>"
120
186
  - !ruby/object:Gem::Version
121
- version: '3.4'
187
+ version: '3.13'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '3.13'
195
+ - !ruby/object:Gem::Dependency
196
+ name: simplecov
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '0.14'
122
202
  type: :development
123
203
  prerelease: false
124
204
  version_requirements: !ruby/object:Gem::Requirement
125
205
  requirements:
126
206
  - - "~>"
127
207
  - !ruby/object:Gem::Version
128
- version: '3.4'
129
- description: Development tools for Gamefic
208
+ version: '0.14'
209
+ description: Development and command-line tools for Gamefic
130
210
  email: fsnyder@gamefic.com
131
211
  executables:
132
- - gfk
212
+ - gamefic
133
213
  extensions: []
134
214
  extra_rdoc_files: []
135
215
  files:
136
- - bin/gfk
137
- - html/core/engine.js
138
- - html/core/jquery.js
139
- - html/core/jquery.modal.css
140
- - html/core/jquery.modal.js
141
- - html/core/js.cookie.js
142
- - html/sinatra/engine.js
143
- - html/skins/hypertext/compass.png
144
- - html/skins/hypertext/index.html
145
- - html/skins/hypertext/style.css
146
- - html/skins/minimal/index.html.erb
147
- - html/skins/minimal/index.rb
148
- - html/skins/minimal/play.js
149
- - html/skins/minimal/style.css
150
- - html/skins/multimedia/close.png
151
- - html/skins/multimedia/index.html
152
- - html/skins/multimedia/mobile.css
153
- - html/skins/multimedia/spinner.gif
154
- - html/skins/multimedia/style.css
155
- - html/skins/standard/index.html.erb
156
- - html/skins/standard/index.rb
157
- - html/skins/standard/play.js
158
- - html/skins/standard/style.css
216
+ - bin/gamefic
159
217
  - lib/gamefic-sdk.rb
160
- - lib/gamefic-sdk/build.rb
161
- - lib/gamefic-sdk/config.rb
162
- - lib/gamefic-sdk/debug.rb
163
- - lib/gamefic-sdk/debug/action.rb
164
- - lib/gamefic-sdk/debug/plot.rb
165
- - lib/gamefic-sdk/platform.rb
166
- - lib/gamefic-sdk/platform/base.rb
167
- - lib/gamefic-sdk/platform/gfic.rb
168
- - lib/gamefic-sdk/platform/sinatra.rb
169
- - lib/gamefic-sdk/platform/web.rb
170
- - lib/gamefic-sdk/platform/web/app_config.rb
171
- - lib/gamefic-sdk/platform/web/engine.rb
172
- - lib/gamefic-sdk/platform/web/user.rb
218
+ - lib/gamefic-sdk/diagram.rb
219
+ - lib/gamefic-sdk/scaffold.rb
173
220
  - lib/gamefic-sdk/server.rb
174
221
  - lib/gamefic-sdk/shell.rb
175
- - lib/gamefic-sdk/shell/init.rb
176
- - lib/gamefic-sdk/shell/test.rb
222
+ - lib/gamefic-sdk/tasks.rb
223
+ - lib/gamefic-sdk/tasks/common.rb
224
+ - lib/gamefic-sdk/tasks/ruby.rb
225
+ - lib/gamefic-sdk/tasks/web.rb
177
226
  - lib/gamefic-sdk/version.rb
178
- - scripts/save-restore-undo.plot.rb
179
- - scripts/snapshots.plot.rb
180
- - scripts/standard.plot.rb
181
- - scripts/standard/actions.plot.rb
182
- - scripts/standard/actions/drop.plot.rb
183
- - scripts/standard/actions/enter.plot.rb
184
- - scripts/standard/actions/go.plot.rb
185
- - scripts/standard/actions/insert.plot.rb
186
- - scripts/standard/actions/inventory.plot.rb
187
- - scripts/standard/actions/leave.plot.rb
188
- - scripts/standard/actions/look.plot.rb
189
- - scripts/standard/actions/nil.plot.rb
190
- - scripts/standard/actions/place.plot.rb
191
- - scripts/standard/actions/quit.plot.rb
192
- - scripts/standard/actions/take.plot.rb
193
- - scripts/standard/actions/talk.plot.rb
194
- - scripts/standard/actions/wait.plot.rb
195
- - scripts/standard/clothing.plot.rb
196
- - scripts/standard/clothing/actions.plot.rb
197
- - scripts/standard/clothing/actions/doff.plot.rb
198
- - scripts/standard/clothing/actions/drop.plot.rb
199
- - scripts/standard/clothing/actions/inventory.plot.rb
200
- - scripts/standard/clothing/actions/wear.plot.rb
201
- - scripts/standard/clothing/entities.plot.rb
202
- - scripts/standard/clothing/entities/clothing.plot.rb
203
- - scripts/standard/clothing/entities/coat.plot.rb
204
- - scripts/standard/clothing/entities/gloves.plot.rb
205
- - scripts/standard/clothing/entities/hat.plot.rb
206
- - scripts/standard/clothing/entities/pants.plot.rb
207
- - scripts/standard/clothing/entities/shirt.plot.rb
208
- - scripts/standard/clothing/entities/shoes.plot.rb
209
- - scripts/standard/container.plot.rb
210
- - scripts/standard/container/actions.plot.rb
211
- - scripts/standard/container/entities.plot.rb
212
- - scripts/standard/direction.plot.rb
213
- - scripts/standard/edible.plot.rb
214
- - scripts/standard/entities.plot.rb
215
- - scripts/standard/entities/character.plot.rb
216
- - scripts/standard/entities/fixture.plot.rb
217
- - scripts/standard/entities/item.plot.rb
218
- - scripts/standard/entities/portal.plot.rb
219
- - scripts/standard/entities/receptacle.plot.rb
220
- - scripts/standard/entities/room.plot.rb
221
- - scripts/standard/entities/rubble.plot.rb
222
- - scripts/standard/entities/scenery.plot.rb
223
- - scripts/standard/entities/supporter.plot.rb
224
- - scripts/standard/entities/thing.plot.rb
225
- - scripts/standard/give.plot.rb
226
- - scripts/standard/lockable.plot.rb
227
- - scripts/standard/modules.plot.rb
228
- - scripts/standard/modules/attachable.plot.rb
229
- - scripts/standard/modules/auto_takes.plot.rb
230
- - scripts/standard/modules/enterable.plot.rb
231
- - scripts/standard/modules/explicit_exits.plot.rb
232
- - scripts/standard/modules/itemizable.plot.rb
233
- - scripts/standard/modules/locale_description.plot.rb
234
- - scripts/standard/modules/parent-room.plot.rb
235
- - scripts/standard/modules/portable.plot.rb
236
- - scripts/standard/modules/use.plot.rb
237
- - scripts/standard/openable.plot.rb
238
- - scripts/standard/pathfinder.plot.rb
239
- - scripts/standard/queries.plot.rb
240
- - scripts/standard/test.plot.rb
241
- - scripts/undo.plot.rb
242
227
  homepage: http://gamefic.com
243
228
  licenses:
244
229
  - MIT
@@ -251,15 +236,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
251
236
  requirements:
252
237
  - - ">="
253
238
  - !ruby/object:Gem::Version
254
- version: 2.1.0
239
+ version: 2.3.0
255
240
  required_rubygems_version: !ruby/object:Gem::Requirement
256
241
  requirements:
257
242
  - - ">="
258
243
  - !ruby/object:Gem::Version
259
244
  version: '0'
260
245
  requirements: []
261
- rubyforge_project:
262
- rubygems_version: 2.5.1
246
+ rubygems_version: 3.0.3
263
247
  signing_key:
264
248
  specification_version: 4
265
249
  summary: Gamefic SDK