gamefic-sdk 3.4.1 → 4.0.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: b6724535e5c600a5e86b993fff074b81e7ca69ef47c2e567fae0cb2168fe754e
4
- data.tar.gz: 31832d5ad5de7d98c15e71e9cb37f240a6221a67e1d5bf9b11cb07f05c357da6
3
+ metadata.gz: 66928c52768935fd573b3197ef5cab278caab9be2a9403b6757e1cafaba447eb
4
+ data.tar.gz: 97cf597c70e442ae729775f78eee9ded4ce96584d2d3b1d6f26cbc225313ca84
5
5
  SHA512:
6
- metadata.gz: 7af5ca16d5031458c11779056fa863f99fd8590680865d4c65066339104595a1a0513f7da703758d59d6045c5a8c0c37252bf34e97af9f8ce8f64d960d08dbbd
7
- data.tar.gz: 288de06cb0c448613ec71e637e076bc77fb57eecea54fa048c2cd52ad8af7b9c04cd8ae76cfec2a19f8cede65ba55d92b4f8cb3638ba338cbf39daed3d810bae
6
+ metadata.gz: 4fc8a13d6275eea7f4bab96943c696429b8424e018bbb3e0f17e333c221fe6622e32a5b2c128b5010d336dba5c8211a58d5be135a1b2573009bcb29576b6852a
7
+ data.tar.gz: 5b405dc2386134af6827546b7feb2d837e2f647cc66263ca2504e609a92b80ed470296787c78d86ce72156f510588aa2a3b4c3fd09c484e9113573ba2fbe02b7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 4.0.0 - January 25, 2025
2
+ - Update to Gamefic 4.0
3
+ - Project and library subcommands
4
+ - Autoloading in projects
5
+
1
6
  ## 3.4.1 - October 20, 2024
2
7
  - Fix project UUID
3
8
 
data/README.md CHANGED
@@ -43,32 +43,24 @@ something like this:
43
43
  ```ruby
44
44
  module Example
45
45
  class Plot < Gamefic::Plot
46
- UUID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
46
+ include Shared
47
47
 
48
- include Gamefic::Standard
49
-
50
- script do
51
- introduction do |actor|
52
- actor.tell "Hello, world!"
53
- end
48
+ introduction do |actor|
49
+ actor.tell "Hello, world!"
54
50
  end
55
51
  end
56
52
  end
57
53
  ```
58
54
 
