enumerize-schema 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: 701e2767983ffcce7f84b2140eb664c7c9fc1c975d9a4b21f8c5b0c88fed026b
4
+ data.tar.gz: ca82797fd02bf1d7ff7885d74217741522522a4c9870887f83a26aa487e2be73
5
+ SHA512:
6
+ metadata.gz: 95908592aa8dcb37fdc1888d68f5f0769ec56c74f64f87468a47aa1751cbf9af61d1fe0b01ee4b1deac718ae0ccebd21c31fae2d235f18c74f62dabefb934cdf
7
+ data.tar.gz: f048d1d8f31b0f12f7d689a4eaa4cff4d8ab6ed2cf6857e61b518a1e6f9d56a37690b5bda5d1dd9a5ee828d6e5486fe6be427927f43b776338d25ac7c0aedf87
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
data/.standard.yml ADDED
@@ -0,0 +1,2 @@
1
+ parallel: true
2
+ format: progress
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --no-private
data/CHANGELOG.md ADDED
@@ -0,0 +1,2 @@
1
+ [Unreleased]
2
+ ------------
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gemspec
6
+
7
+ gem "rspec-github", require: false
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2022 Robert Audi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,72 @@
1
+ Enumerize: Schema
2
+ =================
3
+
4
+ [![RSpec](https://github.com/RobertAudi/enumerize-schema/actions/workflows/rspec.yml/badge.svg)](https://github.com/RobertAudi/enumerize-schema/actions/workflows/rspec.yml)
5
+ [![Standard](https://github.com/RobertAudi/enumerize-schema/actions/workflows/standard.yml/badge.svg)](https://github.com/RobertAudi/enumerize-schema/actions/workflows/standard.yml)
6
+
7
+ Enumerize: Schema is wrapper around [Enumerize](https://github.com/brainspec/enumerize) that enables storing enum values in schema files.
8
+
9
+ Installation
10
+ ------------
11
+
12
+ Add this line to your application's Gemfile:
13
+
14
+ ```ruby
15
+ gem "enumerize-schema"
16
+ ```
17
+
18
+ And then execute:
19
+
20
+ ```console
21
+ $ bundle install
22
+ ```
23
+
24
+ Usage
25
+ -----
26
+
27
+ Instead of using `extend Enumerize`, use `extend EnumerizeSchema` instead and define your enums with `attr_enum`:
28
+
29
+ ```ruby
30
+ class User
31
+ extend EnumerizeSchema
32
+
33
+ attr_enum :role
34
+ end
35
+ ```
36
+
37
+ The values of the enum need to be listed in a YAML schema file. Here are the default paths for the schema file:
38
+
39
+ - `config/enumerize.yml` in Ruby on Rails applications
40
+ - `enumerize.yml` under `Bundler.root` (if Bundler is used) or the current working directory
41
+
42
+ The structure of the schema file is similar to the one of I18n locale files:
43
+
44
+ ```yaml
45
+ ---
46
+ user:
47
+ role:
48
+ - member
49
+ - moderator
50
+ - administrator
51
+ ```
52
+
53
+ ### Options
54
+
55
+ Options are forwarded to `enumerize`. If the `:in` option is specified then `attr_enum` will not check the schema file and the `:in` option will also be forwarded to `enumerize`.
56
+
57
+ Development
58
+ -----------
59
+
60
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
61
+
62
+ 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).
63
+
64
+ Contributing
65
+ ------------
66
+
67
+ Bug reports and pull requests are welcome on GitHub at https://github.com/RobertAudi/enumerize-schema.
68
+
69
+ License
70
+ -------
71
+
72
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+ require "standard/rake"
6
+ require "yard"
7
+
8
+ RSpec::Core::RakeTask.new(:spec) do |t|
9
+ if ENV["GITHUB_ACTIONS"]
10
+ t.rspec_opts = [
11
+ "--format RSpec::Github::Formatter",
12
+ "--format documentation",
13
+ "--force-color"
14
+ ]
15
+ end
16
+ end
17
+
18
+ YARD::Rake::YardocTask.new do |t|
19
+ t.files = ["lib/**/*.rb"]
20
+ end
21
+
22
+ task default: [:standard, :spec]
data/bin/console ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "enumerize-schema"
6
+
7
+ require "pry"
8
+ Pry.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/enumerize_schema/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "enumerize-schema"
7
+ spec.version = EnumerizeSchema::VERSION
8
+ spec.authors = ["Robert Audi"]
9
+ spec.email = ["robert@robertaudi.com"]
10
+
11
+ spec.summary = "Store Enumerize enum values in schema files"
12
+ spec.description = "A wrapper around Enumerize to store enum values in schema files"
13
+ spec.homepage = "https://github.com/RobertAudi/enumerize-schema"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 2"
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/RobertAudi/enumerize-schema"
19
+ spec.metadata["changelog_uri"] = "#{spec.metadata["source_code_uri"]}/CHANGELOG.md"
20
+
21
+ # Specify which files should be added to the gem when it is released.
22
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
+ `git ls-files -z`.split("\x0").reject do |f|
25
+ (f == __FILE__) || f.match(%r{\A(?:spec/|\.git)})
26
+ end
27
+ end
28
+
29
+ spec.require_paths = ["lib"]
30
+
31
+ spec.add_dependency "enumerize", "~> 2.5.0"
32
+ spec.add_dependency "activesupport", ">= 3.2"
33
+
34
+ spec.add_development_dependency "rake", "~> 13.0"
35
+ spec.add_development_dependency "pry", "~> 0.14"
36
+ spec.add_development_dependency "rspec", "~> 3.2"
37
+ spec.add_development_dependency "standard", "~> 1.3"
38
+ spec.add_development_dependency "yard", "~> 0.9"
39
+ end
@@ -0,0 +1 @@
1
+ require_relative "./enumerize_schema"
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pathname"
4
+
5
+ module EnumerizeSchema
6
+ class Configuration
7
+ # @!attribute [r] default_config
8
+ #
9
+ # @return [Hash] the default config
10
+ def default_config
11
+ return @default_config if @default_config
12
+
13
+ config = {}
14
+
15
+ if defined?(Rails)
16
+ config[:schema_file] = Rails.root.join("config", "enumerize.yml")
17
+ else
18
+ root_path = Pathname.new(defined?(Bundler) ? Bundler.root : Dir.pwd)
19
+
20
+ config[:schema_file] = root_path.join("enumerize.yml")
21
+ end
22
+
23
+ @default_config = config.freeze
24
+ end
25
+
26
+ # @return [Pathname] the path to the schema file containing all the enum values
27
+ def schema_file
28
+ @schema_file ||= default_config[:schema_file]
29
+ end
30
+
31
+ # @param value [String, File, Pathname] the path to the schema file containing all the enum values
32
+ # @raise [SchemaFileNotFoundError] if +value+ is not a file
33
+ # @raise [SchemaFileNotReadableError] if +value+ is not a readable file
34
+ # @return [Pathname] the path to the schema file containing all the enum values
35
+ def schema_file=(value)
36
+ if !File.file?(value)
37
+ raise SchemaFileNotFoundError.new(schema_file: value)
38
+ elsif !File.readable?(value)
39
+ raise SchemaFileNotReadableError.new(schema_file: value)
40
+ else
41
+ @schema_file = Pathname.new(value)
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,44 @@
1
+ # @!group Errors
2
+ module EnumerizeSchema
3
+ class SchemaFileNotFoundError < RuntimeError
4
+ # @return [String, nil] the schema file that caused the error
5
+ attr_reader :schema_file
6
+
7
+ # @param schema_file [String, nil] the schema file that caused the error
8
+ def initialize(schema_file:)
9
+ @schema_file = schema_file
10
+
11
+ super("Unable to locate the schema file: #{schema_file.inspect}")
12
+ end
13
+ end
14
+
15
+ class SchemaFileNotReadableError < RuntimeError
16
+ # @return [String, nil] the schema file that caused the error
17
+ attr_reader :schema_file
18
+
19
+ # @param schema_file [String, nil] the schema file that caused the error
20
+ def initialize(schema_file:)
21
+ @schema_file = schema_file
22
+
23
+ super("Unable to read the schema file #{schema_file.inspect}")
24
+ end
25
+ end
26
+
27
+ class MissingValuesError < KeyError
28
+ # @return [String] the name of the class where the enum is defined
29
+ attr_reader :class_name
30
+
31
+ # @return [String] the name of the enum attribute
32
+ attr_reader :attribute_name
33
+
34
+ # @param class_name [String] the name of the class where the enum is defined
35
+ # @param attribute_name [String] the name of the enum attribute
36
+ def initialize(class_name:, attribute_name:)
37
+ @class_name = class_name
38
+ @attribute_name = attribute_name
39
+
40
+ super("Enumerized values missing for attribute: #{class_name}##{attribute_name}")
41
+ end
42
+ end
43
+ end
44
+ # @!endgroup
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EnumerizeSchema
4
+ VERSION = "0.1.0"
5
+ end
@@ -0,0 +1,199 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "yaml"
4
+ require "enumerize"
5
+ require "active_support/inflector/methods"
6
+
7
+ module EnumerizeSchema
8
+ autoload :Configuration, "enumerize_schema/configuration"
9
+ autoload :Version, "enumerize_schema/version"
10
+ require_relative "./enumerize_schema/errors"
11
+
12
+ # @!scope class
13
+
14
+ # @!attribute [r] config
15
+ # @return [Configuration] the EnumerizeSchema configuration object
16
+ def self.config
17
+ @config ||= Configuration.new
18
+ end
19
+
20
+ # Configure EnumerizeSchema.
21
+ #
22
+ # @example
23
+ # EnumerizeSchema.configure do |config|
24
+ # config.schema_file = Rails.root.join("config", "enumerize", "schema.yml")
25
+ # end
26
+ #
27
+ # @yieldparam config [Configuration] the EnumerizeSchema configuration object
28
+ def self.configure
29
+ yield(config)
30
+ end
31
+
32
+ # @private
33
+ def self.configured?
34
+ !!@__configured
35
+ end
36
+
37
+ # @private
38
+ def self.schema
39
+ @__schema ||=
40
+ if config.schema_file.to_s.empty?
41
+ {}
42
+ elsif !File.file?(config.schema_file)
43
+ raise SchemaFileNotFoundError.new(schema_file: config.schema_file)
44
+ elsif !File.readable?(config.schema_file)
45
+ raise SchemaFileNotReadableError.new(schema_file: config.schema_file)
46
+ else
47
+ YAML.load_file(config.schema_file) || {}
48
+ end
49
+ end
50
+
51
+ # @private
52
+ def self.extended(base)
53
+ unless base.singleton_class.ancestors.include?(Enumerize)
54
+ base.extend(Enumerize)
55
+ end
56
+
57
+ class << base
58
+ protected :attr_enum
59
+ end
60
+ end
61
+
62
+ # The path of the schema file for the specific class extended by EnumerizeSchema.
63
+ # This method will return +nil+ if a custom schema file was not specified.
64
+ #
65
+ # @example A class with a custom schema file
66
+ # class User
67
+ # extend EnumerizeSchema
68
+ #
69
+ # self.enumerize_schema_file = Rails.root.join("config", "enumerize", "user.yml")
70
+ # end
71
+ #
72
+ # User.enumerize_schema_file
73
+ # # => #<Pathname:config/enumerize/user.yml>
74
+ #
75
+ # @example Subsclasses inherit their parent's schema file
76
+ # class User
77
+ # extend EnumerizeSchema
78
+ #
79
+ # self.enumerize_schema_file = Rails.root.join("config", "enumerize", "user.yml")
80
+ # end
81
+ #
82
+ # class Member < User
83
+ # end
84
+ #
85
+ # User.enumerize_schema_file
86
+ # # => #<Pathname:config/enumerize/user.yml>
87
+ # Member.enumerize_schema_file
88
+ # # => #<Pathname:config/enumerize/user.yml>
89
+ #
90
+ # @example Subsclasses can also use their own schema file instead of their parent's
91
+ # class User
92
+ # extend EnumerizeSchema
93
+ #
94
+ # self.enumerize_schema_file = Rails.root.join("config", "enumerize", "user.yml")
95
+ # end
96
+ #
97
+ # class Member < User
98
+ # self.enumerize_schema_file = Rails.root.join("config", "enumerize", "member.yml")
99
+ # end
100
+ #
101
+ # User.enumerize_schema_file
102
+ # # => #<Pathname:config/enumerize/user.yml>
103
+ # Member.enumerize_schema_file
104
+ # # => #<Pathname:config/enumerize/member.yml>
105
+ #
106
+ # @example Subsclasses can also use the default schema file instead of their parent's
107
+ # class User
108
+ # extend EnumerizeSchema
109
+ #
110
+ # self.enumerize_schema_file = Rails.root.join("config", "enumerize", "user.yml")
111
+ # end
112
+ #
113
+ # class Member < User
114
+ # self.enumerize_schema_file = nil
115
+ # end
116
+ #
117
+ # User.enumerize_schema_file
118
+ # # => #<Pathname:config/enumerize/user.yml>
119
+ # Member.enumerize_schema_file
120
+ # # => nil
121
+ #
122
+ # @example A class without a custom schema file
123
+ # class User
124
+ # extend EnumerizeSchema
125
+ # end
126
+ #
127
+ # User.enumerize_schema_file
128
+ # # => nil
129
+ #
130
+ def enumerize_schema_file
131
+ return @__enumerize_schema_file if instance_variable_defined?(:@__enumerize_schema_file)
132
+
133
+ @__enumerize_schema_file = superclass.instance_variable_get(:@__enumerize_schema_file)
134
+ end
135
+
136
+ # Override the path to the enumerized attribute schema file for the current class.
137
+ #
138
+ # @example
139
+ # class User < ApplicationRecord
140
+ # include EnumerizeSchema
141
+ #
142
+ # self.enumerize_schema_file = Rails.root.join("config", "enumerize", "user.yml")
143
+ # end
144
+ #
145
+ # @param value [String, File, Pathname] the path to the schema file containing all the enum values for the current class
146
+ # @raise [SchemaFileNotFoundError] if +value+ is not a file
147
+ # @raise [SchemaFileNotReadableError] if +value+ is not a readable file
148
+ # @return [Pathname] the path to the schema file containing all the enum values for the current class
149
+ def enumerize_schema_file=(value)
150
+ if value.to_s.empty?
151
+ @__enumerize_schema_file = nil
152
+ elsif !File.file?(value)
153
+ raise SchemaFileNotFoundError.new(schema_file: value)
154
+ elsif !File.readable?(value)
155
+ raise SchemaFileNotReadableError.new(schema_file: value)
156
+ else
157
+ @__enumerize_schema_file = Pathname.new(value)
158
+ end
159
+ end
160
+
161
+ # @api private
162
+ def enumerize_schema
163
+ @__enumerize_schema ||=
164
+ if enumerize_schema_file.to_s.empty?
165
+ ::EnumerizeSchema.schema
166
+ else
167
+ YAML.load_file(enumerize_schema_file) || {}
168
+ end
169
+ end
170
+
171
+ # @api private
172
+ def enumerize_schema_attributes_scope
173
+ @__enumerize_schema_attributes_scope ||= ActiveSupport::Inflector.underscore(name.to_s).split("/")
174
+ end
175
+
176
+ # Defines an enumerized attribute.
177
+ #
178
+ # @param attribute_name [Symbol] the name of the enumerized attribute
179
+ # @param enumerize_options [Hash] options forwarded to +enumerize+
180
+ # @raise [EnumerizeSchema::MissingValuesError] if the values for the enum are not found in the schema file
181
+ # @return [void]
182
+ #
183
+ # @note This method is marked as +protected+ when added to the class, so it can't be used from outside that class.
184
+ # @note If the +:in+ option is passed then this method will not check the schema file and forward all options to +enumerize+
185
+ # @see https://github.com/brainspec/enumerize Enumerize
186
+ def attr_enum(attribute_name, **enumerize_options)
187
+ if enumerize_options.include?(:in)
188
+ enumerize(attribute_name, enumerize_options)
189
+ else
190
+ enum_values = Array(enumerize_schema.dig(*enumerize_schema_attributes_scope, attribute_name.to_s))
191
+
192
+ if enum_values.empty?
193
+ raise ::EnumerizeSchema::MissingValuesError.new(class_name: name, attribute_name: attribute_name)
194
+ end
195
+
196
+ enumerize(attribute_name, enumerize_options.merge(in: enum_values))
197
+ end
198
+ end
199
+ end
metadata ADDED
@@ -0,0 +1,160 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: enumerize-schema
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Robert Audi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-03-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: enumerize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.5.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.5.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '3.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '3.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '13.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '13.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.14'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.14'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.2'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: standard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.3'
97
+ - !ruby/object:Gem::Dependency
98
+ name: yard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.9'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.9'
111
+ description: A wrapper around Enumerize to store enum values in schema files
112
+ email:
113
+ - robert@robertaudi.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".rspec"
119
+ - ".standard.yml"
120
+ - ".yardopts"
121
+ - CHANGELOG.md
122
+ - Gemfile
123
+ - LICENSE.txt
124
+ - README.md
125
+ - Rakefile
126
+ - bin/console
127
+ - bin/setup
128
+ - enumerize-schema.gemspec
129
+ - lib/enumerize-schema.rb
130
+ - lib/enumerize_schema.rb
131
+ - lib/enumerize_schema/configuration.rb
132
+ - lib/enumerize_schema/errors.rb
133
+ - lib/enumerize_schema/version.rb
134
+ homepage: https://github.com/RobertAudi/enumerize-schema
135
+ licenses:
136
+ - MIT
137
+ metadata:
138
+ homepage_uri: https://github.com/RobertAudi/enumerize-schema
139
+ source_code_uri: https://github.com/RobertAudi/enumerize-schema
140
+ changelog_uri: https://github.com/RobertAudi/enumerize-schema/CHANGELOG.md
141
+ post_install_message:
142
+ rdoc_options: []
143
+ require_paths:
144
+ - lib
145
+ required_ruby_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '2'
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
155
+ requirements: []
156
+ rubygems_version: 3.2.32
157
+ signing_key:
158
+ specification_version: 4
159
+ summary: Store Enumerize enum values in schema files
160
+ test_files: []