gamefic-sdk 2.0.0 → 2.1.0

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
  SHA256:
3
- metadata.gz: ce08abec9929267cbcd41b95da9a7bd313e3449ce3160277b26160aadd8437bf
4
- data.tar.gz: 1e7c8e9827b24816addfec88ff81f1c9d9e8112f9e5422f045a2ef07471375b1
3
+ metadata.gz: e191127d0c07f062207511ce1abb9b6b8237252a2c211751554673cc43a9572d
4
+ data.tar.gz: e68a2692143010304e89abe4ccaf5d99f3227a39f89ef10c1cb7d56df6ed0c25
5
5
  SHA512:
6
- metadata.gz: 1dc60435ac2e35ed97f76de2d2ba8494c5dad6a54b6aeb943b4767159c866cdd799e21763f29ed1b9360e117a8b2912934ad607b6b343d986cac9c4769d004bd
7
- data.tar.gz: 76c10bcf57491365f4b61b78f2f076d3bdd9bab43b0d46a6ed838b612c2a7c82026cb6d2ef5d94bc7f0fa817fe364ff3325b1550e8de7bfc49b5e95e47a4d910
6
+ metadata.gz: b871b39cc1371113111d917ec0ff01180483daefefbe9725e95f1d486f9b72d708215b8ca8b483784b908d3682c7430b29ecb6fc13953b626c92b170555a315e
7
+ data.tar.gz: a3e31833934272af6363b821f76cb8b1af8427b1797ccc0b61dcaff023aa9dc6323b9b4de174387d659a9ee1307020be81ee111560b173dba2b2afb99e6874f9
@@ -0,0 +1,13 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
12
+
13
+ Gemfile.lock
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,7 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.5.3
7
+ before_install: gem install bundler -v 2.0.1
@@ -0,0 +1,6 @@
1
+ ## 2.1.0 - August 27, 2020
2
+ - Update web app with customizable scene components
3
+
4
+ ## 2.0.4 - April 25, 2020
5
+ - Server does not symbolize snapshot keys
6
+ - Update dependencies
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2019 Fred Snyder
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,146 @@
1
+ # Gamefic SDK
2
+
3
+ **A Ruby Interactive Fiction Framework**
4
+
5
+ The Gamefic SDK provides development tools for writing games and interactive fiction with Gamefic.
6
+
7
+ ## Installation
8
+
9
+ Install the gem:
10
+
11
+ $ gem install gamefic-sdk
12
+
13
+ ## Usage
14
+
15
+ This section provides a fast and simple introduction to using the SDK. Go to
16
+ the [Gamefic website](https://gamefic.com) for in-depth guides and
17
+ documentation.
18
+
19
+ ### Creating a New Project
20
+
21
+ Create a new project and go to its directory:
22
+
23
+ $ gamefic init my_game
24
+ $ cd my_game
25
+
26
+ Test the project by running the game on the command line:
27
+
28
+ $ rake ruby:run
29
+
30
+ The Ruby game works like a traditional text adventure:
31
+
32
+ Hello, world!
33
+ >
34
+
35
+ You can enter commands at the `>` prompt, but you haven't written any content,
36
+ so there's not much to do yet. Enter `QUIT` to exit the game.
37
+
38
+ ### The Script Code
39
+
40
+ The main script for your narrative is `main.rb` in your project's root
41
+ directory. It should look something like this:
42
+
43
+ ```ruby
44
+ GAMEFIC_UUID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
45
+ require 'gamefic-standard'
46
+
47
+ Gamefic.script do
48
+ introduction do |actor|
49
+ actor.tell "Hello, world!"
50
+ end
51
+ end
52
+ ```
53
+
54
+ `GAMEFIC_UUID` is a globally unique identifier. It can be useful if you want to
55
+ add your game to online catalogs, such as the [Interactive Fiction Database](https://ifdb.tads.org/),
56
+ but it's safe to delete if you don't need it.
57
+
58
+ ['gamefic-standard'](https://github.com/castwide/gamefic-standard) is a collection
59
+ of baseline features that are frequently useful for interactive fiction. [Inform](http://inform7.com/)
60
+ developers should find it similar to Inform's Standard Rules. It defines common
61
+ components like Rooms and Characters, along with in-game commands like `GO`,
62
+ `GET`, and `DROP` to enable basic interactivity.
63
+
64
+ `Gamefic.script` is where you write the story itself. In the starter project,
65
+ the only thing in the script is an introductory message.
66
+
67
+ ### Modifying the Script
68
+
69
+ Replace the contents of `main.rb` with the following:
70
+
71
+ ```ruby
72
+ require 'gamefic-standard'
73
+
74
+ Gamefic.script do
75
+ @living_room = make Room, name: 'living room', description: 'This is your living room.'
76
+ @bedroom = make Room, name: 'bedroom', description: 'This is your bedroom.'
77
+ @living_room.connect @bedroom, 'north'
78
+ @backpack = make Room, name: 'backpack', description: 'Your trusty backpack.', parent: @bedroom
79
+ @book = make Room, name: 'book', description: 'Your favorite novel.', parent: @living_room
80
+
81
+ introduction do |actor|
82
+ actor.parent = @living_room
83
+ actor.tell "You're in your house."
84
+ end
85
+ end
86
+ ```
87
+
88
+ Enter `rake ruby:run` to test the game. Now that it has rooms and objects, you
89
+ can perform in-game commands like `LOOK AROUND`, `GO NORTH`, and `TAKE THE BACKPACK`.
90
+
91
+ ### Making Games for the Web
92
+
93
+ The default game project includes tasks for building "web" apps using HTML,
94
+ CSS, and JavaScript. Generate the code for a web build with the following
95
+ command:
96
+
97
+ ```
98
+ $ rake web:generate
99
+ ```
100
+
101
+ Test the game in a browser by starting a server:
102
+
103
+ ```
104
+ $ rake web:run
105
+ ```
106
+
107
+ Open `http://localhost:4342` to run the game in debug mode.
108
+
109
+ Build a standalone web game:
110
+
111
+ ```
112
+ $ rake web:build
113
+ ```
114
+
115
+ The game's HTML file and related assets will be generated in the
116
+ `builds/web/production` directory. The SDK uses
117
+ [opal](https://github.com/opal/opal) to compile Ruby code to JavaScript, so the
118
+ web build does not require a Ruby interpreter. Open `index.html` in a browser
119
+ to play the game.
120
+
121
+ Note: building the web app requires [Node.js](https://nodejs.org).
122
+
123
+ ### Example Projects
124
+
125
+ The gamefic-sdk repo includes several example projects that provide more
126
+ complete demonstrations of Gamefic's features. To run an example, copy
127
+ its `main.rb` file to your own project.
128
+
129
+ ### Learning More
130
+
131
+ Go to the [Gamefic website](https://gamefic.com) for more information about
132
+ developing and building apps with Gamefic.
133
+
134
+ ## Development
135
+
136
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
137
+
138
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
139
+
140
+ ## Contributing
141
+
142
+ Bug reports and pull requests are welcome on GitHub at https://github.com/castwide/gamefic-sdk.
143
+
144
+ ## License
145
+
146
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "gamefic/sdk"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -4,13 +4,3 @@ require 'gamefic-sdk'
4
4
  require 'gamefic-sdk/shell'
5
5
 
6
6
  Gamefic::Sdk::Shell.start(ARGV)
7
-
8
- #!/usr/bin/env ruby
9
-
10
- #require 'gamefic'
11
- #require 'gamefic-tty'
12
-
13
- # Make play the default command if the first argument is an existing file
14
- #args = %w(play help).include?(ARGV[0]) || ARGV.count.zero? || !File.exist?(ARGV[0]) ? ARGV : ARGV.dup.unshift('play')
15
-
16
- #Gamefic::Tty::Shell.start(args)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,42 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'gamefic-sdk/version'
4
+ require 'date'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = 'gamefic-sdk'
8
+ s.version = Gamefic::Sdk::VERSION
9
+ s.date = Date.today.strftime("%Y-%m-%d")
10
+ s.summary = "Gamefic SDK"
11
+ s.description = "Development and command-line tools for Gamefic"
12
+ s.authors = ["Fred Snyder"]
13
+ s.email = 'fsnyder@gamefic.com'
14
+ s.homepage = 'http://gamefic.com'
15
+ s.license = 'MIT'
16
+
17
+ # Specify which files should be added to the gem when it is released.
18
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
+ s.files = Dir.chdir(File.expand_path('..', __FILE__)) do
20
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|examples|guides)/}) }
21
+ end
22
+ s.executables = ['gamefic']
23
+ s.require_paths = ['lib']
24
+
25
+ s.required_ruby_version = '>= 2.3.0'
26
+
27
+ s.add_runtime_dependency 'gamefic', '~> 2.0', '>= 2.0.2'
28
+ s.add_runtime_dependency 'gamefic-standard', '~> 2.0'
29
+ s.add_runtime_dependency 'gamefic-tty', '~> 2.0', '>= 2.0.1'
30
+ s.add_runtime_dependency 'listen', '~> 3.0'
31
+ s.add_runtime_dependency 'opal', '~> 1.0'
32
+ s.add_runtime_dependency 'sinatra', '~> 2'
33
+ s.add_runtime_dependency 'thor', '~> 1.0'
34
+
35
+ s.add_development_dependency 'bundler', '~> 2.0'
36
+ s.add_development_dependency 'capybara', '~> 3.3'
37
+ s.add_development_dependency 'puma', '~> 3'
38
+ s.add_development_dependency 'rake', '~> 13.0'
39
+ s.add_development_dependency 'rspec', '~> 3.0'
40
+ s.add_development_dependency 'selenium-webdriver', '~> 3.13'
41
+ s.add_development_dependency 'simplecov', '~> 0.14'
42
+ end
@@ -32,7 +32,6 @@ module Gamefic
32
32
  content_type :json
33
33
  @@plot.update
34
34
  @@plot.ready
35
- # @@character.state.merge(input: params['command'], continued: @@character.queue.any?).to_json
36
35
  @@character.output.to_json
37
36
  end
38
37
 
@@ -45,7 +44,7 @@ module Gamefic
45
44
  content_type :json
46
45
  # The snapshot needs to be received as a JSON string because of issues
47
46
  # with IndifferentHash malforming arrays.
48
- snapshot = JSON.parse(params['snapshot'], symbolize_names: true)
47
+ snapshot = JSON.parse(params['snapshot'])
49
48
  @@plot.restore snapshot
50
49
  @@character.cue @@plot.default_scene
51
50
  @@plot.update
@@ -1,5 +1,5 @@
1
1
  module Gamefic
2
2
  module Sdk
3
- VERSION = '2.0.0'
3
+ VERSION = '2.1.0'
4
4
  end
5
5
  end
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,14 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = '<%= name %>'
3
+ spec.version = '1.0.0'
4
+ spec.summary = 'A Gamefic library'
5
+ spec.authors = ['Anomynous']
6
+ spec.license = 'MIT'
7
+ spec.files = Dir['lib/**/*.rb']
8
+
9
+ spec.add_runtime_dependency 'gamefic', '~> 2.0'
10
+ spec.add_runtime_dependency 'gamefic-standard', '~> 2.0'
11
+
12
+ spec.add_development_dependency 'gamefic-sdk', '~> 2.0'
13
+ spec.add_development_dependency 'rake', '~> 12.3'
14
+ end
@@ -0,0 +1,5 @@
1
+ require 'gamefic-standard'
2
+
3
+ Gamefic.script do
4
+ # Game code goes here
5
+ end
@@ -0,0 +1,2 @@
1
+ builds
2
+ node_modules
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem 'gamefic'
6
+ gem 'gamefic-standard'
7
+
8
+ group :development do
9
+ gem 'gamefic-sdk'
10
+ gem 'gamefic-tty'
11
+ gem 'rake'
12
+ end
@@ -0,0 +1,6 @@
1
+ require 'bundler/setup'
2
+ require 'gamefic-sdk'
3
+
4
+ # Add the default Gamefic tasks for building and running games
5
+ # Run `rake --tasks` for a list of commands and descriptions
6
+ Gamefic::Sdk::Tasks.define_all
@@ -0,0 +1,9 @@
1
+ GAMEFIC_UUID = '<%= SecureRandom.uuid %>'
2
+ require 'gamefic'
3
+ require 'gamefic-standard'
4
+
5
+ Gamefic.script do
6
+ introduction do |actor|
7
+ actor.tell "Hello, world!"
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ {
2
+ "presets" : ["env", "react"]
3
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "<%= name %>",
3
+ "version": "1.0.0",
4
+ "description": "A Gamefic web app",
5
+ "keywords": [],
6
+ "author": "Anonymous",
7
+ "license": "UNLICENSED",
8
+ "private": true,
9
+ "scripts": {
10
+ "test": "echo \"Error: no test specified\" && exit 1",
11
+ "build": "webpack --env=production -p",
12
+ "develop": "webpack --env=development -d"
13
+ },
14
+ "devDependencies": {
15
+ "babel-core": "^6.26.3",
16
+ "babel-loader": "^7.1.5",
17
+ "babel-preset-env": "^1.7.0",
18
+ "babel-preset-react": "^6.24.1",
19
+ "copy-webpack-plugin": "^4.5.3",
20
+ "css-loader": "^1.0.0",
21
+ "file-loader": "^3.0.1",
22
+ "opal-webpack-bundler": "^0.0.1",
23
+ "style-loader": "^0.23.1",
24
+ "url-loader": "^1.1.2",
25
+ "webpack": "^4.20.2",
26
+ "webpack-cli": "^3.1.2"
27
+ },
28
+ "dependencies": {
29
+ "gamefic-driver": "^0.2.1",
30
+ "react": "^16.5.2",
31
+ "react-dom": "^16.5.2",
32
+ "react-gamefic": "^0.3.0"
33
+ }
34
+ }
@@ -0,0 +1,11 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title><%= name %></title>
6
+ </head>
7
+ <body>
8
+ <div id="root" />
9
+ <script src="bundle.js" type="text/javascript"></script>
10
+ </body>
11
+ </html>
@@ -0,0 +1,4 @@
1
+ import { WebDriver } from 'gamefic-driver';
2
+
3
+ const driver = new WebDriver('http://localhost:4342');
4
+ export { driver };
@@ -0,0 +1,7 @@
1
+ require 'opal'
2
+ require 'gamefic'
3
+ require 'main'
4
+
5
+ $plot = Gamefic::Plot.new
6
+ $character = $plot.get_player_character
7
+ $plot.introduce $character
@@ -0,0 +1,5 @@
1
+ import './opal.rb';
2
+ import { OpalDriver } from 'gamefic-driver';
3
+
4
+ const driver = new OpalDriver(Opal);
5
+ export { driver };
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { render } from 'react-dom';
3
+ import { Console, Terminal } from 'react-gamefic';
4
+
5
+ import { driver } from 'driver';
6
+
7
+ import { ActivityScene, PauseScene, MultipleChoiceScene, ConclusionScene } from './scenes';
8
+ import 'react-gamefic/styles/ebook';
9
+ import './style.css';
10
+
11
+ const sceneComponents = {
12
+ Activity: ActivityScene,
13
+ Pause: PauseScene,
14
+ MultipleChoice: MultipleChoiceScene,
15
+ YesOrNo: MultipleChoiceScene,
16
+ Conclusion: ConclusionScene
17
+ }
18
+
19
+ render(
20
+ <Console driver={driver}>
21
+ <Terminal sceneComponents={sceneComponents} autoScroll={true} />
22
+ </Console>,
23
+ document.getElementById('root')
24
+ );
25
+
26
+ driver.start().then((state) => {
27
+ driver.notify(state);
28
+ });
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { Output, CommandForm } from 'react-gamefic';
3
+
4
+ export class ActivityScene extends React.Component {
5
+ render() {
6
+ return (
7
+ <div className="ActivityScene">
8
+ <Output {...this.props} />
9
+ <CommandForm prompt={this.props.state.prompt} />
10
+ </div>
11
+ );
12
+ }
13
+ }
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Output } from 'react-gamefic';
3
+
4
+ export class ConclusionScene extends React.Component {
5
+ render() {
6
+ return (
7
+ <div className="ConclusionScene">
8
+ <Output {...this.props} />
9
+ </div>
10
+ );
11
+ }
12
+ }
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { Output } from 'react-gamefic';
3
+ import { CommandLink } from 'react-gamefic';
4
+
5
+ export class MultipleChoiceScene extends React.Component {
6
+ renderChoices() {
7
+ if (this.props.state.options) {
8
+ const listItems = this.props.state.options.map((opt, index) => {
9
+ return (
10
+ <li key={index}>
11
+ <CommandLink command={opt}>{opt}</CommandLink>
12
+ </li>
13
+ );
14
+ });
15
+ return (
16
+ <nav>
17
+ <ol>
18
+ {listItems}
19
+ </ol>
20
+ </nav>
21
+ );
22
+ } else {
23
+ console.warn("Error: Multiple choice scene does not have any options");
24
+ return '';
25
+ }
26
+ }
27
+
28
+ render() {
29
+ return (
30
+ <div className="MultipleChoiceScene">
31
+ <Output {...this.props} />
32
+ <label>{this.props.state.prompt}</label>
33
+ {this.renderChoices()}
34
+ </div>
35
+ );
36
+ }
37
+ }
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { Output, CommandLink, CommandForm } from 'react-gamefic';
3
+
4
+ export class PauseScene extends React.Component {
5
+ render() {
6
+ return (
7
+ <div className="PauseScene">
8
+ <Output {...this.props} />
9
+ <CommandLink command="">Continue</CommandLink>
10
+ </div>
11
+ );
12
+ }
13
+ }
@@ -0,0 +1,11 @@
1
+ import { ActivityScene } from './ActivityScene.jsx';
2
+ import { PauseScene } from './PauseScene.jsx';
3
+ import { MultipleChoiceScene } from './MultipleChoiceScene.jsx';
4
+ import { ConclusionScene } from './ConclusionScene.jsx';
5
+
6
+ export {
7
+ ActivityScene,
8
+ PauseScene,
9
+ MultipleChoiceScene,
10
+ ConclusionScene
11
+ }
@@ -0,0 +1,3 @@
1
+ html {
2
+ background-color: #EFEFEF;
3
+ }
@@ -0,0 +1,69 @@
1
+ const path = require('path');
2
+ const CopyWebpackPlugin = require('copy-webpack-plugin');
3
+
4
+ module.exports = (env) => {
5
+ var config = {
6
+ entry: path.resolve(__dirname, 'web', 'src', 'index.js'),
7
+ output: {
8
+ filename: 'bundle.js',
9
+ path: path.resolve(__dirname, "builds", "web", env)
10
+ },
11
+ resolve: {
12
+ alias: {
13
+ driver: path.join(__dirname, 'web', 'src', 'driver', env)
14
+ }
15
+ },
16
+ plugins: [
17
+ new CopyWebpackPlugin([
18
+ {
19
+ from: path.resolve(__dirname, 'web', 'public')
20
+ },
21
+ ])
22
+ ],
23
+ module: {
24
+ rules: [
25
+ {
26
+ test: /\.css$/,
27
+ use: ['style-loader', 'css-loader']
28
+ },
29
+ {
30
+ test: /\.(png|jp(e*)g|svg)$/,
31
+ use: [{
32
+ loader: 'url-loader',
33
+ options: {
34
+ limit: 8000, // Convert images < 8kb to base64 strings
35
+ name: 'images/[hash]-[name].[ext]'
36
+ }
37
+ }]
38
+ },
39
+ {
40
+ test: /\.jsx?/,
41
+ include: path.resolve(__dirname, 'web'),
42
+ use: 'babel-loader'
43
+ }
44
+ ]
45
+ }
46
+ }
47
+
48
+ if (env == 'production') {
49
+ config.module.rules.push(
50
+ {
51
+ // opal-webpack-bundler will compile and include ruby files in the pack
52
+ test: /\.rb$/,
53
+ use: [
54
+ {
55
+ loader: 'opal-webpack-bundler',
56
+ options: {
57
+ useBundler: true,
58
+ paths: [path.resolve(__dirname), path.resolve(__dirname, 'lib')],
59
+ sourceMap: false,
60
+ root: path.resolve(__dirname)
61
+ }
62
+ }
63
+ ]
64
+ }
65
+ );
66
+ }
67
+
68
+ return config;
69
+ };
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: 2.0.0
4
+ version: 2.1.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: 2020-03-24 00:00:00.000000000 Z
11
+ date: 2020-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gamefic
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.0.2
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +27,9 @@ dependencies:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
29
  version: '2.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.0.2
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: gamefic-standard
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -45,6 +51,9 @@ dependencies:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
53
  version: '2.0'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 2.0.1
48
57
  type: :runtime
49
58
  prerelease: false
50
59
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,6 +61,9 @@ dependencies:
52
61
  - - "~>"
53
62
  - !ruby/object:Gem::Version
54
63
  version: '2.0'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 2.0.1
55
67
  - !ruby/object:Gem::Dependency
56
68
  name: listen
57
69
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +168,14 @@ dependencies:
156
168
  requirements:
157
169
  - - "~>"
158
170
  - !ruby/object:Gem::Version
159
- version: '10.0'
171
+ version: '13.0'
160
172
  type: :development
161
173
  prerelease: false
162
174
  version_requirements: !ruby/object:Gem::Requirement
163
175
  requirements:
164
176
  - - "~>"
165
177
  - !ruby/object:Gem::Version
166
- version: '10.0'
178
+ version: '13.0'
167
179
  - !ruby/object:Gem::Dependency
168
180
  name: rspec
169
181
  requirement: !ruby/object:Gem::Requirement
@@ -213,7 +225,18 @@ executables:
213
225
  extensions: []
214
226
  extra_rdoc_files: []
215
227
  files:
228
+ - ".gitignore"
229
+ - ".rspec"
230
+ - ".travis.yml"
231
+ - CHANGELOG.md
232
+ - Gemfile
233
+ - LICENSE.txt
234
+ - README.md
235
+ - Rakefile
236
+ - bin/console
216
237
  - bin/gamefic
238
+ - bin/setup
239
+ - gamefic-sdk.gemspec
217
240
  - lib/gamefic-sdk.rb
218
241
  - lib/gamefic-sdk/diagram.rb
219
242
  - lib/gamefic-sdk/scaffold.rb
@@ -224,6 +247,27 @@ files:
224
247
  - lib/gamefic-sdk/tasks/ruby.rb
225
248
  - lib/gamefic-sdk/tasks/web.rb
226
249
  - lib/gamefic-sdk/version.rb
250
+ - scaffolds/library/Gemfile
251
+ - scaffolds/library/__name__.gemspec.gf.erb
252
+ - scaffolds/library/lib/__name__.rb
253
+ - scaffolds/project/.gitignore
254
+ - scaffolds/project/Gemfile
255
+ - scaffolds/project/Rakefile
256
+ - scaffolds/project/main.rb.gf.erb
257
+ - scaffolds/react/.babelrc
258
+ - scaffolds/react/package.json.gf.erb
259
+ - scaffolds/react/web/public/index.html.gf.erb
260
+ - scaffolds/react/web/src/driver/development.js
261
+ - scaffolds/react/web/src/driver/opal.rb
262
+ - scaffolds/react/web/src/driver/production.js
263
+ - scaffolds/react/web/src/index.js
264
+ - scaffolds/react/web/src/scenes/ActivityScene.jsx
265
+ - scaffolds/react/web/src/scenes/ConclusionScene.jsx
266
+ - scaffolds/react/web/src/scenes/MultipleChoiceScene.jsx
267
+ - scaffolds/react/web/src/scenes/PauseScene.jsx
268
+ - scaffolds/react/web/src/scenes/index.js
269
+ - scaffolds/react/web/src/style.css
270
+ - scaffolds/react/webpack.config.js
227
271
  homepage: http://gamefic.com
228
272
  licenses:
229
273
  - MIT
@@ -243,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
287
  - !ruby/object:Gem::Version
244
288
  version: '0'
245
289
  requirements: []
246
- rubygems_version: 3.0.3
290
+ rubygems_version: 3.1.2
247
291
  signing_key:
248
292
  specification_version: 4
249
293
  summary: Gamefic SDK