ryo.rb 0.5.0 → 0.5.2

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: 63de7b5fef56bfd65a818a1ee0b37617f90778c51f53688fa603c76b25bbfd47
4
- data.tar.gz: 574f61630e3e966f85a73e149250741807ee0bebef9d69dd072a5e612eeabe3d
3
+ metadata.gz: 9ad842754d7d2a619c1fd552527e519b41ddf36f704c7d4b02f2f367b0f2ee1d
4
+ data.tar.gz: 2457cc1cf78cfb725b8f35c5c0a4cce01c35896f0a3ed0ac32a19faeb45b0177
5
5
  SHA512:
6
- metadata.gz: 6e5fdc169813d8ac506f06a3d5cf3adeeda8b693d4dedd8a85d0944405107579c5fdf10d1a3b21729cba5a20c244c94b32794d797ceb2f1408ff97b4ad37e271
7
- data.tar.gz: 01dc1c068bc3c565d90b4662678e9bd7d59a508488c80bbcfcf09652f481a7a4df4fb779c50683440ebff5615c7ac6b138712298a5e99f7abf8859f1dd7f55d8
6
+ metadata.gz: 9cc4d227f2a157b112ae5ae3275062e5ba1b1241d9122c89341859a342d05d558abf4f89bed034a629a5f4f9cda966a47e794f22e9e3fede8e136a758fcd2a1c
7
+ data.tar.gz: f513c798461f72270fa247cc927591ae1ec26dd3e0d9606ea7bf81936063fa0026847699f6d233c93505dc891e1111560cbbd7a53d019e0fb033166d58d036a1
data/Gemfile CHANGED
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  source "https://rubygems.org"
4
- gem "test-cmd.rb", github: "0x1eef/test-cmd.rb", tag: "v0.4.0"
5
4
  gemspec
data/README.md CHANGED
@@ -2,13 +2,6 @@
2
2
 
3
3
  Ryo implements prototype-based inheritance, in Ruby.
4
4
 
5
- Ryo's implementation of prototype-based inheritance offers
6
- a flexible approach for establishing object relationships,
7
- and building configuration objects. Ryo can also act as a
8
- recursive OpenStruct alternative. JavaScript's implementation of
9
- prototype-based inheritance served as a reference point
10
- for Ryo's implementation.
11
-
12
5
  ## Examples
13
6
 
14
7
  ### Prototypes
@@ -308,7 +301,7 @@ p ryo.then { 34 } # => 34
308
301
  #### Duck typing
309
302
 
310
303
  The documentation has used simple terms to describe the objects that Ryo works
311
- with: Hash and Array objects. But actually, Ryo uses duck typing, so any object
304
+ with: Hash and Array objects. But in reality, Ryo uses duck typing, so any object
312
305
  that implements `#each_pair` can be treated as a Hash object, and any object that
313
306
  implements `#each` can be treated as an Array object. Note that only
