Sha256: 4361bfcf6002b5e71bbb28fa0d0d949a6d9d804b71adc864f083ea9c4ca83446
Contents?: true
Size: 978 Bytes
Versions: 2
Compression:
Stored size: 978 Bytes
Contents
# frozen_string_literal: true module RailsBestPractices module Prepares # Remember the model attributes. class SchemaPrepare < Core::Check interesting_nodes :command, :command_call interesting_files SCHEMA_FILE # all attribute types ATTRIBUTE_TYPES = %w[integer float boolean string text date time datetime binary].freeze def initialize @model_attributes = Prepares.model_attributes end add_callback :start_command do |node| if 'create_table' == node.message.to_s @last_klazz = node.arguments.all.first.to_s.classify end end # check command_call node to remember the model attributes. add_callback :start_command_call do |node| if ATTRIBUTE_TYPES.include? node.message.to_s attribute_name = node.arguments.all.first.to_s @model_attributes.add_attribute(@last_klazz, attribute_name, node.message.to_s) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rails_best_practices-1.19.3 | lib/rails_best_practices/prepares/schema_prepare.rb |
rails_best_practices-1.19.2 | lib/rails_best_practices/prepares/schema_prepare.rb |