gamefic-sdk 3.4.1 → 4.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.
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