314
307
  [Ryo.from](https://0x1eef.github.io/x/ryo.rb/Ryo.html#from-class_method),
@@ -340,41 +333,27 @@ p point.x # => 5
340
333
  p point.y # => 10
341
334
  ```
342
335
 
343
- ## Sources
344
-
345
- * [Source code (GitHub)](https://github.com/0x1eef/ryo.rb#readme)
346
- * [Source code (GitLab)](https://gitlab.com/0x1eef/ryo.rb#about)
347
-
348
- ## <a id='install'>Install</a>
349
-
350
- **Git**
351
-
352
- Ryo is distributed as a RubyGem through its git repositories. <br>
353
- [GitHub](https://github.com/0x1eef/ryo.rb),
354
- and
355
- [GitLab](https://gitlab.com/0x1eef/ryo.rb)
356
- are available as sources.
357
-
358
- ```ruby
359
- # Gemfile
360
- gem "ryo.rb", github: "0x1eef/ryo.rb", tag: "v0.4.7"
361
- ```
336
+ ## Install
362
337
 
363
338
  **Rubygems.org**
364
339
 
365
- Ryo can also be installed via rubygems.org.
340
+ Ryo can be installed via rubygems.org:
366
341
 
367
342
  gem install ryo.rb
368
343
 
344
+ ## Sources
345
+
346
+ * [GitHub](https://github.com/0x1eef/ryo.rb#readme)
347
+ * [GitLab](https://gitlab.com/0x1eef/ryo.rb#about)
348
+
369
349
  ## Thanks
370
350
 
371
351
  Thanks to
372
352
  [@awfulcooking (mooff)](https://github.com/awfulcooking)
373
- for the helpful discussions and advice.
353
+ for the helpful discussions, ideas, and advice
374
354
 
375
355
  ## License
376
356
 
377
- [BSD Zero Clause](https://choosealicense.com/licenses/0bsd/).
357
+ [BSD Zero Clause](https://choosealicense.com/licenses/0bsd/)
378
358
  <br>
379
- See [LICENSE](./LICENSE).
380
-
359
+ See [LICENSE](./LICENSE)
data/lib/ryo/builder.rb CHANGED
@@ -26,7 +26,7 @@ module Ryo::Builder
26
26
  # returned in its place.
27
27
  def self.build(buildee, props, prototype = nil)
28
28
  if Ryo.ryo?(props)
29
- build(builedee, Ryo.table_of(props), prototype || Ryo.prototype_of(props))
29
+ build(buildee, Ryo.table_of(props), prototype || Ryo.prototype_of(props))
30
30
  else
31
31
  ryo = buildee.new
32
32
  Ryo.set_prototype_of(ryo, prototype)
data/lib/ryo/json.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ##
2
4
  # The {Ryo::JSON Ryo::JSON} module provides a number of methods
3
5
  # for coercing JSON data into a Ryo object. It must be required
data/lib/ryo/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ryo
4
- VERSION = "0.5.0"
4
+ VERSION = "0.5.2"
5
5
  end
data/ryo.rb.gemspec CHANGED
@@ -10,12 +10,12 @@ Gem::Specification.new do |gem|
10
10
  gem.licenses = ["MIT"]
11
11
  gem.files = `git ls-files`.split($/)
12
12
  gem.require_paths = ["lib"]
13
- gem.description = "Ryo implements prototype-based inheritance, in Ruby."
13
+ gem.description = "Ryo implements prototype-based inheritance, in Ruby"
14
14
  gem.summary = gem.description
15
15
  gem.add_development_dependency "yard", "~> 0.9"
16
16
  gem.add_development_dependency "redcarpet", "~> 3.5"
17
17
  gem.add_development_dependency "rspec", "~> 3.10"
18
18
  gem.add_development_dependency "rubocop-rspec", "~> 2.12"
19
19
  gem.add_development_dependency "standard", "~> 1.9"
20
- gem.add_development_dependency "test-cmd.rb", "~> 0.4"
20
+ gem.add_development_dependency "test-cmd.rb", "~> 0.12"
21
21
  end
data/spec/readme_spec.rb CHANGED
@@ -5,7 +5,7 @@ require "test-cmd"
5
5
 
6
6
  RSpec.describe "README.md examples" do
7
7
  run_example = ->(file) do
8
- Test::Cmd.cmd("ruby share/ryo.rb/examples/#{file}")
8
+ cmd("ruby", "share/ryo.rb/examples/#{file}")
9
9
  end
10
10
 
11
11
  subject do
@@ -5,6 +5,15 @@ require_relative "setup"
5
5
  RSpec.describe "Ryo objects" do
6
6
  let(:car) { Ryo(name: "Car") }
7
7
 
8
+ describe "Kernel#Ryo" do
9
+ context "when given a Ryo object" do
10
+ subject { Ryo(ryo) }
11
+ let(:ryo) { Ryo(name: "Car") }
12
+
13
+ it { is_expected.to be_instance_of(Ryo::Object) }
14
+ end
15
+ end
16
+
8
17
  describe "#respond_to?" do
9
18
  context "when a property is defined" do
10
19
  subject { car.respond_to?(:name) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ryo.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - '0x1eef'
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-16 00:00:00.000000000 Z
11
+ date: 2024-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yard
@@ -86,15 +86,15 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.4'
89
+ version: '0.12'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.4'
97
- description: Ryo implements prototype-based inheritance, in Ruby.
96
+ version: '0.12'
97
+ description: Ryo implements prototype-based inheritance, in Ruby
98
98
  email:
99
99
  - 0x1eef@protonmail.com
100
100
  executables: []
@@ -166,8 +166,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
166
  - !ruby/object:Gem::Version
167
167
  version: '0'
168
168
  requirements: []
169
- rubygems_version: 3.5.3
169
+ rubygems_version: 3.5.9
170
170
  signing_key:
171
171
  specification_version: 4
172
- summary: Ryo implements prototype-based inheritance, in Ruby.
172
+ summary: Ryo implements prototype-based inheritance, in Ruby
173
173
  test_files: []