super 0.20.0 → 0.21.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,7 @@
3
3
  module Super
4
4
  class Display
5
5
  class SchemaTypes
6
- TYPES = Useful::Enum.new(:column, :record, :none)
6
+ TYPES = Useful::Enum.new(:attribute, :record, :none)
7
7
 
8
8
  class Builder
9
9
  extend Useful::Builder
@@ -15,37 +15,47 @@ module Super
15
15
  builder def real; @real = true; end
16
16
  builder def computed; @real = false; end
17
17
 
18
- builder def column; @type = :column; end
18
+ # @deprecated Prefer {#attribute}
19
+ builder def column
20
+ Useful::Deprecation["0.22"].deprecation_warning(":column", "use :attribute instead")
21
+ @type = :attribute
22
+ end
23
+ builder def attribute; @type = :attribute; end
19
24
  builder def record; @type = :record; end
20
25
  builder def none; @type = :none; end
21
26
 
22
27
  builder def ignore_nil; @ignore_nil = true; end
23
28
 
29
+ builder def attribute_name(name); @attribute_name = name; end
30
+
24
31
  def build
25
32
  Built.new(
26
33
  real: @real,
27
34
  type: @type,
28
35
  ignore_nil: !!@ignore_nil,
36
+ attribute_name: @attribute_name,
29
37
  &@transform_block
30
38
  )
31
39
  end
32
40
  end
33
41
 
34
42
  class Built
35
- def initialize(real:, type:, ignore_nil:, &transform_block)
43
+ def initialize(real:, type:, ignore_nil:, attribute_name:, &transform_block)
36
44
  @real = real
37
45
  @type = type
38
46
  @ignore_nil = ignore_nil
47
+ @attribute_name = attribute_name
39
48
  @transform_block = transform_block
40
49
  end
41
50
 
42
51
  def real?; @real; end
43
52
  attr_reader :type
53
+ attr_reader :attribute_name
44
54
 
45
55
  def present(attribute_name, value = nil)
46
56
  if @transform_block.nil?
47
57
  if attribute_name
48
- raise Error::ArgumentError, "Transformation block is not set for column: #{attribute_name}"
58
+ raise Error::ArgumentError, "Transformation block is not set for attribute: #{attribute_name}"
49
59
  else
50
60
  raise Error::ArgumentError, "Transformation block is not set!"
51
61
  end
@@ -61,6 +71,7 @@ module Super
61
71
  end
62
72
  end
63
73
 
74
+ # @deprecated
64
75
  class Badge
65
76
  extend Useful::Builder
66
77
 
@@ -107,26 +118,36 @@ module Super
107
118
  @fields = fields
108
119
  end
109
120
 
110
- def real(type = :column, &transform_block)
121
+ def real(type = :attribute, &transform_block)
122
+ if type == :column
123
+ Useful::Deprecation["0.22"].deprecation_warning(":column", "use :attribute instead")
124
+ type = :attribute
125
+ end
126
+
111
127
  TYPES
112
128
  .case(type)
113
- .when(:column) { Builder.new.real.ignore_nil.column.transform(&transform_block) }
114
- .when(:record) { Builder.new.real.ignore_nil.record.transform(&transform_block) }
115
- .when(:none) { Builder.new.real.ignore_nil.none.transform(&transform_block) }
129
+ .when(:attribute) { Builder.new.real.ignore_nil.attribute.transform(&transform_block) }
130
+ .when(:record) { Builder.new.real.ignore_nil.record.transform(&transform_block) }
131
+ .when(:none) { Builder.new.real.ignore_nil.none.transform(&transform_block) }
116
132
  .result
117
133
  end
118
134
 
119
- def computed(type = :column, &transform_block)
135
+ def computed(type = :attribute, &transform_block)
136
+ if type == :column
137
+ Useful::Deprecation["0.22"].deprecation_warning(":column", "use :attribute instead")
138
+ type = :attribute
139
+ end
140
+
120
141
  TYPES
