Class: Superstudio::Generators::SchemaGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- Superstudio::Generators::SchemaGenerator
- Includes:
- SchemaReader
- Defined in:
- lib/generators/superstudio/schema_generator.rb
Instance Method Summary collapse
Methods included from SchemaReader
#parse_json_schema, #read_schema, #replace_reference_keys, #schema_maps_directory, #schemas_directory
Instance Method Details
#create_schema_file ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/generators/superstudio/schema_generator.rb', line 15 def create_schema_file model_klass = name.classify.constantize model_columns = {} model_klass.columns.each do |column| column_type = column.type column_type = :string if [:datetime].include? column.type column_type = :number if [:decimal, :float].include? column.type model_columns[column.name] = column_type end file_data = template_header model_columns.each do |name, type| file_data << data_column(name, type) end file_data = file_data.chomp(",") file_data << if file_arg.nil? model_klass_name = model_klass.name.gsub(":", "").underscore else model_klass_name = file_arg end create_file "#{schemas_directory}/#{model_klass_name}.json.schema", file_data end |