mother 0.1.0 → 0.3.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 +5 -5
- data/.github/workflows/ruby.yml +38 -0
- data/Gemfile +1 -1
- data/README.md +5 -7
- data/Rakefile +1 -1
- data/lib/mother/collection.rb +1 -1
- data/lib/mother/version.rb +1 -1
- data/lib/mother.rb +18 -15
- data/mother.gemspec +14 -16
- metadata +13 -28
- data/.travis.yml +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 33a5def0a908e53da17ab8a4e340593ec2e56d499d5b9516093f16018833536d
|
4
|
+
data.tar.gz: 891d7d4d47e155ce04647db9bcf0f75756bf25aa1f97c07e4efd0df217ec5c53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc14525f1bc70e14affa1789a78e77516a358ce3ea3f55b8c9bd03ffbe622168e6fe83f7a4c9589dd7bc06cf640b0560e429ce3491c34fa820db1109e5be6d12
|
7
|
+
data.tar.gz: 77fba8530391d2b04197eee1d1fdbbd77763f44cb9b95daf3343bfabc7917d0b6e943f811bc9c4bc2b166d9aa5e3e63832fabd749ee6d1d031e4efdae5c13c7f
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
2
|
+
# They are provided by a third-party and are governed by
|
3
|
+
# separate terms of service, privacy policy, and support
|
4
|
+
# documentation.
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
+
|
8
|
+
name: Ruby
|
9
|
+
|
10
|
+
on:
|
11
|
+
push:
|
12
|
+
branches: [ "main" ]
|
13
|
+
pull_request:
|
14
|
+
branches: [ "main" ]
|
15
|
+
|
16
|
+
permissions:
|
17
|
+
contents: read
|
18
|
+
|
19
|
+
jobs:
|
20
|
+
test:
|
21
|
+
|
22
|
+
runs-on: ubuntu-latest
|
23
|
+
strategy:
|
24
|
+
matrix:
|
25
|
+
ruby-version: ['2.7', '3.1']
|
26
|
+
|
27
|
+
steps:
|
28
|
+
- uses: actions/checkout@v3
|
29
|
+
- name: Set up Ruby
|
30
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
31
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
32
|
+
# uses: ruby/setup-ruby@v1
|
33
|
+
uses: ruby/setup-ruby@0a29871fe2b0200a17a4497bae54fe5df0d973aa # v1.115.3
|
34
|
+
with:
|
35
|
+
ruby-version: ${{ matrix.ruby-version }}
|
36
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
37
|
+
- name: Run tests
|
38
|
+
run: bundle exec rake
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+

