Skip to content

Commit

Permalink
Simplify configs for numeric field types
Browse files Browse the repository at this point in the history
Addresses issues raised by CodeClimate in https://codeclimate.com/github/sferik/rails_admin/pull/3378 and further consolidates a shared base field config for numeric types
  • Loading branch information
codealchemy committed Aug 11, 2021
1 parent 685cc7b commit 6a1a126
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 18 deletions.
8 changes: 2 additions & 6 deletions lib/rails_admin/config/fields/types/decimal.rb
@@ -1,17 +1,13 @@
require 'rails_admin/config/fields/base'
require 'rails_admin/config/fields/types/numeric'

module RailsAdmin
module Config
module Fields
module Types
class Decimal < RailsAdmin::Config::Fields::Base
class Decimal < RailsAdmin::Config::Fields::Types::Numeric
# Register field type for the type loader
RailsAdmin::Config::Fields::Types.register(self)

register_instance_option :view_helper do
:number_field
end

register_instance_option :html_attributes do
{
required: required?,
Expand Down
8 changes: 2 additions & 6 deletions lib/rails_admin/config/fields/types/float.rb
@@ -1,17 +1,13 @@
require 'rails_admin/config/fields/base'
require 'rails_admin/config/fields/types/numeric'

module RailsAdmin
module Config
module Fields
module Types
class Float < RailsAdmin::Config::Fields::Base
class Float < RailsAdmin::Config::Fields::Types::Numeric
# Register field type for the type loader
RailsAdmin::Config::Fields::Types.register(self)

register_instance_option :view_helper do
:number_field
end

register_instance_option :html_attributes do
{
required: required?,
Expand Down
8 changes: 2 additions & 6 deletions lib/rails_admin/config/fields/types/integer.rb
@@ -1,17 +1,13 @@
require 'rails_admin/config/fields/base'
require 'rails_admin/config/fields/types/numeric'

module RailsAdmin
module Config
module Fields
module Types
class Integer < RailsAdmin::Config::Fields::Base
class Integer < RailsAdmin::Config::Fields::Types::Numeric
# Register field type for the type loader
RailsAdmin::Config::Fields::Types.register(self)

register_instance_option :view_helper do
:number_field
end

register_instance_option :sort_reverse? do
serial?
end
Expand Down
18 changes: 18 additions & 0 deletions lib/rails_admin/config/fields/types/numeric.rb
@@ -0,0 +1,18 @@
require 'rails_admin/config/fields/base'

module RailsAdmin
module Config
module Fields
module Types
class Numeric < RailsAdmin::Config::Fields::Base
# Register field type for the type loader
RailsAdmin::Config::Fields::Types.register(self)

register_instance_option :view_helper do
:number_field
end
end
end
end
end
end
17 changes: 17 additions & 0 deletions spec/rails_admin/config/fields/types/numeric_spec.rb
@@ -0,0 +1,17 @@
require 'spec_helper'

RSpec.describe RailsAdmin::Config::Fields::Types::Numeric do
it_behaves_like 'a generic field type', :integer_field, :integer

subject do
RailsAdmin.config('FieldTest').fields.detect do |f|
f.name == :integer_field
end.with(object: FieldTest.new)
end

describe '#view_helper' do
it "uses the 'number' type input tag" do
expect(subject.view_helper).to eq(:number_field)
end
end
end

0 comments on commit 6a1a126

Please sign in to comment.