121
142
  .case(type)
122
- .when(:column) { Builder.new.computed.ignore_nil.column.transform(&transform_block) }
123
- .when(:record) { Builder.new.computed.ignore_nil.record.transform(&transform_block) }
124
- .when(:none) { Builder.new.computed.ignore_nil.none.transform(&transform_block) }
143
+ .when(:attribute) { Builder.new.computed.ignore_nil.attribute.transform(&transform_block) }
144
+ .when(:record) { Builder.new.computed.ignore_nil.record.transform(&transform_block) }
145
+ .when(:none) { Builder.new.computed.ignore_nil.none.transform(&transform_block) }
125
146
  .result
126
147
  end
127
148
 
128
149
  def manual(&transform_block)
129
- real(:column, &transform_block)
150
+ real(:attribute, &transform_block)
130
151
  end
131
152
 
132
153
  def batch
@@ -146,8 +167,10 @@ module Super
146
167
  end
147
168
  end
148
169
 
170
+ # @deprecated Use {#real} or {#computed} instead, and return an instance of {Super::Badge}
149
171
  def badge(*builder_methods)
150
- builder_methods = %i[real ignore_nil column] if builder_methods.empty?
172
+ Useful::Deprecation["0.22"].deprecation_warning("#badge", "use #real or #computed instead, and return an instance of Super::Badge")
173
+ builder_methods = %i[real ignore_nil attribute] if builder_methods.empty?
151
174
  builder = builder_methods.each_with_object(Builder.new) do |builder_method, builder|
152
175
  builder.public_send(builder_method)
153
176
  end
data/lib/super/display.rb CHANGED
@@ -26,7 +26,9 @@ module Super
26
26
  include Schema::Common
27
27
 
28
28
  def initialize
29
- @fields = Super::Schema::Fields.new
29
+ @fields = Super::Schema::Fields.new(
30
+ transform_value_on_set: -> (val) { if val.respond_to?(:build) then val.build else val end }
31
+ )
30
32
  @schema_types = SchemaTypes.new(fields: @fields)
31
33
 
32
34
  yield(@fields, @schema_types)
@@ -43,7 +45,7 @@ module Super
43
45
 
44
46
  def to_partial_path
45
47
  if @action_inquirer.nil?
46
- raise Super::Error::Initalization,
48
+ raise Super::Error::Initialization,
47
49
  "You must call the `#apply` method after instantiating Super::Display"
48
50
  elsif @action_inquirer.index?
49
51
  "display_index"
@@ -57,7 +59,6 @@ module Super
57
59
  # @private
58
60
  def render_attribute(template:, record:, column:)
59
61
  formatter = @fields[column]
60
- formatter = formatter.build if formatter.respond_to?(:build)
61
62
 
62
63
  formatted =
63
64
  SchemaTypes::TYPES
@@ -65,7 +66,7 @@ module Super
65
66
  .when(:record) do
66
67
  formatter.present(column, record)
67
68
  end
68
- .when(:column) do
69
+ .when(:attribute) do
69
70
  value = record.public_send(column)
70
71
  formatter.present(column, value)
71
72
  end
data/lib/super/error.rb CHANGED
@@ -24,9 +24,9 @@ module Super
24
24
  )
25
25
  end
26
26
  end
27
- # Error raised when something wasn't initalized correctly, and if there isn't
27
+ # Error raised when something wasn't initialized correctly, and if there isn't
28
28
  # a more specific error
29
- class Initalization < Error; end
29
+ class Initialization < Error; end
30
30
  class ArgumentError < Error; end
31
31
  class AlreadyRegistered < Error; end
32
32
  class AlreadyTranscribed < Error; end
@@ -28,5 +28,16 @@ module Super
28
28
  ensure
29
29
  ActionView::Base.field_error_proc = original
30
30
  end
