gamefic-numerical 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d0fbe262efe602bd73040d53e61fe41a53ccd14193eda052c2afc0ce3c9dc779
4
+ data.tar.gz: 767a7c6df9426b99c431230ebcfee540f5046696ecd2f35a8f0658148a4e0304
5
+ SHA512:
6
+ metadata.gz: b9b9194671d6e4b084595a7ac767c93cf5a0ef56af2af00d93fcf6980ea68799c0e5c4bb5be70c434b287ac2a2da8bf1faa7113f63bd3ebf7c3d1e37c6072dff
7
+ data.tar.gz: 547149cfe1476e4d2b7ad6d1cfa4f1704d29fdc054c7da17d2051761f125c5aa89af561bc1b88015a2abe2b8376191921ee4c5d1b21c25e9d90c7cea9679daa5
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/CHANGELOG.md ADDED
@@ -0,0 +1,2 @@
1
+ # 0.1.0 - August 2, 2025
2
+ - First release
data/README.md ADDED
@@ -0,0 +1,53 @@
1
+ # gamefic-numerical
2
+
3
+ A Gamefic extension to enable text representations of numbers.
4
+
5
+ ## Installation
6
+
7
+ Add the gem to your Gamefic project's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'gamefic-numerical'
11
+ ```
12
+
13
+ Require the gem in your project, e.g., in `main.rb`:
14
+
15
+ ```ruby
16
+ require 'gamefic-numerical'
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ The gem adds a `numerical` query that you can use in response arguments. Numbers passed into the command will be converted to integers.
22
+
23
+ Example code:
24
+
25
+ ```ruby
26
+ class MyPlot < Gamefic::Plot
27
+ respond :count, numerical do |actor, number|
28
+ actor.tell "You count to #{number}."
29
+ end
30
+
31
+ interpret 'count to :number', 'count :number'
32
+ end
33
+ ```
34
+
35
+ Example gameplay:
36
+
37
+ > count a hundred
38
+
39
+ You count to 100.
40
+
41
+ > count to ten
42
+
43
+ You count to 10.
44
+
45
+ ## Development
46
+
47
+ 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.
48
+
49
+ 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 the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
50
+
51
+ ## Contributing
52
+
53
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/gamefic-numerical.
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/setup'
4
+ require 'bundler/gem_tasks'
5
+ require 'rspec/core/rake_task'
6
+ require 'opal/rspec/rake_task'
7
+
8
+ RSpec::Core::RakeTask.new(:spec)
9
+
10
+ task default: :spec
11
+
12
+ Opal::RSpec::RakeTask.new(:opal) do |_, config|
13
+ Opal.append_path File.join(__dir__, 'lib')
14
+ Opal.use_gem('gamefic')
15
+ Opal.use_gem('castwide_numbers_in_words')
16
+ config.default_path = 'spec'
17
+ config.pattern = 'spec/**/*_spec.rb'
18
+ config.requires = ['opal_helper']
19
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gamefic
4
+ module Numerical
5
+ VERSION = '0.1.0'
6
+ end
7
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'gamefic'
4
+ require 'numbers_in_words'
5
+ require_relative 'numerical/version'
6
+
7
+ module Gamefic
8
+ module Query
9
+ class Numerical < Integer
10
+ def filter(_subject, token)
11
+ words = token.keywords
12
+ numericals = []
13
+ while (word = words.shift)
14
+ compressed = NumbersInWords.in_numbers(word, only_compress: true)
15
+ if compressed == []
16
+ words.unshift(word)
17
+ break
18
+ end
19
+
20
+ numericals.push word
21
+ end
22
+ return super if numericals.empty?
23
+
24
+ Result.new(NumbersInWords.in_numbers(numericals.join(' ')), words.join(''))
25
+ end
26
+ end
27
+ end
28
+
29
+ module Scriptable
30
+ module Queries
31
+ def numerical
32
+ Query::Numerical.new name: 'numerical'
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'gamefic/numerical'
metadata ADDED
@@ -0,0 +1,166 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gamefic-numerical
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Fred Snyder
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: castwide_numbers_in_words
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: gamefic
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '4.1'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '4.1'
40
+ - !ruby/object:Gem::Dependency
41
+ name: opal
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.7'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.7'
54
+ - !ruby/object:Gem::Dependency
55
+ name: opal-rspec
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: opal-sprockets
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rake
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '13.2'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '13.2'
96
+ - !ruby/object:Gem::Dependency
97
+ name: rspec
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.5'
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 3.5.0
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '3.5'
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 3.5.0
116
+ - !ruby/object:Gem::Dependency
117
+ name: simplecov
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '0.14'
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '0.14'
130
+ email:
131
+ - fsnyder@gamefic.com
132
+ executables: []
133
+ extensions: []
134
+ extra_rdoc_files: []
135
+ files:
136
+ - ".rspec"
137
+ - CHANGELOG.md
138
+ - README.md
139
+ - Rakefile
140
+ - lib/gamefic-numerical.rb
141
+ - lib/gamefic/numerical.rb
142
+ - lib/gamefic/numerical/version.rb
143
+ homepage: https://gamefic.com
144
+ licenses: []
145
+ metadata:
146
+ homepage_uri: https://gamefic.com
147
+ source_code_uri: https://github.com/castwide/gamefic-numerical
148
+ changelog_uri: https://github.com/castwide/gamefic-numerical/blob/main/CHANGELOG.md
149
+ rdoc_options: []
150
+ require_paths:
151
+ - lib
152
+ required_ruby_version: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 2.7.0
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ requirements: []
163
+ rubygems_version: 3.6.7
164
+ specification_version: 4
165
+ summary: A Gamefic extension to enable text representations of numbers.
166
+ test_files: []