sdl 0.2.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 33252bd783b69ae9ac6fb9e579817a9392dcd3a7
4
- data.tar.gz: aaf572106a7f32f494ea0e4d050e7e5894e70de8
2
+ SHA256:
3
+ metadata.gz: c83558361e4cc4d117a79eeafb41bc88282ab58787bae3392b2a322c7f2725ee
4
+ data.tar.gz: d15a86beac0656606ebffd86a6b2e928f2218ce307ed576c381593f157b3f3e7
5
5
  SHA512:
6
- metadata.gz: f4066429d325386c0c79b1b53443ae61f30530a81c87da81b1663ebf2fb4aacfd10132700c13791a0eba3573f1141916e36f588ae7073c41c7d127f5cb5804a7
7
- data.tar.gz: 55bb962046a882e09bee9cb98eeb2ee3afb7c633a6148986f23d7671f638be91aa111b2b077b561b4486dd174b86137a8eb5d002911240e067fc8dc73284487f
6
+ metadata.gz: 607eb1f7253d0f6645d5076b7cfba2305a303ad11e35ee182fbcdea597609d9759bd4d7f673301f658b85e00baf5a31cf6923240fc48891a78c1076deb099a1f
7
+ data.tar.gz: 07b880a3864b82b939a96812ba670e691d2ea8964227839eb5632111cd7323675f3eac1f9349c310e4580145d901c56d225d608f7587b358629e56de1efd90c0
@@ -0,0 +1,22 @@
1
+ name: Build
2
+ on: [push]
3
+ jobs:
4
+ build:
5
+ runs-on: ubuntu-latest
6
+ steps:
7
+ - name: Checkout
8
+ uses: actions/checkout@v2
9
+
10
+ - name: Setup Ruby
11
+ uses: actions/setup-ruby@v1
12
+ with:
13
+ ruby-version: 2.7.x
14
+
15
+ - name: Install bundler
16
+ run: gem install bundler
17
+
18
+ - name: Install dependencies
19
+ run: bundle install
20
+
21
+ - name: Test
22
+ run: bundle exec rspec
@@ -0,0 +1,38 @@
1
+ name: Publish
2
+ on:
3
+ release:
4
+ types: [published]
5
+ jobs:
6
+ publish:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - name: Checkout
10
+ uses: actions/checkout@v2
11
+
12
+ - name: Setup Ruby
13
+ uses: actions/setup-ruby@v1
14
+ with:
15
+ ruby-version: 2.7.x
16
+
17
+ - name: Install bundler
18
+ run: gem install bundler
19
+
20
+ - name: Install dependencies
21
+ run: bundle install
22
+
23
+ - name: Test
24
+ run: bundle exec rspec
25
+
26
+ - name: Set version
27
+ run: perl -pi -e "s/0\.0\.0/${GITHUB_REF:11}/" lib/sdl/version.rb
28
+
29
+ - name: Publish
30
+ run: |
31
+ mkdir -p $HOME/.gem
32
+ touch $HOME/.gem/credentials
33
+ chmod 0600 $HOME/.gem/credentials
34
+ printf -- "---\n:rubygems_api_key: ${RUBYGEMS_TOKEN}\n" > $HOME/.gem/credentials
35
+ gem build *.gemspec
36
+ gem push *.gem
37
+ env:
38
+ RUBYGEMS_TOKEN: ${{ secrets.RUBYGEMS_TOKEN }}
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in sdl.gemspec
4
4
  gemspec
5
+
6
+ gem "simplecov", require: false
data/README.md CHANGED
@@ -1,9 +1,15 @@
1
- # SDL
1
+ <h1 align="center">SDL</h1>
2
2
 
3
- SDL is generic schema definition language.
3
+ <div align="center">
4
4
 