31
+
32
+ # Super's version of `#fields_for`
33
+ def super_fields_for(*args, **options, &block)
34
+ original = ActionView::Base.field_error_proc
35
+ ActionView::Base.field_error_proc = FormBuilder::FIELD_ERROR_PROC
36
+
37
+ options[:builder] ||= FormBuilder
38
+ return fields_for(*args, **options, &block)
39
+ ensure
40
+ ActionView::Base.field_error_proc = original
41
+ end
31
42
  end
32
43
  end
@@ -4,14 +4,14 @@ module Super
4
4
  class Navigation
5
5
  def initialize
6
6
  @builder = Builder.new
7
- @definition = yield @builder
8
- if !@definition.is_a?(Array)
9
- @definition = [@definition]
7
+ result = yield @builder
8
+ if result.is_a?(Array)
9
+ Useful::Deprecation["0.22"].deprecation_warning("returning an array", "calling a Super::Navigation builder method defines the navigation")
10
10
  end
11
11
  end
12
12
 
13
13
  def definition
14
- return @defs if instance_variable_defined?(:@defs)
14
+ return @definition if instance_variable_defined?(:@definition)
15
15
 
16
16
  searcher = RouteFormatterButReallySearcher.new
17
17
  inspector = ActionDispatch::Routing::RoutesInspector.new(Rails.application.routes.routes)
@@ -19,37 +19,12 @@ module Super
19
19
  all_matches = searcher.matches
20
20
  unused_matches = all_matches.each_with_object({}) { |match, hash| hash[match] = true }
21
21
 
22
- defs = expand_proc_syntax_sugar(@definition)
23
- defs = validate_and_determine_explicit_links(defs, unused_matches)
24
- @defs = expand_directives(defs, all_matches, unused_matches.keys)
22
+ defs = validate_and_determine_explicit_links(@builder.build, unused_matches)
23
+ @definition = expand_directives(defs, all_matches, unused_matches.keys)
25
24
  end
26
25
 
27
26
  private
28
27
 
29
- # This expands the syntax sugar that allows `nav.menu("Name")[nav.link(Item)]`
30
- def expand_proc_syntax_sugar(definition)
31
- definition.map do |link_or_menu_or_rest_or_menuproc|
32
- link_or_menu_or_rest =
33
- if link_or_menu_or_rest_or_menuproc.is_a?(Proc)
34
- link_or_menu_or_rest_or_menuproc.call
35
- else
36
- link_or_menu_or_rest_or_menuproc
37
- end
38
-
39
- if link_or_menu_or_rest.is_a?(Menu)
40
- link_or_menu_or_rest.links = link_or_menu_or_rest.links.map do |menu_item|
41
- if menu_item.is_a?(Proc)
42
- menu_item.call
43
- else
44
- menu_item
45
- end
46
- end
47
- end
48
-
49
- link_or_menu_or_rest
50
- end
51
- end
52
-
53
28
  def validate_and_determine_explicit_links(definition, unused_links)
54
29
  definition.each do |link_or_menu_or_rest|
55
30
  if link_or_menu_or_rest.is_a?(Super::Link)
@@ -103,31 +78,56 @@ module Super
103
78
  Menu = Struct.new(:title, :links)
104
79
 
105
80
  class Builder
81
+ def initialize
82
+ @links = []
83
+ @menu_level = 0
84
+ end
85
+
86
+ def build
87
+ @links
88
+ end
89
+
106
90
  def link(model, **kwargs)
107
91
  text = model.model_name.human.pluralize
108
92
  parts = Super::Link.polymorphic_parts(model)
109
93
 
110
- Super::Link.new(text, parts, **kwargs)
94
+ @links.push(Super::Link.new(text, parts, **kwargs))
95
+ self
111
96
  end
112
97
 
113
98
  def link_to(*args, **kwargs)
114
- Super::Link.new(*args, **kwargs)
99
+ @links.push(Super::Link.new(*args, **kwargs))
100
+ self
115
101
  end
116
102
 
