Skip to content

Commit

Permalink
Implement resource Rails generator
Browse files Browse the repository at this point in the history
  • Loading branch information
aldesantis committed May 7, 2017
1 parent 03fd483 commit 0c6ed78
Show file tree
Hide file tree
Showing 11 changed files with 122 additions and 0 deletions.
11 changes: 11 additions & 0 deletions lib/generators/pragma/resource_generator.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module Pragma
class ResourceGenerator < ::Rails::Generators::NamedBase
source_root File.expand_path("../templates", __FILE__)

class_option :version, type: :numeric, default: 1, desc: 'The API version to use', aliases: '-v'

def copy_initializer_file
directory 'resource', "app/resources/api/v#{options['version']}/#{file_name}"
end
end
end
10 changes: 10 additions & 0 deletions lib/generators/pragma/templates/resource/contract/base.rb.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module API
module V<%= options['version'] %>
module Contract
module <%= file_name.camelcase %>
class Base < Pragma::Contract::Base
end
end
end
end
end
10 changes: 10 additions & 0 deletions lib/generators/pragma/templates/resource/contract/create.rb.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module API
module V<%= options['version'] %>
module Contract
module <%= file_name.camelcase %>
class Create < Base
end
end
end
end
end
10 changes: 10 additions & 0 deletions lib/generators/pragma/templates/resource/contract/update.rb.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module API
module V<%= options['version'] %>
module Contract
module <%= file_name.camelcase %>
class Update < Base
end
end
end
end
end
8 changes: 8 additions & 0 deletions lib/generators/pragma/templates/resource/decorator.rb.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module API
module V<%= options['version'] %>
module <%= file_name.camelcase %>
class Decorator < Pragma::Decorator::Base
end
end
end
end
10 changes: 10 additions & 0 deletions lib/generators/pragma/templates/resource/operation/create.rb.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module API
module V<%= options['version'] %>
module Operation
module <%= file_name.camelcase %>
class Create < Pragma::Operation::Create
end
end
end
end
end
10 changes: 10 additions & 0 deletions lib/generators/pragma/templates/resource/operation/destroy.rb.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module API
module V<%= options['version'] %>
module Operation
module <%= file_name.camelcase %>
class Destroy < Pragma::Operation::Destroy
end
end
end
end
end
10 changes: 10 additions & 0 deletions lib/generators/pragma/templates/resource/operation/index.rb.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module API
module V<%= options['version'] %>
module Operation
module <%= file_name.camelcase %>
class Index < Pragma::Operation::Index
end
end
end
end
end
10 changes: 10 additions & 0 deletions lib/generators/pragma/templates/resource/operation/update.rb.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module API
module V<%= options['version'] %>
module Operation
module <%= file_name.camelcase %>
class Update < Pragma::Operation::Update
end
end
end
end
end
29 changes: 29 additions & 0 deletions lib/generators/pragma/templates/resource/policy.rb.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
module API
module V<%= options['version'] %>
module <%= file_name.camelcase %>
class Policy < Pragma::Policy::Base
class Scope < Pragma::Policy::Base::Scope
def resolve
scope.where('1 = 0')
end
end

def show?
false
end

def create?
false
end

def update?
false
end

def destroy?
false
end
end
end
end
end
4 changes: 4 additions & 0 deletions lib/pragma/rails.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
require 'pragma/rails/controller'
require 'pragma/rails/resource_controller'

if defined?(::Rails::Generators)
require 'generators/pragma/resource_generator'
end

module Pragma
# Ruby on Rails integration for the Pragma architecture.
#
Expand Down

0 comments on commit 0c6ed78

Please sign in to comment.