59
- `UUID` is a globally unique identifier. It can be useful if you want to
60
- add your game to online catalogs, such as the [Interactive Fiction Database](https://ifdb.tads.org/),
61
- but it's safe to delete if you don't need it.
55
+ The `Shared` module (`lib/example/shared.rb`) handles importing `Gamefic::Standard` into plots,
56
+ subplots, and chapters.
62
57
 
63
- ['gamefic-standard'](https://github.com/castwide/gamefic-standard) is a collection
58
+ ['Gamefic::Standard'](https://github.com/castwide/gamefic-standard) is a collection
64
59
  of baseline features that are frequently useful for interactive fiction. [Inform](http://inform7.com/)
65
60
  developers should find it similar to Inform's Standard Rules. It defines common
66
61
  components like Rooms and Characters, along with in-game commands like `GO`,
67
62
  `GET`, and `DROP` to enable basic interactivity.
68
63
 
69
- `script` is where you write the story itself. In the starter project,
70
- the only thing in the script is an introductory message.
71
-
72
64
  ### Modifying the Script
73
65
 
74
66
  Replace the contents of `plot.rb` with the following:
@@ -76,23 +68,16 @@ Replace the contents of `plot.rb` with the following:
76
68
  ```ruby
77
69
  module Example
78
70
  class Plot < Gamefic::Plot
79
- UUID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
71
+ include Shared
80
72
 
81
- include Gamefic::Standard
82
-
83
- seed do
84
- @living_room = make Room, name: 'living room', description: 'This is your living room.'
85
- @bedroom = make Room, name: 'bedroom', description: 'This is your bedroom.'
86
- connect @living_room, @bedroom, 'north'
87
- @backpack = make Room, name: 'backpack', description: 'Your trusty backpack.', parent: @bedroom
88
- @book = make Room, name: 'book', description: 'Your favorite novel.', parent: @living_room
89
- end
73
+ construct :living_room, Room, name: 'living room', description: 'This is your living room.'
74
+ construct :bedroom, Room, name: 'bedroom', description: 'This is your bedroom.', south: living_room
75
+ construct :backpack, Item, name: 'backpack', description: 'Your trusty backpack.', parent: bedroom
76
+ construct :book, Item, name: 'book', description: 'Your favorite novel.', parent: living_room
90
77
 
91
- script do
92
- introduction do |actor|
93
- actor.parent = @living_room
94
- actor.tell "You're in your house."
95
- end
78
+ introduction do |actor|
79
+ actor.parent = living_room
80
+ actor.tell "You're in your house."
96
81
  end
97
82
  end
98
83
  end
@@ -126,7 +111,7 @@ $ rake web:build
126
111
  ```
127
112
 
128
113
  The game's HTML file and related assets will be generated in the
129
- `web/build` directory. The SDK uses opal](https://github.com/opal/opal)
114
+ `web/build` directory. The SDK uses [Opal](https://github.com/opal/opal)
130
115
  to compile Ruby code to JavaScript, so the web build does not require a
131
116
  Ruby interpreter. Open `index.html` in a browser to play the game.
132
117
 
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task :default => :spec
1
+ require 'bundler/setup'
2
+ require 'bundler/gem_tasks'
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task default: :spec
data/gamefic-sdk.gemspec CHANGED
@@ -28,19 +28,21 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.required_ruby_version = '>= 2.7.0'
30
30
 
31
- spec.add_runtime_dependency 'gamefic', '~> 3.4'
32
- spec.add_runtime_dependency 'gamefic-standard', '~> 3.0'
33
- spec.add_runtime_dependency 'gamefic-tty', '~> 3.0'
31
+ spec.add_runtime_dependency 'gamefic', '~> 4.0'
32
+ spec.add_runtime_dependency 'gamefic-standard', '~> 4.0'
33
+ spec.add_runtime_dependency 'gamefic-tty', '~> 4.0'
34
34
  spec.add_runtime_dependency 'listen', '~> 3.0'
35
35
  spec.add_runtime_dependency 'opal', '~> 1.1'
36
+ spec.add_runtime_dependency 'opal-rspec', '~> 1.0'
37
+ spec.add_runtime_dependency 'opal-sprockets', '~> 1.0'
36
38
  spec.add_runtime_dependency 'puma', '~> 6'
39
+ spec.add_runtime_dependency 'rake', '~> 13.0'
40
+ spec.add_runtime_dependency 'rspec', '~> 3.0'
37
41
  spec.add_runtime_dependency 'sinatra', '~> 2'
38
42
  spec.add_runtime_dependency 'thor', '~> 1.0'
39
43
 
40
44
  spec.add_development_dependency 'bundler', '~> 2.0'
41
45
  spec.add_development_dependency 'capybara', '~> 3.3'
42
- spec.add_development_dependency 'rake', '~> 13.0'
43
- spec.add_development_dependency 'rspec', '~> 3.0'
44
46
  spec.add_development_dependency 'selenium-webdriver', '~> 4.2'
45
47
  spec.add_development_dependency 'simplecov', '~> 0.14'
46
48
  end
@@ -21,6 +21,18 @@ module Gamefic
21
21
  def get_binding
22
22
  binding
23
23
  end
24
+
25
+ def render_autoloader
26
+ if name.include?('-')
27
+ <<~CODE
28
+ Gamefic::Autoload.setup(__dir__) do |loader|
29
+ loader.inflector.inflect('#{name}' => '#{camelcase(name)}')
30
+ end
31
+ CODE
32
+ else
33
+ 'Gamefic::Autoload.setup(__dir__)'
34
+ end
35
+ end
24
36
  end
25
37
 
26
38
  module_function
@@ -4,7 +4,7 @@ module Gamefic
4
4
  module Sdk
5
5
  class Shell < Thor
6
6
  map %w[--version -v] => :version
7
- map [:create, :new] => :init
7
+ map %i[create new init] => :project
8
8
 
9
9
  desc "--version, -v", "Print the version"
10
10
  def version
@@ -12,30 +12,18 @@ module Gamefic
12
12
  puts "gamefic #{Gamefic::VERSION}"
13
13
  end
14
14
 
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'
15
+ desc 'project DIRECTORY_NAME', 'Create a new project in DIRECTORY_NAME'
17
16
  option :specs, type: :boolean, desc: 'Add RSpec and Opal::RSpec test suites', default: true
18
- def init(directory_name)
19
- scaffold = options[:gem] ? 'library' : 'project'
20
- Gamefic::Sdk::Scaffold.build scaffold, directory_name, specs: options[:specs]
17
+ option :autoloader, type: :boolean, desc: 'Include autoloader', default: true
18
+ def project(directory_name)
19
+ Gamefic::Sdk::Scaffold.build 'project', directory_name, **options
21
20
  puts "Gamefic project initialized at #{File.realpath(directory_name)}"
22
21
  end
23
22
 
24
- desc 'diagram TYPE', 'Get diagram data'
25
- long_desc %(
26
- SDK "diagrams" are datasets that can be used in analysis tools and
27
- graphical data representations. The dataset is provided in JSON
28
- format.
29
-
30
- The diagram types are entities, rooms, actions, verbs, syntaxes, and commands.
31
- )
32
- option :directory, type: :string, aliases: :d, desc: 'The project directory', default: '.'
33
- def diagram type
34
- main = Pathname.new(options[:directory]).join('main.rb').realpath.to_s
35
- require_relative main
36
- plot = Gamefic::Plot.new
37
- diagram = Gamefic::Sdk::Diagram.new(plot)
38
- puts diagram.get(type).to_json
23
+ desc 'library DIRECTORY_NAME', 'Create a new library in DIRECTORY_NAME'
24
+ def library(directory_name)
25
+ Gamefic::Sdk::Scaffold.build 'library', directory_name
26
+ puts "Gamefic library initialized at #{FIle.realpath(directory_name)}"
39
27
  end
40
28
  end
41
29
  end
@@ -11,7 +11,7 @@ module Gamefic
11
11
  module Common
12
12
  attr_reader :directory
13
13
 
14
- def initialize directory = '.'
14
+ def initialize(directory = '.')
15
15
  @directory = directory
16
16
  end
17
17
 
@@ -23,7 +23,7 @@ module Gamefic
23
23
  GAMEFIC_PLOT_CLASS
24
24
  end
25
25
 
26
- def string_to_constant string
26
+ def string_to_constant(string)
27
27
  space = Object
28
28
  string.split('::').each do |part|
29
29
  space = space.const_get(part)
@@ -44,25 +44,27 @@ module Gamefic
44
44
 
45
45
  private
46
46
 
47
- def append_gem name
47
+ def append_gem(name)
48
48
  result = {}
49
49
  # @type [Gem::Specification]
50
50
  spec = Gem::Specification.find_by_name(name)
51
51
  spec.lib_files.each do |path|
52
52
  full = File.join(spec.full_gem_path, path)
53
53
  raise LoadError, "Unable to package gem file `#{path}`" unless File.file?(full)
54
- rel = full.sub(/^(#{spec.load_paths.join('|')})\//, '')
54
+
55
+ rel = full.sub(%r{^(#{spec.load_paths.join('|')})/}, '')
55
56
  result[rel] = full
56
57
  end
57
58
  result
58
59
  end
59
60
 
60
- def relativize path
61
- return { path[absolute_path.length+1..-1] => path } if path.start_with?(absolute_path)
61
+ def relativize(path)
62
+ return { path[absolute_path.length + 1..-1] => path } if path.start_with?(absolute_path)
63
+
62
64
  # @param spec [Gem::Specification]
63
65
  Gem::Specification.each do |spec|
64
66
  spec.load_paths.each do |lib_path|
65
- return { path[lib_path.length+1..-1] => path } if path.start_with?(lib_path)
67
+ return { path[lib_path.length + 1..-1] => path } if path.start_with?(lib_path)
66
68
  end
67
69
  end
68
70
  raise LoadError, "Unable to package loaded path `#{path}`"
@@ -12,15 +12,38 @@ module Gamefic
12
12
 
13
13
  # Generate a web app using NPM.
14
14
  #
15
- def generate version = '@1.6.1'
15
+ def generate(version = nil)
16
+ version ||= '@latest'
16
17
  puts "Node version #{check_for_npm} detected. Preparing the web app..."
17
18
  web_path = File.join(absolute_path, 'web')
18
19
  FileUtils.mkdir_p web_path
19
20
  Dir.chdir web_path do
20
- name = File.basename(absolute_path)
21
- system 'npx', '-y', "react-gamefic#{version}", '--name', name, '--class', 'GAMEFIC_PLOT_CLASS', '--path', '../lib'
22
- puts 'The web app is ready.'
23
- puts 'Run `rake web:run` to start the app in dev mode.'
21
+ system 'npx', '-y', "react-gamefic#{version}", '--name', File.basename(absolute_path),
22
+ '--class', 'GAMEFIC_PLOT_CLASS', '--path', '../lib'
23
+ end
24
+ autoload
25
+ puts 'The web app is ready.', 'Run `rake web:run` to start the app in dev mode.'
26
+ end
27
+
28
+ # Generate the autoload.rb file for Opal builds.
29
+ #
30
+ def autoload
31
+ require_relative File.join(absolute_path, 'main')
32
+ if defined?(Gamefic::Autoload)
33
+ require 'gamefic-autoload'
34
+ puts 'Generating autoload.rb file for Opal'
35
+ autoload_path = File.join(absolute_path, 'autoload.rb')
36
+ autoload_file = <<~FILE
37
+ # frozen_string_literal: true
38
+
39
+ # This file is automatically generated by the Gamefic SDK. Opal uses it to build
40
+ # the project in accordance with its Gamefic::Autoload configuration.
41
+
42
+ #{Gamefic::Autoload.encode_all.join("\n")}
43
+ FILE
44
+ File.write(autoload_path, autoload_file)
45
+ else
46
+ puts 'Skipping autoload.rb (Gamefic::Autoload is not enabled)'
24
47
  end
25
48
  end
26
49
 
@@ -28,6 +51,7 @@ module Gamefic
28
51
  #
29
52
  def run
30
53
  check_for_web_build
54
+ autoload
31
55
  Dir.chdir File.join(absolute_path, 'web') do
32
56
  system 'npm start'
33
57
  end
@@ -37,6 +61,7 @@ module Gamefic
37
61
  #
38
62
  def build
39
63
  check_for_web_build
64
+ autoload
40
65
  Dir.chdir File.join(absolute_path, 'web') do
41
66
  system 'npm run build'
42
67
  end
@@ -1,6 +1,9 @@
1
+ require 'bundler'
1
2
  require 'rubygems'
2
3
  require 'gamefic-sdk'
3
4
  require 'rake'
5
+ require 'rspec/core/rake_task'
6
+ require 'opal/rspec/rake_task'
4
7
 
5
8
  module Gamefic::Sdk::Tasks
6
9
  autoload :Common, 'gamefic-sdk/tasks/common'
@@ -9,7 +12,12 @@ module Gamefic::Sdk::Tasks
9
12
 
10
13
  module_function
11
14
 
12
- def define_all
15
+ def define_all_tasks
16
+ define_build_tasks
17
+ define_spec_tasks
18
+ end
19
+
20
+ def define_build_tasks
13
21
  define_task 'ruby:run', 'Run a Ruby CLI app' do
14
22
  Ruby.new.run
15
23
  end
@@ -28,6 +36,24 @@ module Gamefic::Sdk::Tasks
28
36
  define_task 'web:build', 'Build a distributable web app' do
29
37
  Web.new.build
30
38
  end
39
+
40
+ define_task 'web:autoload', 'Generate autoload.rb for Opal' do
41
+ Web.new.autoload
42
+ end
43
+ end
44
+
45
+ def define_spec_tasks
46
+ RSpec::Core::RakeTask.new(:spec)
47
+
48
+ Opal::RSpec::RakeTask.new(:opal) do |_, config|
49
+ Bundler.definition
50
+ .dependencies_for([:default])
51
+ .each { |dep| Opal.use_gem dep.name }
52
+ Opal.append_path '.'
53
+ Opal.append_path File.join('.', 'lib')
54
+ config.pattern = 'spec/**/*_spec.rb'
55
+ config.requires = ['spec/opal_helper']
56
+ end.rake_task.prerequisites.push 'web:autoload'
31
57
  end
32
58
 
33
59
  def define_task(name, desc, &block)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gamefic
4
4
  module Sdk
5
- VERSION = '3.4.1'
5
+ VERSION = '4.0.0'
6
6
  end
7
7
  end
@@ -1,13 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source "https://rubygems.org"
3
+ source 'https://rubygems.org'
4
4
 
5
- gem 'gamefic'
6
- gem 'gamefic-standard'
5
+ base = 'D:/fsnyd/Documents/code/gamefic'
6
+
7
+ gem 'gamefic', path: "#{base}/gamefic"
8
+ gem 'gamefic-standard', path: "#{base}/gamefic-standard"
9
+ gem 'gamefic-what', path: "#{base}/gamefic-what" # @todo Remove this line
10
+ <% if autoloader -%>gem 'gamefic-autoload', path: "#{base}/gamefic-autoload"<% end %>
7
11
 
8
12
  group :development do
9
- gem 'gamefic-sdk'
10
- gem 'gamefic-tty'
13
+ gem 'gamefic-sdk', path: "#{base}/gamefic-sdk"
14
+ gem 'gamefic-tty', path: "#{base}/gamefic-tty"
11
15
  <% if specs -%>
12
16
  gem 'opal-rspec'
13
17
  gem 'opal-sprockets'
@@ -3,19 +3,8 @@
3
3
  require 'bundler'
4
4
  require 'bundler/setup'
5
5
  require 'gamefic-sdk'
6
- require 'opal/rspec/rake_task'
7
6
 
8
7
  # Add the default Gamefic tasks for building and running games
9
8
  # Run `rake --tasks` for a list of commands and descriptions
10
- Gamefic::Sdk::Tasks.define_all
11
- <% if specs %>
12
- Opal::RSpec::RakeTask.new(:opal) do |_, config|
13
- Bundler.definition
14
- .dependencies_for([:default])
15
- .each { |dep| Opal.use_gem dep.name }
16
- Opal.append_path File.join(__dir__, 'lib')
17
- config.default_path = 'spec'
18
- config.pattern = 'spec/**/*_spec.rb'
19
- config.requires = ['opal_helper']
20
- end
21
- <% end %>
9
+ Gamefic::Sdk::Tasks.define_build_tasks
10
+ <%- if specs -%>Gamefic::Sdk::Tasks.define_spec_tasks<% end %>
@@ -7,6 +7,6 @@ module <%= camelcase(name) %>
7
7
  # the plot.
8
8
  #
9
9
  class Chapter < Gamefic::Chapter
10
- include Common
10
+ include Shared
11
11
  end
12
12
  end
@@ -4,7 +4,7 @@ module <%= camelcase(name) %>
4
4
  # The main plot.
5
5
  #
6
6
  class Plot < Gamefic::Plot
7
- include Common
7
+ include Shared
8
8
 
9
9
  introduction do |actor|
10
10
  actor.tell "Hello, world!"
@@ -4,7 +4,7 @@ module <%= camelcase(name) %>
4
4
  # A single container for modules that are shared among plots, chapters, and
5
5
  # subplots.
6
6
  #
7
- module Common
7
+ module Shared
8
8
  extend Gamefic::Scriptable
9
9
 
10
10
  include Gamefic::Standard
@@ -7,6 +7,6 @@ module <%= camelcase(name) %>
7
7
  # branch.
8
8
  #
9
9
  class Subplot < Gamefic::Subplot
10
- include Common
10
+ include Shared
11
11
  end
12
12
  end
@@ -2,12 +2,18 @@
2
2
 
3
3
  require 'gamefic'
4
4
  require 'gamefic-standard'
5
+ <% if autoloader -%>require 'gamefic-autoload'<% end %>
6
+ <% if autoloader -%>require 'autoload' if RUBY_ENGINE == 'opal'<% end %>
5
7
 
6
8
  module <%= camelcase(name) %>
7
9
  UUID = '<%= SecureRandom.uuid %>'
8
10
 
9
- require '<%= name %>/common'
11
+ <% if autoloader -%>
12
+ <%= render_autoloader -%>
13
+ <% else -%>
14
+ require '<%= name %>/shared'
10
15
  require '<%= name %>/chapter'
11
16
  require '<%= name %>/plot'
12
17
  require '<%= name %>/subplot'
18
+ <% end -%>
13
19
  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: 3.4.1
4
+ version: 4.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: 2024-10-20 00:00:00.000000000 Z
11
+ date: 2025-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gamefic
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.4'
19
+ version: '4.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: '3.4'
26
+ version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gamefic-standard
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.0'
33
+ version: '4.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.0'
40
+ version: '4.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: gamefic-tty
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '4.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: '4.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: listen
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: opal-rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: opal-sprockets
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
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'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: puma
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -95,89 +123,89 @@ dependencies:
95
123
  - !ruby/object:Gem::Version
96
124
  version: '6'
97
125
  - !ruby/object:Gem::Dependency
98
- name: sinatra
126
+ name: rake
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - "~>"
102
130
  - !ruby/object:Gem::Version
103
- version: '2'
131
+ version: '13.0'
104
132
  type: :runtime
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
- version: '2'
138
+ version: '13.0'
111
139
  - !ruby/object:Gem::Dependency
112
- name: thor
140
+ name: rspec
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
143
  - - "~>"
116
144
  - !ruby/object:Gem::Version
117
- version: '1.0'
145
+ version: '3.0'
118
146
  type: :runtime
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - "~>"
123
151
  - !ruby/object:Gem::Version
124
- version: '1.0'
152
+ version: '3.0'
125
153
  - !ruby/object:Gem::Dependency
126
- name: bundler
154
+ name: sinatra
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - "~>"
130
158
  - !ruby/object:Gem::Version
131
- version: '2.0'
132
- type: :development
159
+ version: '2'
160
+ type: :runtime
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - "~>"
137
165
  - !ruby/object:Gem::Version
138
- version: '2.0'
166
+ version: '2'
139
167
  - !ruby/object:Gem::Dependency
140
- name: capybara
168
+ name: thor
141
169
  requirement: !ruby/object:Gem::Requirement
142
170
  requirements:
143
171
  - - "~>"
144
172
  - !ruby/object:Gem::Version
145
- version: '3.3'
146
- type: :development
173
+ version: '1.0'
174
+ type: :runtime
147
175
  prerelease: false
148
176
  version_requirements: !ruby/object:Gem::Requirement
149
177
  requirements:
150
178
  - - "~>"
151
179
  - !ruby/object:Gem::Version
152
- version: '3.3'
180
+ version: '1.0'
153
181
  - !ruby/object:Gem::Dependency
154
- name: rake
182
+ name: bundler
155
183
  requirement: !ruby/object:Gem::Requirement
156
184
  requirements:
157
185
  - - "~>"
158
186
  - !ruby/object:Gem::Version
159
- version: '13.0'
187
+ version: '2.0'
160
188
  type: :development
161
189
  prerelease: false
162
190
  version_requirements: !ruby/object:Gem::Requirement
163
191
  requirements:
164
192
  - - "~>"
165
193
  - !ruby/object:Gem::Version
166
- version: '13.0'
194
+ version: '2.0'
167
195
  - !ruby/object:Gem::Dependency
168
- name: rspec
196
+ name: capybara
169
197
  requirement: !ruby/object:Gem::Requirement
170
198
  requirements:
171
199
  - - "~>"
172
200
  - !ruby/object:Gem::Version
173
- version: '3.0'
201
+ version: '3.3'
174
202
  type: :development
175
203
  prerelease: false
176
204
  version_requirements: !ruby/object:Gem::Requirement
177
205
  requirements:
178
206
  - - "~>"
179
207
  - !ruby/object:Gem::Version
180
- version: '3.0'
208
+ version: '3.3'
181
209
  - !ruby/object:Gem::Dependency
182
210
  name: selenium-webdriver
183
211
  requirement: !ruby/object:Gem::Requirement
@@ -248,8 +276,8 @@ files:
248
276
  - scaffolds/project/Rakefile.gf.erb
249
277
  - scaffolds/project/lib/__name__.rb.gf.erb
250
278
  - scaffolds/project/lib/__name__/chapter.rb.gf.erb
251
- - scaffolds/project/lib/__name__/common.rb.gf.erb
252
279
  - scaffolds/project/lib/__name__/plot.rb.gf.erb
280
+ - scaffolds/project/lib/__name__/shared.rb.gf.erb
253
281
  - scaffolds/project/lib/__name__/subplot.rb.gf.erb
254
282
  - scaffolds/project/main.rb.gf.erb
255
283
  - scaffolds/project/spec/__name__/plot_spec.rb.gf.erb