117
- def menu(title, *links)
118
- menu = Menu.new(title, links)
119
- proc do |*more_links|
120
- menu.links += more_links
121
- menu
103
+ def menu(title)
104
+ if @menu_level > 0
105
+ raise Super::Error::ArgumentError, "Navigation menus can't be nested"
106
+ end
107
+
108
+ begin
109
+ @menu_level += 1
110
+ original_links = @links
111
+ @links = []
112
+ yield
113
+ menu_links = @links
114
+ ensure
115
+ @links = original_links
116
+ @menu_level -= 1
122
117
  end
118
+
119
+ @links.push(Menu.new(title, menu_links))
120
+ self
123
121
  end
124
122
 
125
123
  def rest
126
- REST
124
+ @links.push(REST)
125
+ self
127
126
  end
128
127
 
129
128
  def all
130
- ALL
129
+ @links.push(ALL)
130
+ self
131
131
  end
132
132
  end
133
133
 
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Super
4
+ class Query
5
+ def initialize(model:, params:, current_path:)
6
+ @model = model
7
+ @params = params
8
+ @path = current_path
9
+ @addons = {}
10
+ @backwards_addons = {}
11
+ end
12
+
13
+ attr_reader :addons
14
+ attr_reader :model
15
+ attr_reader :params
16
+ attr_reader :path
17
+ attr_reader :backwards_addons
18
+
19
+ private :model
20
+ private :params
21
+ private :backwards_addons
22
+
23
+ def build(klass, namespace:, **additional_initialization_arguments)
24
+ params_for_querier =
25
+ params.fetch(namespace) { ActiveSupport::HashWithIndifferentAccess.new }
26
+
27
+ instance = klass.new(
28
+ model: model,
29
+ params: params_for_querier,
30
+ **additional_initialization_arguments
31
+ )
32
+
33
+ addons[namespace] = instance
34
+ backwards_addons[instance] = namespace
35
+ instance
36
+ end
37
+
38
+ def namespace_for(query_form_object)
39
+ backwards_addons.fetch(query_form_object)
40
+ end
41
+
42
+ def form_options
43
+ {
44
+ url: path,
45
+ method: :get
46
+ }
47
+ end
48
+
49
+ def apply_changes(records)
50
+ addons.each_value do |addon|
51
+ records = addon.apply_changes(records)
52
+ end
53
+
54
+ records
55
+ end
56
+
57
+ def to_partial_path
58
+ "query"
59
+ end
60
+ end
61
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Super
4
4
  # Configures the host Rails app to work with Super
5
- class Engine < ::Rails::Engine
5
+ class Railtie < ::Rails::Engine
6
6
  isolate_namespace Super
7
7
 
8
8
  initializer "super.assets.precompile" do |app|
@@ -11,6 +11,12 @@ module Super
11
11
  end
12
12
  end
13
13
 
14
+ initializer "super.inclusion" do
15
+ ActiveSupport.on_load(:action_view) do
16
+ include Super::FormBuilderHelper
17
+ end
18
+ end
19
+
14
20
  config.to_prepare do
15
21
  Super::Plugin::Registry.controller.ordered do |klass, method_name|
16
22
  Super::ApplicationController.public_send(method_name, klass)
data/lib/super/reset.rb CHANGED
@@ -16,6 +16,8 @@ module Super
16
16
  # Defined in Super::ApplicationController
17
17
  current_action: true,
18
18
  with_current_action: true,
19
+
20
+ # Keep all of the ones in Super::SitewideController
19
21
  }
20
22
 
21
23
  included do
@@ -27,6 +29,11 @@ module Super
27
29
  undef_method :update
28
30
  undef_method :destroy
29
31
 
32
+ Super::ViewController.private_instance_methods(false).each do |imethod|
33
+ next if KEEP.key?(imethod)
34
+ undef_method imethod
35
+ end
36
+
30
37
  Super::SubstructureController.private_instance_methods(false).each do |imethod|
31
38
  next if KEEP.key?(imethod)
32
39
  undef_method imethod
