Class: Stitches::ApiGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/stitches/api_generator.rb

Instance Method Summary collapse

Instance Method Details

#bootstrap_apiObject



8
9
10
11
12
13
14
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/stitches/api_generator.rb', line 8

def bootstrap_api
  gem_group :development, :test do
    gem "rspec"
    gem "rspec-rails"
    gem "rspec_api_documentation"
  end

  Bundler.with_unbundled_env do
    run "bundle install"
  end
  generate "rspec:install"

  inject_into_file "config/routes.rb", before: /^end/ do"namespace :api do\n  scope module: :v1, constraints: Stitches::ApiVersionConstraint.new(1) do\nresource 'ping', only: [ :create ]\n# Add your V1 resources here\n  end\n  scope module: :v2, constraints: Stitches::ApiVersionConstraint.new(2) do\nresource 'ping', only: [ :create ]\n# This is here simply to validate that versioning is working\n# as well as for your client to be able to validate this as well.\n  end\nend\n  ROUTES\n  end\n\n  copy_file \"app/controllers/api.rb\"\n  copy_file \"app/controllers/api/api_controller.rb\"\n  copy_file \"app/controllers/api/v1.rb\"\n  copy_file \"app/controllers/api/v2.rb\"\n  copy_file \"app/controllers/api/v1/pings_controller.rb\"\n  copy_file \"app/controllers/api/v2/pings_controller.rb\"\n  copy_file \"config/initializers/stitches.rb\"\n  template \"spec/features/api_spec.rb.erb\", \"spec/features/api_spec.rb\"\n  copy_file \"spec/acceptance/ping_v1_spec.rb\", \"spec/acceptance/ping_v1_spec.rb\"\n\n  inject_into_file 'spec/rails_helper.rb', %q{\nconfig.include RSpec::Rails::RequestExampleGroup, type: :feature\n}, before: /^end/\n\n  inject_into_file 'spec/rails_helper.rb', before: /^RSpec.configure/ do<<-REQUIRE\nrequire 'stitches/spec'\n  REQUIRE\n  end\n\n  append_to_file 'spec/rails_helper.rb' do<<-RSPEC_API\nrequire 'rspec_api_documentation'\n\nRspecApiDocumentation.configure do |config|\n  config.format = [:json, :html]\n  config.request_headers_to_include = %w(\nAccept\nContent-Type\nAuthorization\nIf-Modified-Since\n  )\n  config.response_headers_to_include = %w(\nLast-Modified\nETag\n  )\n  config.api_name = \"YOUR SERVICE NAME HERE\"\nend\nRSPEC_API\n  end\nend\n"