5
- Alone, it doesn't do anything useful. However, you might find it to be helpful
6
- for the purpose of code generation.
5
+ ![Build](https://github.com/rzane/sdl/workflows/Build/badge.svg)
6
+ ![Version](https://img.shields.io/gem/v/sdl)
7
+
8
+ </div>
9
+
10
+ SDL stands for *S*chema *D*efinition *L*anguage. It's a language for describing models in a system.
11
+
12
+ Alone, it doesn't do a whole lot. However, you might find helpful for building [code generators](https://github.com/rzane/geny).
7
13
 
8
14
  ## Installation
9
15
 
@@ -28,15 +34,15 @@ Or install it yourself as:
28
34
  ```ruby
29
35
  SDL.define do
30
36
  model :user do
31
- attribute :email, :string, required: true, unique: true
37
+ attribute :email, :string, unique: true
32
38
  has_many :posts
33
39
  timestamps
34
40
  end
35
41
 
36
42
  model :post do
37
- attribute :title, :string, limit: 120, required: true
38
- attribute :body, :text
39
- enum :status, values: [:draft, :published]
43
+ attribute :title, :string, limit: 120
44
+ attribute :body, :text, nullable: true
45
+ enum :status, values: [:draft, :published], default: :draft
40
46
  belongs_to :user, foreign_key: true
41
47
  has_one_attached :image
42
48
  timestamps
@@ -46,6 +52,13 @@ end
46
52
 
47
53
  ### Load a schema from a file
48
54
 
55
+ ```ruby
56
+ # schema.rb
57
+ model :user do
58
+ attribute :name, :string
59
+ end
60
+ ```
61
+
49
62
  ```ruby
50
63
  SDL.load_file "schema.rb"
51
64
  ```
@@ -54,13 +67,13 @@ SDL.load_file "schema.rb"
54
67
 
55
68
  ```ruby
56
69
  SDL.parse "user", %w[
57
- email:required:unique
70
+ email:unique
58
71
  posts:has_many
59
72
  ]
60
73
 
61
74
  SDL.parse "post", %w[
62
- title:string{120}:required
63
- body:text
75
+ title:string{120}
76
+ body:text:nullable
64
77
  status:enum{draft,published}
65
78
  user:belongs_to:foreign_key
66
79
  image:has_one_attached
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
2
 
3
+ require "rspec/core/rake_task"
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
data/lib/sdl.rb CHANGED
@@ -3,7 +3,6 @@ require "sdl/parser"
3
3
  require "sdl/schema"
4
4
 
5
5
  module SDL
6
-
7
6
  # A base class for all errors
8
7
  class Error < StandardError
9
8
  end
@@ -1,14 +1,14 @@
1
1
  require "sdl/field"
2
- require "active_support/core_ext/string/inflections"
2
+ require "active_support/inflector"
3
3
 
4
4
  module SDL
5
5
  # Base class for all association types
6
6
  # @abstract
7
7
  class Association < Field
8
8
  # The name of the associated model
9
- # @return [String]
9
+ # @return [Name]
10
10
  def model_name
11
- options.fetch(:model_name, name).to_s
11
+ Name.new(options.fetch(:model_name, name).to_s)
12
12
  end
13
13
  end
14
14
 
@@ -30,9 +30,13 @@ module SDL
30
30
  end
31
31
 
32
32
  # The name of the associated model
33
- # @return [String]
33
+ # @return [Name]
34
34
  def model_name
35
- options.fetch(:model_name) { name.singularize }.to_s
35
+ model_name = options.fetch(:model_name) do
36
+ ActiveSupport::Inflector.singularize(name.to_s)
37
+ end
38
+
39
+ Name.new(model_name.to_s)
36
40
  end
37
41
  end
38
42
 
@@ -51,5 +55,11 @@ module SDL
51
55
  def foreign_key?
52
56
  options.fetch(:foreign_key, false)
53
57
  end
58
+
59
+ # The name of the column
60
+ # @return [Name]
61
+ def column_name
62
+ Name.new("#{name}_id")
63
+ end
54
64
  end
55
65
  end
@@ -11,8 +11,14 @@ module SDL
11
11
 
12
12
  # @api private
13
13
  def initialize(name, type, **options)
14
- super(name, options)
14
+ super(name, **options)
15
15
  @type = type
16
16
  end
17
+
18
+ # The name of the column
19
+ # @return [Name]
20
+ def column_name
21
+ name
22
+ end
17
23
  end
18
24
  end
@@ -1,4 +1,5 @@
1
1
  require "sdl/field"
2
+ require "sdl/name"
2
3
 
3
4
  module SDL
4
5
  # A field of a {Model} that has a predefined list of possible values
@@ -12,15 +13,21 @@ module SDL
12
13
  end
13
14
 
14
15
  # A default value for this field
15
- # @return [Object]
16
+ # @return [Name]
16
17
  def default
17
- options[:default]&.to_s
18
+ Name.new(options[:default].to_s) if options[:default]
18
19
  end
19
20
 
20
21
  # The possible values for the enum
21
- # @return [Array<String>]
22
+ # @return [Array<Name>]
22
23
  def values
23
- options.fetch(:values, []).map(&:to_s)
24
+ options.fetch(:values, []).map { |value| Name.new(value.to_s) }
25
+ end
26
+
27
+ # The name of the column
28
+ # @return [Name]
29
+ def column_name
30
+ name
24
31
  end
25
32
  end
26
33
  end
@@ -1,3 +1,4 @@
1
+ require "sdl/name"
1
2
  require "sdl/types"
2
3
 
3
4
  module SDL
@@ -5,7 +6,7 @@ module SDL
5
6
  # @abstract
6
7
  class Field
7
8
  # The name of the field
8
- # @return [String]
9
+ # @return [Name]
9
10
  attr_reader :name
10
11
 
11
12
  # All options that were passed to the field
@@ -14,7 +15,7 @@ module SDL
14
15
 
15
16
  # @api private
16
17
  def initialize(name, **options)
17
- @name = name.to_s
18
+ @name = Name.new(name.to_s)
18
19
  @options = options
19
20
  end
20
21
 
@@ -36,6 +37,32 @@ module SDL
36
37
  has_one? || has_many? || belongs_to?
37
38
  end
38
39
 
40
+ # Can this field be null? By default, this is `false`. But, it can
41
+ # be overridden by passing `nullable: true` to a field.
42
+ # @return [Boolean]
43
+ def nullable?
44
+ options.fetch(:nullable, false)
45
+ end
46
+
47
+ # The opposite of {#nullable?}. All fields are required by default
48
+ # @return [Boolean]
49
+ def required?
50
+ !nullable?
51
+ end
52
+
53
+ # The type of the field
54
+ # @abstract
55
+ # @return [Symbol]
56
+ def type
57
+ raise NotImplementedError, __method__
58
+ end
59
+
60
+ # The name of the type
61
+ # @return [Name]
62
+ def type_name
63
+ Name.new(type.to_s)
64
+ end
65
+
39
66
  # @!method id?
40
67
  # Indicates that this is an {Attribute} whose type is `:id`
41
68
  # @return [Boolean]
@@ -91,12 +118,6 @@ module SDL
91
118
  end
92
119
 
93
120
  module ColumnOptions
94
- # Is this field required?
95
- # @return [Boolean]
96
- def required?
97
- options.fetch(:required, false)
98
- end
99
-
100
121
  # A default value for this field
101
122
  # @return [Object]
102
123
  def default
@@ -1,34 +1,55 @@
1
- require "sdl/attribute"
2
- require "sdl/enum"
3
1
  require "sdl/association"
4
2
  require "sdl/attachment"
3
+ require "sdl/attribute"
4
+ require "sdl/enum"
5
+ require "sdl/name"
5
6
 
6
7
  module SDL
7
8
  class Model
8
9
  # Name of the model
9
- # @return [String]
10
+ # @return [Name]
10
11
  attr_reader :name
11
12
 
12
- # All of the fields that have been registered
13
- # @return [Array<Field>]
14
- attr_reader :fields
15
-
16
13
  # Any additional options
17
14
  # @return [Hash]
18
15
  attr_reader :options
19
16
 
20
17
  # @api private
21
18
  def initialize(name, fields: [], **options, &block)
22
- @name = name.to_s
19
+ @name = Name.new(name.to_s)
23
20
  @fields = fields
24
21
  @options = options
25
22
  instance_eval(&block) if block_given?
26
23
  end
27
24
 
25
+ # List or filter fields that have been registered
26
+ # @param types [Array<Symbol>] types to filter
27
+ # @return [Array<Field>]
28
+ # @example List all fields
29
+ # model.fields.each { |field| puts field.name }
30
+ # @example Filter fields
31
+ # model.fields(:integer).each { |field| puts field.name }
32
+ def fields(*types)
33
+ return @fields if types.empty?
34
+
35
+ types.flat_map { |type|
36
+ case type
37
+ when :attribute
38
+ @fields.grep Attribute
39
+ when :association
40
+ @fields.grep Association
41
+ when :attachment
42
+ @fields.grep Attachment
43
+ else
44
+ @fields.select { |field| field.type == type }
45
+ end
46
+ }
47
+ end
48
+
28
49
  # Adds an {Attribute} to the model
29
50
  # @param name [Symbol]
30
51
  # @param type [Symbol]
31
- # @option options [Boolean] :required
52
+ # @option options [Boolean] :nullable
32
53
  # @option options [Boolean] :unique
33
54
  # @option options [Object] :default
34
55
  # @option options [Integer] :limit
@@ -46,7 +67,7 @@ module SDL
46
67
  # Adds an {Enum} to the model
47
68
  # @param name [Symbol]
48
69
  # @option options [Array<Symbol>] :values
49
- # @option options [Boolean] :required
70
+ # @option options [Boolean] :nullable
50
71
  # @option options [Boolean] :unique
51
72
  # @option options [Object] :default
52
73
  #
@@ -61,7 +82,7 @@ module SDL
61
82
  # Adds an {Association::BelongsTo} to the model
62
83
  # @param name [Symbol]
63
84
  # @option options [Symbol] :model_name
64
- # @option options [Boolean] :required
85
+ # @option options [Boolean] :nullable
65
86
  # @option options [Boolean] :unique
66
87
  # @option options [Boolean] :foreign_key
67
88
  #
@@ -76,6 +97,7 @@ module SDL
76
97
  # Adds an {Association::HasOne} to the model
77
98
  # @param name [Symbol]
78
99
  # @option options [Symbol] :model_name
100
+ # @option options [Boolean] :nullable
79
101
  #
80
102
  # @example
81
103
  # model :user do
@@ -99,7 +121,7 @@ module SDL
99
121
 
100
122
  # Adds an {Attachment::HasOne} to the model
101
123
  # @param name [Symbol]
102
- # @option options [Hash]
124
+ # @option options [Symbol] :nullable
103
125
  #
104
126
  # @example
105
127
  # model :user do
@@ -133,75 +155,92 @@ module SDL
133
155
  end
134
156
 
135
157
  # Get all {Attribute} fields
158
+ # @deprecated Use {#fields} instead
136
159
  # @return [Array<Attribute>]
137
160
  def attribute_fields
138
- fields.grep Attribute
161
+ fields(:attribute)
139
162
  end
140
163
 
141
164
  # Get all {Association} fields
165
+ # @deprecated Use {#fields} instead
142
166
  # @return [Array<Association>]
143
167
  def association_fields
144
- fields.grep Association
168
+ fields(:association)
145
169
  end
146
170
 
147
171
  # Get all {Attachment} fields
172
+ # @deprecated Use {#fields} instead
148
173
  # @return [Array<Attachment>]
149
174
  def attachment_fields
150
- fields.grep Attachment
175
+ fields(:attachment)
151
176
  end
152
177
 
153
178
  # @!method id_fields
154
179
  # Get all {Attribute} fields whose type is `:id`
180
+ # @deprecated Use {#fields} instead
155
181
  # @return [Array<Attribute>]
156
182
  # @!method string_fields
157
183
  # Get all {Attribute} fields whose type is `:string`
184
+ # @deprecated Use {#fields} instead
158
185
  # @return [Array<Attribute>]
159
186
  # @!method boolean_fields
160
187
  # Get all {Attribute} fields whose type is `:boolean`
188
+ # @deprecated Use {#fields} instead
161
189
  # @return [Array<Attribute>]
162
190
  # @!method integer_fields
163
191
  # Get all {Attribute} fields whose type is `:integer`
192
+ # @deprecated Use {#fields} instead
164
193
  # @return [Array<Attribute>]
165
194
  # @!method float_fields
166
195
  # Get all {Attribute} fields whose type is `:float`
196
+ # @deprecated Use {#fields} instead
167
197
  # @return [Array<Attribute>]
168
198
  # @!method decimal_fields
169
199
  # Get all {Attribute} fields whose type is `:decimal`
200
+ # @deprecated Use {#fields} instead
170
201
  # @return [Array<Attribute>]
171
202
  # @!method date_fields
172
203
  # Get all {Attribute} fields whose type is `:date`
204
+ # @deprecated Use {#fields} instead
173
205
  # @return [Array<Attribute>]
174
206
  # @!method datetime_fields
175
207
  # Get all {Attribute} fields whose type is `:datetime`
208
+ # @deprecated Use {#fields} instead
176
209
  # @return [Array<Attribute>]
177
210
  # @!method text_fields
178
211
  # Get all {Attribute} fields whose type is `:text`
212
+ # @deprecated Use {#fields} instead
179
213
  # @return [Array<Attribute>]
180
214
  # @!method binary_fields
181
215
  # Get all {Attribute} fields whose type is `:binary`
216
+ # @deprecated Use {#fields} instead
182
217
  # @return [Array<Attribute>]
183
218
  # @!method enum_fields
184
219
  # Get all {Enum} fields
220
+ # @deprecated Use {#fields} instead
185
221
  # @return [Array<Enum>]
186
222
  # @!method belongs_to_fields
187
223
  # Get all {Association::BelongsTo} fields
224
+ # @deprecated Use {#fields} instead
188
225
  # @return [Array<Association::BelongsTo>]
189
226
  # @!method has_one_fields
190
227
  # Get all {Association::HasOne} fields
228
+ # @deprecated Use {#fields} instead
191
229
  # @return [Array<Assocation::HasOne>]
192
230
  # @!method has_many_fields
193
231
  # Get all {Association::HasMany} fields
232
+ # @deprecated Use {#fields} instead
194
233
  # @return [Array<Association::HasMany>]
195
234
  # @!method has_one_attached_fields
196
235
  # Get all {Attachment::HasOne} fields
236
+ # @deprecated Use {#fields} instead
197
237
  # @return [Array<Attachment::HasOne>]
198
238
  # @!method has_many_attached_fields
199
239
  # Get all {Attachment::HasMany} fields
240
+ # @deprecated Use {#fields} instead
200
241
  # @return [Array<Attachment::HasMany>]
201
- TYPES.each do |meth|
202
- define_method "#{meth}_fields" do
203
- fields.select { |field| field.type == meth }
204
- end
242
+ TYPES.each do |type|
243
+ define_method("#{type}_fields") { fields(type) }
205
244
  end
206
245
  end
207
246
  end
@@ -0,0 +1,48 @@
1
+ require "active_support/inflector"
2
+
3
+ module SDL
4
+ # An extension of a string that will format a name
5
+ class Name < String
6
+ class << self
7
+ private
8
+
9
+ # @!macro [attach] inflect
10
+ # @return [String]
11
+ def inflect(name, transforms)
12
+ define_method(name) do
13
+ transforms.reduce(self) do |acc, arg|
14
+ case arg
15
+ when :upcase
16
+ acc.upcase
17
+ when :lower_camelize
18
+ ActiveSupport::Inflector.camelize(acc, false)
19
+ when :lower_humanize
20
+ ActiveSupport::Inflector.humanize(acc, capitalize: false)
21
+ else
22
+ ActiveSupport::Inflector.send(arg, acc)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+
29
+ inflect :table, %i[tableize]
30
+ inflect :plural, %i[pluralize]
31
+ inflect :snake, %i[underscore]
32
+ inflect :snakes, %i[underscore pluralize]
33
+ inflect :scream, %i[underscore upcase]
34
+ inflect :screams, %i[pluralize underscore upcase]
35
+ inflect :camel, %i[lower_camelize]
36
+ inflect :camels, %i[pluralize lower_camelize]
37
+ inflect :param, %i[dasherize]
38
+ inflect :params, %i[pluralize dasherize]
39
+ inflect :entity, %i[camelize]
40
+ inflect :entities, %i[pluralize camelize]
41
+ inflect :title, %i[titleize]
42
+ inflect :titles, %i[pluralize titleize]
43
+ inflect :label, %i[humanize]
44
+ inflect :labels, %i[pluralize humanize]
45
+ inflect :description, %i[lower_humanize]
46
+ inflect :descriptions, %i[pluralize lower_humanize]
47
+ end
48
+ end
@@ -4,7 +4,7 @@ require "sdl/enum"
4
4
  require "sdl/attribute"
5
5
  require "sdl/association"
6
6
  require "sdl/attachment"
7
- require "active_support/core_ext/string/inflections"
7
+ require "active_support/inflector"
8
8
 
9
9
  module SDL
10
10
  # The parser takes a string and converts it to a {Field}.
@@ -13,8 +13,8 @@ module SDL
13
13
  #
14
14
  # Examples:
15
15
  #
16
- # * `title:string{120}:required`
17
- # * `body:text`
16
+ # * `title:string{120}`
17
+ # * `body:text:nullable`
18
18
  # * `status:enum{draft,published}`
19
19
  # * `user:belongs_to:foreign_key`
20
20
  # * `image:has_one_attached`
@@ -46,7 +46,7 @@ module SDL
46
46
  # * `has_one_attached`
47
47
  # * `has_many_attached`
48
48
  # * `unique`
49
- # * `required`
49
+ # * `nullable`
50
50
  # * `index`
51
51
  # * `foreign_key`
52
52
  # * `default{value}`
@@ -67,9 +67,9 @@ module SDL
67
67
  opts[:default] = coerce(opts[:default], type) if opts[:default]
68
68
 
69
69
  if type.is_a?(Symbol)
70
- Attribute.new(name, type, opts)
70
+ Attribute.new(name, type, **opts)
71
71
  else
72
- type.new(name, opts)
72
+ type.new(name, **opts)
73
73
  end
74
74
  end
75
75
 
@@ -86,7 +86,7 @@ module SDL
86
86
  ASSOCIATION_WITH_NAME = /^(belongs_to|has_one|has_many)\{(.*)\}$/
87
87
 
88
88
  DEFAULT = /^default\{(.*)\}$/
89
- MODIFIERS = %w[required unique index foreign_key]
89
+ MODIFIERS = %w[nullable unique index foreign_key]
90
90
 
91
91
  def parse!(arg, opts)
92
92
  case arg
@@ -103,12 +103,12 @@ module SDL
103
103
  opts[:type] = Enum
104
104
  opts[:values] = $1.split(SEPARATOR)
105
105
  when ASSOCIATION
106
- opts[:type] = Association.const_get($1.camelize)
106
+ opts[:type] = Association.const_get(camelize($1))
107
107
  when ASSOCIATION_WITH_NAME
108
- opts[:type] = Association.const_get($1.camelize)
108
+ opts[:type] = Association.const_get(camelize($1))
109
109
  opts[:model_name] = $2.to_sym
110
110
  when ATTACHMENT
111
- opts[:type] = Attachment.const_get($1.camelize)
111
+ opts[:type] = Attachment.const_get(camelize($1))
112
112
  when DEFAULT
113
113
  opts[:default] = $1
114
114
  when *MODIFIERS
@@ -118,6 +118,10 @@ module SDL
118
118
  end
119
119
  end
120
120
 
121
+ def camelize(value)
122
+ ActiveSupport::Inflector.camelize(value)
123
+ end
124
+
121
125
  def coerce(value, type)
122
126
  case type
123
127
  when :integer then value.to_i
@@ -1,3 +1,3 @@
1
1
  module SDL
2
- VERSION = "0.2.1"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sdl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Zane
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-16 00:00:00.000000000 Z
11
+ date: 2020-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -87,9 +87,10 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
+ - ".github/workflows/build.yml"
91
+ - ".github/workflows/publish.yml"
90
92
  - ".gitignore"
91
93
  - ".rspec"
92
- - ".travis.yml"
93
94
  - ".yardopts"
94
95
  - CODE_OF_CONDUCT.md
95
96
  - Gemfile
@@ -105,6 +106,7 @@ files:
105
106
  - lib/sdl/enum.rb
106
107
  - lib/sdl/field.rb
107
108
  - lib/sdl/model.rb
109
+ - lib/sdl/name.rb
108
110
  - lib/sdl/parser.rb
109
111
  - lib/sdl/schema.rb
110
112
  - lib/sdl/types.rb
@@ -132,8 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
134
  - !ruby/object:Gem::Version
133
135
  version: '0'
134
136
  requirements: []
135
- rubyforge_project:
136
- rubygems_version: 2.6.14
137
+ rubygems_version: 3.1.2
137
138
  signing_key:
138
139
  specification_version: 4
139
140
  summary: A generic schema definition language.
@@ -1,7 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.5.3
7
- before_install: gem install bundler -v 2.0.2