data/lib/super/schema.rb CHANGED
@@ -14,8 +14,9 @@ module Super
14
14
  class Fields
15
15
  include Enumerable
16
16
 
17
- def initialize
17
+ def initialize(transform_value_on_set: nil)
18
18
  @backing = {}
19
+ @transform_value_on_set = transform_value_on_set
19
20
  end
20
21
 
21
22
  def [](key)
@@ -23,7 +24,12 @@ module Super
23
24
  end
24
25
 
25
26
  def []=(key, value)
26
- @backing[key] = value
27
+ @backing[key] =
28
+ if @transform_value_on_set
29
+ @transform_value_on_set.call(value)
30
+ else
31
+ value
32
+ end
27
33
  end
28
34
 
29
35
  def keys
data/lib/super/sort.rb CHANGED
@@ -7,11 +7,9 @@ module Super
7
7
 
8
8
  def initialize(model:, params:, default:, sortable_columns:)
9
9
  @model = model
10
- @params = params.dup
10
+ @params = params
11
11
  @default = default
12
12
  @sortable_columns = sortable_columns.map(&:to_s)
13
-
14
- @params.permit!
15
13
  end
16
14
 
17
15
  attr_reader :sortable_columns
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/deprecation"
4
+
5
+ module Super
6
+ module Useful
7
+ class Deprecation
8
+ VERSIONS = {
9
+ "0.22" => ActiveSupport::Deprecation.new("0.22", "Super")
10
+ }
11
+ private_constant :VERSIONS
12
+
13
+ def self.[](version)
14
+ VERSIONS.fetch(version)
15
+ end
16
+ end
17
+ end
18
+ end
data/lib/super/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Super
4
- VERSION = "0.20.0"
4
+ VERSION = "0.21.0"
5
5
  end
@@ -6,10 +6,6 @@ module Super
6
6
  @data = ReorderableHash.new(chain)
7
7
  end
8
8
 
9
- def chain
10
- @chain ||= @data.values
11
- end
12
-
13
9
  def insert(*args, **kwargs)
14
10
  if instance_variable_defined?(:@chain)
15
11
  raise Error::ViewChain::ChainAlreadyStarted
@@ -21,5 +17,19 @@ module Super
21
17
  def to_partial_path
22
18
  "view_chain"
23
19
  end
20
+
21
+ def shift
22
+ chain.shift
23
+ end
24
+
25
+ def empty?
26
+ chain.empty?
27
+ end
28
+
29
+ private
30
+
31
+ def chain
32
+ @chain ||= @data.to_h
33
+ end
24
34
  end
25
35
  end
data/lib/super.rb CHANGED
@@ -2,10 +2,15 @@
2
2
 
3
3
  require "tsort"
4
4
 
5
+ if !ENV["SUPER_SKIP_REQUIRE_CSV"]
6
+ require "csv"
7
+ end
8
+
5
9
  require "rails/engine"
6
10
 
7
11
  require "super/schema/common"
8
12
  require "super/useful/builder"
13
+ require "super/useful/deprecations"
9
14
  require "super/useful/enum"
10
15
  require "super/useful/i19"
11
16
 
@@ -35,6 +40,7 @@ require "super/form_builder/action_text_methods"
35
40
  require "super/form_builder/base_methods"
36
41
  require "super/form_builder/flatpickr_methods"
37
42
  require "super/form_builder/option_methods"
43
+ require "super/form_builder_helper"
38
44
  require "super/layout"
39
45
  require "super/link"
40
46
  require "super/link_builder"
@@ -44,7 +50,7 @@ require "super/pagination"
44
50
  require "super/panel"
45
51
  require "super/partial"
46
52
  require "super/plugin"
47
- require "super/query/form_object"
53
+ require "super/query"
48
54
  require "super/reorderable_hash"
49
55
  require "super/reset"
50
56
  require "super/schema"
@@ -54,4 +60,4 @@ require "super/version"
54
60
  require "super/view_chain"
