grape_resource 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5785fa70d230cc60d30b9697296ccd0cb5a1a0ee43258345c3ba5eef5a5e9878
4
- data.tar.gz: 14adaeb5c8107575411ac066e1e983f4ba1db57804268c671a9ae26a042f61f9
3
+ metadata.gz: 18a0f9753a02d378d8f4f1cd7ccddb48952958b56a7bfef8526b2bc8e528d337
4
+ data.tar.gz: a2e8531e0149e10b7864fa5aad490f10c8f399df7c13d3bf313eac6a4d7b8d85
5
5
  SHA512:
6
- metadata.gz: 655a039abb684839b9ad128d75c153e3a8116141456a6aa1ae39146c40f650dd8f41eb5bb19f1c3833c0731d332661530b4c2207bf001534b7cbca785b485de1
7
- data.tar.gz: caa522101776ec36d70f574c84bd7318320605c59cde01cb951bb8da39bf6997c4357c3afb022bd0a147fc7f9fbb935b02ec80e7d95ab0b29e8613a9d98a0965
6
+ metadata.gz: f9a52aa191ddab0b319284b0028c8f381015ec2dfed5d8c4d36070972451422882897e32eab10e9b1bbe8a6c5092148070467b29a252b077afbba3e864302738
7
+ data.tar.gz: 126ba5569261901342908c42066b86b89d8358fa0fb81b3e1159f20ce4baca8de3a6ac475fb315cf18a6b32ca281f926bc79e514b588c49b4dc1ddca1bc55986
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- grape_resource (0.1.0)
4
+ grape_resource (0.1.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -40,6 +40,9 @@ Modify GrapeResource configuration inside `config/initializers/grape_resource.rb
40
40
 
41
41
  1. `config.directory` will be your endpoint directory. Default to : `controllers/API/v1/`
42
42
  2. `config.class_name_prefix` will be your class name prefix for your endpoint. Default to : `API::V1`
43
+ 3. `config.entry_point_routes` will be your entry point for your routes. Default to : `# Routes entry point`
44
+ 4. `config.success_formatter` will be your success formatter. Default to : `formatter :json, ::API::SuccessFormatter`
45
+ 5. `config.error_formatter` will be your error formatter. Default to : `error_formatter :json, ::API::ErrorFormatter`
43
46
 
44
47
  ### Generator
45
48
 
@@ -47,6 +50,10 @@ To generate REST API :
47
50
 
48
51
  $ rails g grape_resource:rest class_name
49
52
 
53
+ Example :
54
+
55
+ $ rails g grape_resource:rest article
56
+
50
57
  This will give you :
51
58
 
52
59
  1. GET /
@@ -57,7 +64,11 @@ This will give you :
57
64
 
58
65
  To generate namespaced API :
59
66
 
60
- $ rails g grape_resource:namespace namespace api_endpoint1 api_endpoint2:method
67
+ $ rails g grape_resource:namespace namespace api_endpoint1 api_endpoint2:method
68
+
69
+ Example :
70
+
71
+ $ rails g grape_resource:namespace article popular like:post similar:get:member trending:get:collection
61
72
 
62
73
  While method is one of :
63
74
 
@@ -0,0 +1,105 @@
1
+ module GrapeResource
2
+ module GeneratorHelpers
3
+ attr_accessor :attributes
4
+
5
+ private
6
+ def check_endpoint_or_method(args)
7
+ @default_endpoint, custom, custom2 = [], [], []
8
+ args.each do |arg|
9
+ case arg.split(":").length
10
+ when 1
11
+ @default_endpoint << arg
12
+ when 2
13
+ custom << arg.split(":")
14
+ else
15
+ if arg.split(":")[1] == "get"
16
+ custom2 << arg.split(":")
17
+ end
18
+ end
19
+ end
20
+ @default_endpoint
21
+ @custom_endpoint, @custom_endpoint2 = custom.to_h, custom2
22
+ collection_or_member
23
+ get_endpoint_and_method_name
24
+ end
25
+
26
+ def collection_or_member
27
+ collection, member = [], []
28
+ @custom_endpoint2.each do |c2|
29
+ collection << c2.take(2) if c2.last == "collection"
30
+ member << c2.take(2) if c2.last == "member"
31
+ end
32
+ @collection, @member = collection.to_h, member.to_h
33
+ end
34
+
35
+ def get_endpoint_and_method_name
36
+ @put, @post, @delete = {}, {}, {}
37
+ @custom_endpoint.each do |k, v|
38
+ @put[k] = v if v == "put"
39
+ @post[k] = v if v == "post"
40
+ @delete[k] = v if v == "delete"
41
+ end
42
+ end
43
+
44
+ def generator_type class_name
45
+ @name_of_class = class_name == "rest" ? name.camelize.pluralize : name.camelize.singularize
46
+ @name_of_class
47
+ end
48
+
49
+ # Routes
50
+ def routes_exist?
51
+ @routes_file = Rails.root.join("app/#{GrapeResource.directory}#{name.underscore.pluralize}/routes.rb")
52
+ File.exist? @routes_file
53
+ end
54
+
55
+ def mount_code_exist?
56
+ string = " mount #{GrapeResource.class_name_prefix}::#{name.camelize.pluralize}::Resources::#{@name_of_class}\n"
57
+ File.read(@routes_file).each_line do |line|
58
+ return true if line == string
59
+ end
60
+ return false
61
+ end
62
+
63
+ # Main
64
+ def mounted_routes_exist?
65
+ @main_file = Rails.root.join("app/#{GrapeResource.directory}main.rb")
66
+ string = " mount API::V1::#{name.camelize.pluralize}::Routes\n"
67
+ File.read(@main_file).each_line do |line|
68
+ return true if line == string
69
+ end
70
+ return false
71
+ end
72
+
73
+ # Specs
74
+ def rspec_exist?
75
+ rspec_file = Rails.root.join("app/#{GrapeResource.directory}#{name.underscore.pluralize}/spec/#{@name_of_class.underscore}_spec.rb")
76
+ File.exist? rspec_file
77
+ end
78
+
79
+ # Entities
80
+ def entities_exist?
81
+ entity_file = Rails.root.join("app/#{GrapeResource.directory}#{name.underscore.pluralize}/entities/#{name.underscore.singularize}.rb")
82
+ File.exist? entity_file
83
+ end
84
+
85
+ def model_columns_for_attributes
86
+ name.classify.constantize.columns.reject do |column|
87
+ column.name.to_s =~ /^(id|created_at|updated_at)$/
88
+ end
89
+ end
90
+
91
+ def editable_attributes
92
+ attributes ||= model_columns_for_attributes.map do |column|
93
+ Rails::Generators::GeneratedAttribute.new(column.name.to_s, column.type.to_s)
94
+ end
95
+ end
96
+
97
+ def attributes_for_params
98
+ @entities = {}
99
+ editable_attributes.map do |col|
100
+ @entities[col.name] = col.type.downcase == "text" || "uuid" ? "String" : col.type.capitalize
101
+ end
102
+ @entities
103
+ end
104
+ end
105
+ end
@@ -5,5 +5,10 @@ module GrapeResource
5
5
  def copy_initializer
6
6
  template "initializer.rb", "config/initializers/grape_resource.rb"
7
7
  end
8
+
9
+ def insert_entry_point
10
+ insert_into_file "app/#{GrapeResource.directory}/main.rb", "\n\n #{GrapeResource.entry_point_routes} -- DONT REMOVE THIS LINE", after: " mount API::V1::Info::Routes"
11
+ end
12
+
8
13
  end
9
14
  end
@@ -0,0 +1,67 @@
1
+ require "generators/grape_resource/generator_helpers.rb"
2
+
3
+ module GrapeResource
4
+ class NamespaceGenerator < Rails::Generators::NamedBase
5
+ source_root File.expand_path("../../templates", __FILE__)
6
+ include GrapeResource::GeneratorHelpers
7
+
8
+ def generate
9
+ unless Object.const_defined?(name.classify)
10
+ say
11
+ say
12
+ say "You need to generate model", :red
13
+ say
14
+ say "Example :"
15
+ say " rails g model #{name.classify} attr1 attr2", :green
16
+ say
17
+ return
18
+ end
19
+
20
+ generator_type "namespace"
21
+ insert_resources
22
+ insert_into_main unless mounted_routes_exist?
23
+ insert_namespace_entities unless entities_exist?
24
+ template_rspec unless rspec_exist?
25
+ routes_exist? ? insert_namespace_routes : template_namespace_routes
26
+ end
27
+
28
+ private
29
+ def insert_resources
30
+ check_endpoint_or_method args
31
+ attributes_for_params
32
+
33
+ template "namespace/namespace_endpoint.rb.erb", "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/resources/#{name.underscore.singularize}.rb"
34
+
35
+ inside "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/resources/" do
36
+ gsub_file("#{name.underscore.singularize}.rb", /.*?remove.*\r?\n/, "")
37
+ end
38
+ end
39
+
40
+ def insert_into_main
41
+ insert_into_file "app/#{GrapeResource.directory}/main.rb", " mount API::V1::#{name.camelize.pluralize}::Routes\n", before: " #{GrapeResource.entry_point_routes} -- DONT REMOVE THIS LINE"
42
+ end
43
+
44
+ def insert_namespace_entities
45
+ attributes_for_params
46
+
47
+ template "entities.rb.erb", "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/entities/#{name.underscore.singularize}.rb"
48
+
49
+ inside "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/entities/" do
50
+ gsub_file("#{name.underscore.singularize}.rb", /.*?remove.*\r?\n/, "")
51
+ end
52
+ end
53
+
54
+ def template_rspec
55
+ template "specs.rb.erb", "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/spec/#{name.underscore.singularize}_spec.rb"
56
+ end
57
+
58
+ def insert_namespace_routes
59
+ insert_into_file "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/routes.rb", " mount #{GrapeResource.class_name_prefix}::#{name.camelize.pluralize}::Resources::#{name.camelize.singularize}\n", before: " #{GrapeResource.entry_point_routes} -- DONT REMOVE THIS LINE\n" unless mount_code_exist?
60
+ end
61
+
62
+ def template_namespace_routes
63
+ template "routes.rb.erb", "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/routes.rb"
64
+ end
65
+
66
+ end
67
+ end
@@ -0,0 +1,66 @@
1
+ require "generators/grape_resource/generator_helpers.rb"
2
+
3
+ module GrapeResource
4
+ class RestGenerator < Rails::Generators::NamedBase
5
+ source_root File.expand_path("../../templates", __FILE__)
6
+ include GrapeResource::GeneratorHelpers
7
+
8
+ def run_me
9
+ unless Object.const_defined?(name.classify)
10
+ say
11
+ say
12
+ say "You need to generate model", :red
13
+ say
14
+ say "Example :"
15
+ say " rails g model #{name.classify} attr1 attr2", :green
16
+ say
17
+ return
18
+ end
19
+
20
+ generator_type "rest"
21
+ create_rest_endpoint
22
+ insert_into_main unless mounted_routes_exist?
23
+ insert_rest_entities unless entities_exist?
24
+ template_rspec unless rspec_exist?
25
+ routes_exist? ? insert_rest_routes : template_rest_routes
26
+ end
27
+
28
+ private
29
+ def create_rest_endpoint
30
+ attributes_for_params
31
+
32
+ template "rest/rest_endpoint.rb.erb", "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/resources/#{name.underscore.pluralize}.rb"
33
+
34
+ inside "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/resources/" do
35
+ gsub_file("#{name.underscore.pluralize}.rb", /.*?remove.*\r?\n/, "")
36
+ end
37
+ end
38
+
39
+ def insert_into_main
40
+ insert_into_file "app/#{GrapeResource.directory}/main.rb", " mount API::V1::#{name.camelize.pluralize}::Routes\n", before: " #{GrapeResource.entry_point_routes} -- DONT REMOVE THIS LINE"
41
+ end
42
+
43
+ def insert_rest_entities
44
+ attributes_for_params
45
+
46
+ template "entities.rb.erb", "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/entities/#{name.underscore.singularize}.rb"
47
+
48
+ inside "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/entities/" do
49
+ gsub_file("#{name.underscore.singularize}.rb", /.*?remove.*\r?\n/, "")
50
+ end
51
+ end
52
+
53
+ def template_rspec
54
+ template "specs.rb.erb", "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/spec/#{name.underscore.pluralize}_spec.rb"
55
+ end
56
+
57
+ def insert_rest_routes
58
+ insert_into_file "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/routes.rb", " mount #{GrapeResource.class_name_prefix}::#{name.camelize.pluralize}::Resources::#{name.camelize.pluralize}\n", before: " #{GrapeResource.entry_point_routes} -- DONT REMOVE THIS LINE\n" unless mount_code_exist?
59
+ end
60
+
61
+ def template_rest_routes
62
+ template "routes.rb.erb", "app/#{GrapeResource.directory}/#{name.underscore.pluralize}/routes.rb"
63
+ end
64
+
65
+ end
66
+ end
@@ -0,0 +1,6 @@
1
+ class <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Entities::<%= name.camelize.singularize %> < Grape::Entity
2
+ expose :id
3
+ remove<% @entities.each do |k, v| %>
4
+ expose :<%= k %>
5
+ remove<% end %>
6
+ end
@@ -4,4 +4,11 @@ GrapeResource.setup do |config|
4
4
 
5
5
  # Class name prefix
6
6
  config.class_name_prefix = "API::V1"
7
- end
7
+
8
+ # Entry point routes
9
+ config.entry_point_routes = "# Routes entry point"
10
+
11
+ # Formatter
12
+ config.success_formatter = "formatter :json, ::API::SuccessFormatter"
13
+ config.error_formatter = "error_formatter :json, ::API::ErrorFormatter"
14
+ end
@@ -0,0 +1,91 @@
1
+ class <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Resources::<%= name.camelize.singularize %> < <%= GrapeResource.class_name_prefix %>::ApiResource
2
+ helpers <%= GrapeResource.class_name_prefix %>::Helpers
3
+
4
+ resource "<%= name.underscore.singularize %>" do
5
+
6
+ <% if @default_endpoint.present? %>remove
7
+ <% @default_endpoint.each do |endpoint_name| %>remove
8
+ # Default Collection method
9
+ desc "Get <%= endpoint_name.underscore %>"
10
+ paginate per_page: Pagy::VARS[:items], max_per_page: Pagy::VARS[:max_per_page]
11
+ get "/<%= endpoint_name %>" do
12
+ results = <%= name.camelize.singularize %>.all
13
+ resources = paginate(results)
14
+ present_metas resources
15
+ present :<%= name.camelize.singularize %>, resources, with: <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Entities::<%= name.camelize.singularize %>
16
+ end
17
+
18
+ <% end %>remove
19
+ <% end %>remove
20
+ <% if @collection.any? %>remove
21
+ <% @collection.each do |k, v| %>remove
22
+ # Collection method
23
+ desc "Get <%= k.underscore %>"
24
+ paginate per_page: Pagy::VARS[:items], max_per_page: Pagy::VARS[:max_per_page]
25
+ get "/<%= k.downcase %>" do
26
+ results = <%= name.camelize.singularize %>.<%= k.downcase %>
27
+ resources = paginate(results)
28
+ present_metas resources
29
+ present :<%= name.camelize.singularize %>, resources, with: <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Entities::<%= name.camelize.singularize %>
30
+ end
31
+
32
+ <% end %>remove
33
+ <% end %>remove
34
+ <% if @member.any? %>remove
35
+ <% @member.each do |k, v| %>remove
36
+ # Member method
37
+ desc "Get <%= k.underscore %>"
38
+ params do
39
+ requires :id, type: String
40
+ end
41
+ get "/:id/<%= k.downcase %>" do
42
+ results = <%= name.camelize.singularize %>.find(params.id)
43
+ present :<%= name.camelize.singularize %>, results, with: <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Entities::<%= name.camelize.singularize %>
44
+ end
45
+
46
+ <% end %>remove
47
+ <% end %>remove
48
+ <% if @post.present? %>remove
49
+ <% @post.each do |k, v| %>remove
50
+ desc "Create"
51
+ params do
52
+ # requires :your_params, type: [eg: String, Integer, Array]
53
+ end
54
+ post "/<%= k.downcase %>" do
55
+ # present :<%= name.capitalize.singularize %>, results, with: <%= GrapeResource.class_name_prefix %>::<%= name.capitalize.singularize %>::Entities::<%= name.capitalize.singularize %>
56
+ end
57
+
58
+ <% end %>remove
59
+ <% end %>remove
60
+ <% if @put.present? %>remove
61
+ <% @put.each do |k, v| %>remove
62
+ desc "Update"
63
+ params do
64
+ requires :id, type: String
65
+ # requires :your_params, type: [eg: String, Integer, Array]
66
+ end
67
+ put "/:id/<%= k.downcase %>" do
68
+ error!("Can't find id #{params.id}", 422) unless <%= name.capitalize.singularize %>.all.pluck(:id).include?(params.id)
69
+ # present :<%= name.capitalize.singularize %>, results, with: <%= GrapeResource.class_name_prefix %>::<%= name.capitalize.singularize %>::Entities::<%= name.capitalize.singularize %>
70
+ end
71
+
72
+ <% end %>remove
73
+ <% end %>remove
74
+ <% if @delete.present? %>remove
75
+ <% @delete.each do |k, v| %>remove
76
+ desc "Delete"
77
+ params do
78
+ requires :id, type: String
79
+ end
80
+ delete "/:id/<%= k.downcase %>" do
81
+ error!("Can't find id #{params.id}", 422) unless <%= name.camelize.singularize %>.all.pluck(:id).include?(params.id)
82
+ q = <%= name.camelize.singularize %>.find params.id
83
+ q.destroy!
84
+ success = "success deleted data with id #{params.id}"
85
+ present :status, success
86
+ end
87
+ <% end %>remove
88
+ <% end %>remove
89
+ end
90
+
91
+ end
@@ -0,0 +1,69 @@
1
+ class <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Resources::<%= name.camelize.pluralize %> < <%= GrapeResource.class_name_prefix %>::ApiResource
2
+ helpers <%= GrapeResource.class_name_prefix %>::Helpers
3
+
4
+ resource "<%= name.underscore.pluralize %>" do
5
+
6
+ desc "Get all <%= name.underscore.pluralize %>"
7
+ paginate per_page: Pagy::VARS[:items], max_per_page: Pagy::VARS[:max_per_page]
8
+ get "/" do
9
+ results = <%= name.camelize.singularize %>.all
10
+ resources = paginate(results)
11
+ present_metas resources
12
+ present :<%= name.underscore %>, resources, with: <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Entities::<%= name.camelize.singularize %>
13
+ end
14
+
15
+ desc "Get <%= name.underscore.singularize %> by id"
16
+ params do
17
+ requires :id, type: String
18
+ end
19
+ get "/:id" do
20
+ results = <%= name.camelize.singularize %>.find(params.id)
21
+ present :<%= name.underscore %>, results, with: <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Entities::<%= name.camelize.singularize %>
22
+ end
23
+
24
+ desc "Create"
25
+ params do
26
+ <% @entities.each do |k, v| %>remove
27
+ optional :<%= k %>, type: <%= v %>
28
+ <% end %>remove
29
+ end
30
+ post "/" do
31
+ p = <%= name.camelize.singularize %>.new <%= name.underscore.singularize %>_params
32
+ results = p.save!
33
+ present :status, results
34
+ present :<%= name.underscore %>, p, with: <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Entities::<%= name.camelize.singularize %>
35
+ end
36
+
37
+ desc "Update"
38
+ params do
39
+ requires :id, type: String
40
+ <% @entities.each do |k, v| %>remove
41
+ optional :<%= k %>, type: <%= v %>
42
+ <% end %>remove
43
+ end
44
+ put "/" do
45
+ p = <%= name.camelize.singularize %>.find(params.id)
46
+ p.update <%= name.underscore.singularize %>_params
47
+ present :<%= name.underscore %>, p, with: <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Entities::<%= name.camelize.singularize %>
48
+ end
49
+
50
+ desc "Delete"
51
+ params do
52
+ requires :id, type: String
53
+ end
54
+ delete "/" do
55
+ q = <%= name.camelize.singularize %>.find params.id
56
+ q.destroy!
57
+ success = "Success deleted data with id #{params.id}"
58
+ present :status, success
59
+ end
60
+
61
+ end
62
+
63
+ helpers do
64
+ def <%= name.underscore.singularize %>_params
65
+ ActionController::Parameters.new(params).permit(<%= @entities.keys.map { |a| a.to_sym } %>)
66
+ end
67
+ end
68
+
69
+ end
@@ -0,0 +1,14 @@
1
+ module API
2
+ module V1
3
+ module <%= name.camelize.pluralize %>
4
+ class Routes < Grape::API
5
+ # Format response
6
+ <%= GrapeResource.success_formatter %>
7
+ <%= GrapeResource.error_formatter %>
8
+
9
+ mount <%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Resources::<%= @name_of_class %>
10
+ <%= GrapeResource.entry_point_routes %> -- DONT REMOVE THIS LINE
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,3 @@
1
+ RSpec.describe "<%= GrapeResource.class_name_prefix %>::<%= name.camelize.pluralize %>::Resource::<%= @name_of_class %>", type: :request do
2
+ pending "add some examples to (or delete) #{__FILE__}"
3
+ end
@@ -8,4 +8,7 @@ module GrapeResource
8
8
 
9
9
  define_setting :directory, "controllers/API/v1/"
10
10
  define_setting :class_name_prefix, "API::V1"
11
+ define_setting :entry_point_routes, "# Routes entry point"
12
+ define_setting :success_formatter, "formatter :json, ::API::SuccessFormatter"
13
+ define_setting :error_formatter, "error_formatter :json, ::API::ErrorFormatter"
11
14
  end
@@ -1,3 +1,3 @@
1
1
  module GrapeResource
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yunan Helmy
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-06-28 00:00:00.000000000 Z
12
+ date: 2019-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -88,8 +88,16 @@ files:
88
88
  - bin/console
89
89
  - bin/setup
90
90
  - grape_resource.gemspec
91
+ - lib/generators/grape_resource/generator_helpers.rb
91
92
  - lib/generators/grape_resource/install_generator.rb
93
+ - lib/generators/grape_resource/namespace_generator.rb
94
+ - lib/generators/grape_resource/rest_generator.rb
95
+ - lib/generators/templates/entities.rb.erb
92
96
  - lib/generators/templates/initializer.rb
97
+ - lib/generators/templates/namespace/namespace_endpoint.rb.erb
98
+ - lib/generators/templates/rest/rest_endpoint.rb.erb
99
+ - lib/generators/templates/routes.rb.erb
100
+ - lib/generators/templates/specs.rb.erb
93
101
  - lib/grape_resource.rb
94
102
  - lib/grape_resource/configuration.rb
95
103
  - lib/grape_resource/version.rb