Class: Synthra::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/synthra/install_generator.rb

Overview

Rails generator for setting up Synthra in a Rails application

Examples:

Install Synthra

rails generate synthra:install

Instance Method Summary collapse

Instance Method Details

#add_gitignore_entriesObject



49
50
51
52
53
54
55
56
57
58
# File 'lib/generators/synthra/install_generator.rb', line 49

def add_gitignore_entries
  append_to_file ".gitignore", <<~GITIGNORE

    # Synthra generated files
    /generated/types/*
    /generated/mocks/*
    /generated/docs/*
    !/generated/*/.gitkeep
  GITIGNORE
end

#create_config_fileObject



17
18
19
# File 'lib/generators/synthra/install_generator.rb', line 17

def create_config_file
  template "synthra.yml", "config/synthra.yml"
end

#create_generated_directoryObject



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/generators/synthra/install_generator.rb', line 27

def create_generated_directory
  empty_directory "generated"
  empty_directory "generated/types"
  empty_directory "generated/mocks"
  empty_directory "generated/docs"
  
  create_file "generated/.gitkeep"
  create_file "generated/types/.gitkeep"
  create_file "generated/mocks/.gitkeep"
  create_file "generated/docs/.gitkeep"
end

#create_rake_tasksObject



45
46
47
# File 'lib/generators/synthra/install_generator.rb', line 45

def create_rake_tasks
  template "fake_data.rake", "lib/tasks/fake_data.rake"
end

#create_rspec_supportObject



39
40
41
42
43
# File 'lib/generators/synthra/install_generator.rb', line 39

def create_rspec_support
  return unless File.exist?("spec/spec_helper.rb")
  
  template "synthra_support.rb", "spec/support/synthra.rb"
end

#create_schemas_directoryObject



21
22
23
24
25
# File 'lib/generators/synthra/install_generator.rb', line 21

def create_schemas_directory
  empty_directory "schemas"
  template "user.dsl", "schemas/user.dsl"
  template "api_response.dsl", "schemas/api_response.dsl"
end

#show_readmeObject



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/generators/synthra/install_generator.rb', line 60

def show_readme
  say ""
  say "=" * 60, :green
  say "  Synthra installed successfully! 🎉", :green
  say "=" * 60, :green
  say ""
  say "Next steps:", :yellow
  say ""
  say "  1. Edit your schemas in schemas/"
  say "  2. Generate TypeScript types:"
  say "       rails fake_data:types", :cyan
  say ""
  say "  3. Generate mock data:"
  say "       rails fake_data:mocks", :cyan
  say ""
  say "  4. Start live preview server:"
  say "       rails fake_data:live", :cyan
  say ""
  say "  5. Run schema linter:"
  say "       rails fake_data:lint", :cyan
  say ""
  say "Documentation: https://github.com/talaatmagdyx/synthra"
  say ""
end