55
61
  require "super/view_helper"
56
62
 
57
- require "super/engine"
63
+ require "super/railtie"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Ahn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-09 00:00:00.000000000 Z
11
+ date: 2022-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -128,48 +128,6 @@ dependencies:
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
- - !ruby/object:Gem::Dependency
132
- name: minitest-ci
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
- - !ruby/object:Gem::Dependency
146
- name: appraisal
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: '0'
159
- - !ruby/object:Gem::Dependency
160
- name: yard
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - ">="
164
- - !ruby/object:Gem::Version
165
- version: '0'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- requirements:
170
- - - ">="
171
- - !ruby/object:Gem::Version
172
- version: '0'
173
131
  - !ruby/object:Gem::Dependency
174
132
  name: mocha
175
133
  requirement: !ruby/object:Gem::Requirement
@@ -254,8 +212,9 @@ files:
254
212
  - app/assets/javascripts/super/application.js
255
213
  - app/assets/stylesheets/super/application.css
256
214
  - app/controllers/super/application_controller.rb
215
+ - app/controllers/super/sitewide_controller.rb
257
216
  - app/controllers/super/substructure_controller.rb
258
- - app/helpers/super/form_builder_helper.rb
217
+ - app/controllers/super/view_controller.rb
259
218
  - app/views/layouts/super/application.html.erb
260
219
  - app/views/super/application/_batch_button.html.erb
261
220
  - app/views/super/application/_batch_checkbox.csv.erb
@@ -295,7 +254,6 @@ files:
295
254
  - app/views/super/feather/README.md
296
255
  - app/views/super/feather/_x.html
297
256
  - config/locales/en.yml
298
- - config/routes.rb
299
257
  - frontend/super-frontend/dist/application.css
300
258
  - frontend/super-frontend/dist/application.js
301
259
  - frontend/super-frontend/dist/package.json
@@ -324,7 +282,6 @@ files:
324
282
  - lib/super/display.rb
325
283
  - lib/super/display/guesser.rb
326
284
  - lib/super/display/schema_types.rb
327
- - lib/super/engine.rb
328
285
  - lib/super/error.rb
329
286
  - lib/super/filter.rb
330
287
  - lib/super/filter/form_object.rb
@@ -342,6 +299,7 @@ files:
342
299
  - lib/super/form_builder/base_methods.rb
343
300
  - lib/super/form_builder/flatpickr_methods.rb
344
301
  - lib/super/form_builder/option_methods.rb
302
+ - lib/super/form_builder_helper.rb
345
303
  - lib/super/layout.rb
346
304
  - lib/super/link.rb
347
305
  - lib/super/link_builder.rb
@@ -352,7 +310,8 @@ files:
352
310
  - lib/super/partial.rb
353
311
  - lib/super/partial/resolving.rb
354
312
  - lib/super/plugin.rb
355
- - lib/super/query/form_object.rb
313
+ - lib/super/query.rb
314
+ - lib/super/railtie.rb
356
315
  - lib/super/reorderable_hash.rb
357
316
  - lib/super/reset.rb
358
317
  - lib/super/schema.rb
@@ -360,6 +319,7 @@ files:
360
319
  - lib/super/schema/guesser.rb
361
320
  - lib/super/sort.rb
362
321
  - lib/super/useful/builder.rb
322
+ - lib/super/useful/deprecations.rb
363
323
  - lib/super/useful/enum.rb
364
324
  - lib/super/useful/i19.rb
365
325
  - lib/super/version.rb
@@ -390,7 +350,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
390
350
  - !ruby/object:Gem::Version
391
351
  version: '0'
392
352
  requirements: []
393
- rubygems_version: 3.3.4
353
+ rubygems_version: 3.2.33
394
354
  signing_key:
395
355
  specification_version: 4
396
356
  summary: A simple, powerful, zero dependency Rails admin framework
data/config/routes.rb DELETED
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Rails.application.routes.draw do
4
- end