Skip to content

Commit

Permalink
add generators
Browse files Browse the repository at this point in the history
  • Loading branch information
Reed Law committed Jun 28, 2014
1 parent 057cd24 commit d4c210d
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 16 deletions.
47 changes: 31 additions & 16 deletions rails-clean-architecture.rb
Original file line number Diff line number Diff line change
@@ -1,19 +1,31 @@
gem 'hashie'
gem 'pg'
gem 'tilt'
gem 'tilt-handlebars'
gem 'unicorn'

gem_group :development, :test do
gem 'byebug'
end

gsub_file "Gemfile", /^gem\s+["']sqlite3["'].*\n/, ''
gsub_file "Gemfile", /^gem\s+["']jbuilder["'].*\n/, ''
gsub_file "Gemfile", /^gem\s+["']sdoc["'].*\n/, ''
gsub_file "Gemfile", /^#.*\n/, ''
gsub_file "Gemfile", /^$\n/, ''
gsub_file "Gemfile", /"/, '\''
gsub_file 'Gemfile', /^gem\s+["']sqlite3["'].*\n/, ''
gsub_file 'Gemfile', /^gem\s+["']jbuilder["'].*\n/, ''
gsub_file 'Gemfile', /^gem\s+["']sdoc["'].*\n/, ''
gsub_file 'Gemfile', /^#.*\n/, ''
gsub_file 'Gemfile', /^$\n/, ''
gsub_file 'Gemfile', /"/, '\''

environment <<-CODE
config.generators do |g|
g.orm :active_record
g.stylesheets false
g.javascripts false
g.controller :clean_controller
end
CODE

# Remove assets/views
run "rm -r app/assets app/models app/views lib/assets"
run 'rm -r app/assets app/models app/views lib/assets'

def source_paths
Array(super) +
Expand All @@ -24,20 +36,23 @@ def source_paths
inside 'entities' do
copy_file 'entity.rb'
end
end

inside 'lib' do
inside 'generators' do
inside 'entity' do
copy_file 'entity_generator.rb'
end
end
inside 'interactors' do
copy_file 'interactor.rb'
end
end

inside 'lib' do
copy_file 'request.rb'
end

inside 'lib' do
copy_file 'response.rb'
inside 'templates' do
inside 'rails' do
inside 'controller' do
copy_file 'controller.rb'
end
end
end
end

inside 'spec' do
Expand Down
11 changes: 11 additions & 0 deletions rails_root/lib/generators/entity/entity_generator.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
class EntityGenerator < Rails::Generators::NamedBase
desc "This generator creates an entity file in lib/entities"
source_root File.expand_path('../templates', __FILE__)

def create_entity_file
create_file "lib/entities/#{file_name}.rb", <<-FILE
class #{class_name} < Entity
end
FILE
end
end
17 changes: 17 additions & 0 deletions rails_root/lib/templates/rails/controller/controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
require 'tilt/handlebars'

<% if namespaced? -%>
require_dependency "<%= namespaced_path %>/application_controller"
<% end -%>
<% module_namespacing do -%>
class <%= class_name %>Controller < ApplicationController
<% actions.each do |action| -%>
def <%= action %>
template = Tilt.new('app/views/<%= file_name %>/<%= action %>.html.hbs')
render text: template.render
end
<%= "\n" unless action == actions.last -%>
<% end -%>
end
<% end -%>

0 comments on commit d4c210d

Please sign in to comment.