|
2
|
+
|
1
3
|
# Mother
|
2
4
|
|
3
5
|
In the culinary world, "mother" is a natural complex of bacteria, proteins, enzymes and
|
@@ -170,19 +172,15 @@ file to [rubygems.org](https://rubygems.org).
|
|
170
172
|
|
171
173
|
Bug reports and pull requests are welcome on GitHub at https://github.com/joelhelbling/mother.
|
172
174
|
This project is intended to be a safe, welcoming space for collaboration, and contributors are
|
173
|
-
expected to adhere to the [
|
174
|
-
conduct.
|
175
|
+
expected to adhere to the [code of conduct][code_of_conduct].
|
175
176
|
|
176
177
|
## License
|
177
178
|
|
178
179
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
179
180
|
|
180
|
-
## Code of Conduct
|
181
|
-
|
182
|
-
Everyone interacting in Mother’s codebases, issue trackers, chat rooms and mailing lists shoulds
|
183
|
-
expect to follow the [code of conduct](https://github.com/joelhelbling/mother/blob/master/CODE_OF_CONDUCT.md).
|
184
|
-
|
185
181
|
## Dedication
|
186
182
|
|
187
183
|
_I'd like to dedicate this gem to my Mom, who taught me to think analytically, who was my first
|
188
184
|
and best math teacher, and who encourages me to do my best, even nowadays. I love you, Mom._
|
185
|
+
|
186
|
+
[code_of_conduct]: https://github.com/joelhelbling/mother/blob/master/CODE_OF_CONDUCT.md
|
data/Rakefile
CHANGED
data/lib/mother/collection.rb
CHANGED
data/lib/mother/version.rb
CHANGED
data/lib/mother.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
1
|
+
require "mother/version"
|
2
|
+
require "mother/collection"
|
3
|
+
require "yaml"
|
4
|
+
require "json"
|
5
5
|
|
6
6
|
class Mother
|
7
7
|
attr_reader :data
|
@@ -17,13 +17,21 @@ class Mother
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def keys
|
20
|
-
@data.keys
|
20
|
+
self.class.create @data.keys
|
21
|
+
end
|
22
|
+
|
23
|
+
def values
|
24
|
+
self.class.create @data.values
|
21
25
|
end
|
22
26
|
|
23
27
|
def method_missing(method, *args, &block)
|
24
28
|
self[method]
|
25
29
|
end
|
26
30
|
|
31
|
+
def respond_to_missing?(method, include_private = true)
|
32
|
+
keys.include?(method) || keys.include?(method.to_s) || super
|
33
|
+
end
|
34
|
+
|
27
35
|
private
|
28
36
|
|
29
37
|
def ___fetch(key)
|
@@ -37,22 +45,17 @@ class Mother
|
|
37
45
|
Collection.new self, thing
|
38
46
|
when Hash
|
39
47
|
new thing
|
40
|
-
when String
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
when thing.match(/\.json$/)
|
45
|
-
self.create JSON.parse(File.read(thing))
|
46
|
-
else
|
47
|
-
thing
|
48
|
-
end
|
48
|
+
when String && /\.ya?ml$/
|
49
|
+
create YAML.load(File.read(thing))
|
50
|
+
when String && /\.json$/
|
51
|
+
create JSON.parse(File.read(thing))
|
49
52
|
else
|
50
53
|
thing
|
51
54
|
end
|
52
55
|
end
|
53
56
|
|
54
57
|
def argument_failure!
|
55
|
-
raise ArgumentError.new(
|
58
|
+
raise ArgumentError.new("Must be a hash, or YAML/JSON filename")
|
56
59
|
end
|
57
60
|
end
|
58
61
|
end
|
data/mother.gemspec
CHANGED
@@ -1,32 +1,30 @@
|
|
1
|
-
|
2
1
|
lib = File.expand_path("../lib", __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require "mother/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name
|
8
|
-
spec.version
|
9
|
-
spec.authors
|
10
|
-
spec.email
|
6
|
+
spec.name = "mother"
|
7
|
+
spec.version = Mother::VERSION
|
8
|
+
spec.authors = ["Joel Helbling"]
|
9
|
+
spec.email = ["joel@joelhelbling.com"]
|
11
10
|
|
12
|
-
spec.summary
|
13
|
-
spec.description
|
14
|
-
spec.homepage
|
15
|
-
spec.license
|
11
|
+
spec.summary = "Method-ized access to a hash's children, and their children."
|
12
|
+
spec.description = "Ever wish you had effortless, JS-like access to a deeply nested yaml?"
|
13
|
+
spec.homepage = "https://mother.joelhelbling.com"
|
14
|
+
spec.license = "MIT"
|
16
15
|
|
17
16
|
# Specify which files should be added to the gem when it is released.
|
18
17
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
19
|
-
spec.files
|
18
|
+
spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
|
20
19
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
21
20
|
end
|
22
|
-
spec.bindir
|
23
|
-
spec.executables
|
21
|
+
spec.bindir = "exe"
|
22
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
23
|
spec.require_paths = ["lib"]
|
25
24
|
|
26
|
-
spec.add_development_dependency "
|
27
|
-
spec.add_development_dependency "
|
28
|
-
spec.add_development_dependency "rspec", "~> 3.8"
|
25
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
26
|
+
spec.add_development_dependency "rspec", "~> 3.11"
|
29
27
|
spec.add_development_dependency "rspec-given", "~> 3.8"
|
30
|
-
spec.add_development_dependency "fakefs", "
|
28
|
+
spec.add_development_dependency "fakefs", "1.8"
|
31
29
|
spec.add_development_dependency "pry"
|
32
30
|
end
|
metadata
CHANGED
@@ -1,57 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mother
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joel Helbling
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.16'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.16'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: rake
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
17
|
- - "~>"
|
32
18
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
19
|
+
version: '13.0'
|
34
20
|
type: :development
|
35
21
|
prerelease: false
|
36
22
|
version_requirements: !ruby/object:Gem::Requirement
|
37
23
|
requirements:
|
38
24
|
- - "~>"
|
39
25
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
26
|
+
version: '13.0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: rspec
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
31
|
- - "~>"
|
46
32
|
- !ruby/object:Gem::Version
|
47
|
-
version: '3.
|
33
|
+
version: '3.11'
|
48
34
|
type: :development
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
38
|
- - "~>"
|
53
39
|
- !ruby/object:Gem::Version
|
54
|
-
version: '3.
|
40
|
+
version: '3.11'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: rspec-given
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +58,14 @@ dependencies:
|
|
72
58
|
requirements:
|
73
59
|
- - '='
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
61
|
+
version: '1.8'
|
76
62
|
type: :development
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - '='
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
68
|
+
version: '1.8'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: pry
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,9 +87,9 @@ executables: []
|
|
101
87
|
extensions: []
|
102
88
|
extra_rdoc_files: []
|
103
89
|
files:
|
90
|
+
- ".github/workflows/ruby.yml"
|
104
91
|
- ".gitignore"
|
105
92
|
- ".rspec"
|
106
|
-
- ".travis.yml"
|
107
93
|
- CODE_OF_CONDUCT.md
|
108
94
|
- Gemfile
|
109
95
|
- LICENSE.txt
|
@@ -119,7 +105,7 @@ homepage: https://mother.joelhelbling.com
|
|
119
105
|
licenses:
|
120
106
|
- MIT
|
121
107
|
metadata: {}
|
122
|
-
post_install_message:
|
108
|
+
post_install_message:
|
123
109
|
rdoc_options: []
|
124
110
|
require_paths:
|
125
111
|
- lib
|
@@ -134,9 +120,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
120
|
- !ruby/object:Gem::Version
|
135
121
|
version: '0'
|
136
122
|
requirements: []
|
137
|
-
|
138
|
-
|
139
|
-
signing_key:
|
123
|
+
rubygems_version: 3.3.3
|
124
|
+
signing_key:
|
140
125
|
specification_version: 4
|
141
126
|
summary: Method-ized access to a hash's children, and their children.
|
142
127
|
test_files: []
|