barite 0.1.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1dc754c61e3fc1e80c733744320dd5aa5e16b452
4
+ data.tar.gz: 4c2e43d5979f7ac75452cb9befb0c493a769e686
5
+ SHA512:
6
+ metadata.gz: 5c3656c205d4baf80ca287f9e426e0d895c9d24c981aff9956314a0c3bcabd9c7aa748f6fc585b6dc58600b66107a778a74cab6083d47d7817b14fa4fd35ed6e
7
+ data.tar.gz: 29cd781550aa2f2978dce565026d959a2edc43c035474746ddae1cd5c9bd1c6e88c8ce6fac25f173a4eca67c550a9f728c38092184b3a6f7a675f2cf00576509
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2017 weathare
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,64 @@
1
+ # Barite
2
+
3
+ Ruby on Rails (with RSpec) custom generators.
4
+
5
+ [![Build Status](https://travis-ci.org/weathare/barite.svg?branch=master)](https://travis-ci.org/weathare/barite)
6
+
7
+ ## Usage
8
+
9
+ ### app/serializers
10
+
11
+ ```bash
12
+ $ rails g response NAME
13
+ ```
14
+
15
+ ### app/*/concerns
16
+
17
+ ```bash
18
+ // controllers module
19
+ $ rails g concern:controller NAME
20
+
21
+ // model module
22
+ $ rails g concern:model NAME
23
+ ```
24
+
25
+ ### spec/*/*_spec.rb
26
+
27
+ inject test code with included modules
28
+
29
+ ```bash
30
+ // controller
31
+ $ rails g concern:rspec MODULE_NAME --controller CONTROLLER_NAME
32
+
33
+ // model
34
+ $ rails g concern:rspec MODULE_NAME --model MODEL_NAME
35
+ ```
36
+
37
+ ### rambulance setup
38
+
39
+ ```bash
40
+ $ rails g rambulance:setup
41
+ ```
42
+
43
+ ## Installation
44
+ Add this line to your application's Gemfile:
45
+
46
+ ```ruby
47
+ gem 'barite'
48
+ ```
49
+
50
+ And then execute:
51
+ ```bash
52
+ $ bundle
53
+ ```
54
+
55
+ Or install it yourself as:
56
+ ```bash
57
+ $ gem install barite
58
+ ```
59
+
60
+ ## Contributing
61
+ Contribution directions go here.
62
+
63
+ ## License
64
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ begin
2
+ require "bundler/setup"
3
+ rescue LoadError
4
+ puts "You must `gem install bundler` and `bundle install` to run rake tasks"
5
+ end
6
+
7
+ require "rdoc/task"
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = "rdoc"
11
+ rdoc.title = "Barite"
12
+ rdoc.options << "--line-numbers"
13
+ rdoc.rdoc_files.include("README.md")
14
+ rdoc.rdoc_files.include("lib/**/*.rb")
15
+ end
16
+
17
+ require "bundler/gem_tasks"
data/lib/barite.rb ADDED
@@ -0,0 +1,11 @@
1
+ module Barite; end
2
+ module Concern; end
3
+ module Rails::Serializer; end
4
+
5
+ require "rails/generators"
6
+ require "barite/version"
7
+ require "generators/concern/controller/controller_generator"
8
+ require "generators/concern/model/model_generator"
9
+ require "generators/concern/rspec/rspec_generator"
10
+ require "generators/rambulance/setup/setup_generator"
11
+ require "generators/rails/response_generator"
@@ -0,0 +1,3 @@
1
+ module Barite
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,9 @@
1
+ class Concern::ControllerGenerator < Rails::Generators::NamedBase
2
+ source_root File.expand_path("../../templates", __FILE__)
3
+
4
+ def create_concerns
5
+ setting_path = "controllers/concerns"
6
+ template "concern.erb", File.join("app", setting_path, class_path, "#{file_name}.rb")
7
+ template "controller_spec.erb", File.join("spec", setting_path, class_path, "#{file_name}_spec.rb")
8
+ end
9
+ end
@@ -0,0 +1,33 @@
1
+ class Concern::ModelGenerator < Rails::Generators::NamedBase
2
+ source_root File.expand_path("../../templates", __FILE__)
3
+
4
+ def create_concerns
5
+ setting_path = "models/concerns"
6
+ template "concern.erb", File.join("app", setting_path, class_path, "#{file_name}.rb")
7
+ template "model_spec.erb", File.join("spec", setting_path, class_path, "#{file_name}_spec.rb")
8
+ end
9
+
10
+ def copy_rspec_helper
11
+ copy_file("mock_table_helper.rb", "spec/support/mock_table_helper.rb") if invoke?
12
+ end
13
+
14
+ def inject_code
15
+ rspec_helper = Rails.root.join(*%w[spec rails_helper.rb])
16
+ inject_into_file rspec_helper, before: /^ActiveRecord::Migration\.maintain_test_schema!/ do <<-'CODE'
17
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
18
+
19
+ CODE
20
+ end if injectable?(rspec_helper)
21
+ end
22
+
23
+ private
24
+ def invoke?
25
+ self.behavior == :invoke
26
+ end
27
+
28
+ def injectable?(file_path)
29
+ if invoke?
30
+ !(File.read(file_path) =~ /^Dir.+spec\/support\/.+\.rb.+require f/)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,65 @@
1
+ require "active_support/inflector"
2
+
3
+ class Concern::RspecGenerator < Rails::Generators::NamedBase
4
+ class_option(
5
+ :controller,
6
+ type: :string,
7
+ aliases: "-c",
8
+ )
9
+
10
+ class_option(
11
+ :model,
12
+ type: :string,
13
+ aliases: "-m",
14
+ )
15
+
16
+ source_root(File.expand_path("../../templates", __FILE__))
17
+
18
+ def generate_spec
19
+ return unless options[:controller] || options[:model]
20
+
21
+ template("base_#{_type}_spec.erb", spec_filepath) if invoke? && !File.exists?(spec_filepath)
22
+ end
23
+
24
+ def copy_shared_spec
25
+ copy_file("include_module_example.rb", "spec/support/include_module_example.rb") if invoke?
26
+ end
27
+
28
+ def include_spec
29
+ # [xxx] - destroy の時に不要なコードが挿入されてしまう
30
+ inject_into_file spec_filepath, content, after: /^RSpec.describe (.+) do\n/
31
+ end
32
+
33
+ private
34
+ def invoke?
35
+ self.behavior == :invoke
36
+ end
37
+
38
+ def _type
39
+ (!!options[:controller]) ? :controller : :model
40
+ end
41
+
42
+ def target_name
43
+ options[_type].classify
44
+ end
45
+
46
+ def spec_filepath
47
+ {
48
+ controller: "_controller_spec.rb",
49
+ model: "_spec.rb",
50
+ }.map do |type, postfix|
51
+ File.join(*%W[spec #{type}s #{options[type]}#{postfix}]) if !!options&.[](type)
52
+ end.compact.pop
53
+ end
54
+
55
+ def content
56
+ <<-'CODE'
57
+ describe "Included module" do
58
+ subject { [class_name] }
59
+
60
+ include_examples "included modules"
61
+ end
62
+ CODE
63
+ .gsub(/class_name/, class_name)
64
+ end
65
+ end
@@ -0,0 +1,4 @@
1
+ require "rails_helper"
2
+
3
+ RSpec.describe <%= target_name %>, type: :controller do
4
+ end
@@ -0,0 +1,4 @@
1
+ require "rails_helper"
2
+
3
+ RSpec.describe <%= target_name %>, type: :model do
4
+ end
@@ -0,0 +1,11 @@
1
+ module <%= class_name %>
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ # some callbacks ...
6
+ end
7
+
8
+ class_methods do
9
+ # some methods ...
10
+ end
11
+ end
@@ -0,0 +1,34 @@
1
+ require "rails_helper"
2
+
3
+ class <%= class_name %> < ApplicationController
4
+ include ::<%= class_name %>
5
+ # some fixtures code ...
6
+ end
7
+
8
+ RSpec.describe <%= class_name %>, type: :controller do
9
+ controller <%= class_name %> do
10
+ def index
11
+ render(
12
+ status: 200,
13
+ plain: request_status.to_s,
14
+ )
15
+ end
16
+ end
17
+
18
+ before do
19
+ routes.draw { get "/" => "<%= class_name.split("::").last.underscore %>#index" }
20
+ end
21
+
22
+ describe "Include mix-in" do
23
+ subject do
24
+ get :index, params: params
25
+ response.body
26
+ end
27
+
28
+ context "{test case}" do
29
+ # test case code...
30
+ # let(:params) { nil }
31
+ # it { expect { subject }.to raise_error({some exception}) }
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,5 @@
1
+ shared_examples_for "included modules" do
2
+ it do
3
+ is_expected.to include *described_class.included_modules
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ def create_mock_table(name, &block)
2
+ raise "no block given." unless block_given?
3
+
4
+ before(:all) do
5
+ m = ActiveRecord::Migration.new
6
+ m.verbose = false
7
+ m.create_table(name, &block)
8
+ end
9
+
10
+ after(:all) do
11
+ m = ActiveRecord::Migration.new
12
+ m.verbose = false
13
+ m.drop_table(name)
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ require "rails_helper"
2
+
3
+ RSpec.describe <%= class_name %>, type: :model do
4
+ create_mock_table(:module_<%= plural_name %>) do |t|
5
+ # any attributes
6
+ t.timestamps
7
+ end
8
+
9
+ class Module<%= class_name.split("::").last %> < ApplicationRecord
10
+ include ::<%= class_name %>
11
+ end
12
+
13
+ describe "Included mix-in" do
14
+ subject do
15
+ Module<%= class_name.split("::").last %>.included_modules
16
+ end
17
+
18
+ it { is_expected.to include described_class }
19
+ end
20
+ end
@@ -0,0 +1,24 @@
1
+ require "active_model_serializers"
2
+ require "generators/rails/serializer_generator"
3
+
4
+ class Rails::ResponseGenerator < Rails::Generators::NamedBase
5
+ source_root File.expand_path("../templates", __FILE__)
6
+
7
+ def create_serializer_file
8
+ if invoke?
9
+ generate :serializer, name
10
+ else
11
+ ::Rails::Command.invoke :destroy, ["serializer", name]
12
+ end
13
+ end
14
+
15
+ def create_response_file
16
+ template "serializer_spec.erb", File.join("spec/serializers", class_path, "#{file_name}_serializer_spec.rb")
17
+ copy_file("active_model_serializers_helper.rb", "spec/support/active_model_serializers_helper.rb") if invoke?
18
+ end
19
+
20
+ private
21
+ def invoke?
22
+ self.behavior == :invoke
23
+ end
24
+ end
@@ -0,0 +1,39 @@
1
+ module ActiveModelSerializersHelper
2
+ def serialize(obj, **options)
3
+ serializer_class = options.delete(:serializer_class) || "#{obj.class.name}Serializer".constantize
4
+ klass = serializer_class.new(obj)
5
+ ActiveModelSerializers::Adapter.create(klass, options)
6
+ end
7
+
8
+ def attributes_as_json(factory)
9
+ factory.attributes.map do |name, value|
10
+ _value =
11
+ case value
12
+ when Time, Date, DateTime
13
+ value.iso8601
14
+ else
15
+ value
16
+ end
17
+ [name, _value]
18
+ end.to_h
19
+ end
20
+ end
21
+
22
+ shared_examples_for "serialize attributes" do
23
+ let(:not_coverd) do
24
+ attrs = factory.attribute_names
25
+ attrs.delete_if do |item|
26
+ item =~ /^(#{include_attrs.join("|")})$/
27
+ end
28
+ attrs.map(&:to_sym)
29
+ end
30
+
31
+ subject { serialized.serializable_hash }
32
+
33
+ it { is_expected.to include *include_attrs }
34
+ it { is_expected.not_to include *not_coverd }
35
+ end
36
+
37
+ RSpec.configure do |config|
38
+ config.include ActiveModelSerializersHelper, type: :serializer
39
+ end
@@ -0,0 +1,35 @@
1
+ require "rails_helper"
2
+
3
+ RSpec.describe <%= class_name %>, type: :serializer do
4
+ let(:klass) do
5
+ Class.new do
6
+ include ActiveModel::Serialization
7
+ include ActiveModel::Model
8
+
9
+ def attributes
10
+ {
11
+ created_at: created_at
12
+ }
13
+ end
14
+
15
+ def attribute_names
16
+ attributes.keys.map(&:to_s)
17
+ end
18
+
19
+ def created_at
20
+ Time.current
21
+ end
22
+ end
23
+ end
24
+
25
+ let(:factory) { klass.new }
26
+
27
+ describe "attributes" do
28
+ let(:serialized) { serialize(factory, serializer_class: described_class) }
29
+ let(:factory_json) { attributes_as_json(factory) }
30
+
31
+ it(:match) do
32
+ expect(serialized.serializable_hash).to include_json(**factory_json)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,11 @@
1
+ require "rambulance"
2
+
3
+ class Rambulance::SetupGenerator < Rails::Generators::Base
4
+ source_root File.expand_path("../../templates", __FILE__)
5
+
6
+ def copy_rambulance
7
+ copy_file("initializers.rb", "config/initializers/rambulance.rb")
8
+ copy_file("handler.rb", "app/handlers/exceptions_app.rb")
9
+ copy_file("handler_spec.rb", "spec/handlers/exceptions_app_spec.rb")
10
+ end
11
+ end
@@ -0,0 +1,26 @@
1
+ class ExceptionsApp < Rambulance::ExceptionsApp
2
+ %i[
3
+ not_found
4
+ conflict
5
+ unprocessable_entity
6
+ method_not_allowed
7
+ not_implemented
8
+ bad_request
9
+ internal_server_error
10
+ unauthorized
11
+ ].each do |name|
12
+ define_method name do
13
+ render json: message(name)
14
+ end
15
+ end
16
+
17
+ private
18
+ def message(method)
19
+ {
20
+ error: method.to_s.humanize,
21
+ }.tap do |element|
22
+ element[:request] =
23
+ %(#{request&.env&.[]("REQUEST_METHOD")} #{request&.env&.[]("REQUEST_URI")})
24
+ end if defined?(request)
25
+ end
26
+ end
@@ -0,0 +1,39 @@
1
+ require "rails_helper"
2
+
3
+ RSpec.describe ExceptionsApp do
4
+ subject do
5
+ described_class.new
6
+ end
7
+
8
+ context "Defined method that corresponding to HTTP Status" do
9
+ %i[
10
+ not_found
11
+ conflict
12
+ unprocessable_entity
13
+ method_not_allowed
14
+ not_implemented
15
+ bad_request
16
+ internal_server_error
17
+ unauthorized
18
+ ].each do |name|
19
+ it(name) { is_expected.to respond_to name }
20
+ end
21
+ end
22
+
23
+ context "Make message" do
24
+ %i[
25
+ not_found
26
+ conflict
27
+ unprocessable_entity
28
+ method_not_allowed
29
+ not_implemented
30
+ bad_request
31
+ internal_server_error
32
+ unauthorized
33
+ ].each do |name|
34
+ it(name) do
35
+ expect(subject.send(:message, name)).to include error: name.to_s.humanize
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,20 @@
1
+ Rambulance.setup do |config|
2
+
3
+ # @see http://www.rubydoc.info/gems/actionpack-rack-upgrade/ActionController/Rescue
4
+ config.rescue_responses = {
5
+ "ActionController::RoutingError" => :not_found,
6
+ "ActionController::UnknownAction" => :not_found,
7
+ "ActiveRecord::RecordNotFound" => :not_found,
8
+ "ActiveRecord::StaleObjectError" => :conflict,
9
+ "ActiveRecord::RecordInvalid" => :unprocessable_entity,
10
+ "ActiveRecord::RecordNotSaved" => :unprocessable_entity,
11
+ "ActiveRecord::RecordNotUnique" => :conflict,
12
+ "ActionController::MethodNotAllowed" => :method_not_allowed,
13
+ "ActionController::NotImplemented" => :not_implemented,
14
+ "ActionController::InvalidAuthenticityToken" => :unprocessable_entity,
15
+ "AttrExtras::MethodNotImplementedError" => :internal_server_error,
16
+ }
17
+
18
+ config.layout_name = nil
19
+ config.view_path = nil
20
+ end
metadata ADDED
@@ -0,0 +1,192 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: barite
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - weathare
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-08-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: active_model_serializers
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: attr_extras
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 5.1.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 5.1.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: rambulance
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: ammeter
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sqlite3
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry-highlight
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: RailsRails API patters generator.
140
+ email:
141
+ - fuzuki.close@gmail.com
142
+ executables: []
143
+ extensions: []
144
+ extra_rdoc_files: []
145
+ files:
146
+ - MIT-LICENSE
147
+ - README.md
148
+ - Rakefile
149
+ - lib/barite.rb
150
+ - lib/barite/version.rb
151
+ - lib/generators/concern/controller/controller_generator.rb
152
+ - lib/generators/concern/model/model_generator.rb
153
+ - lib/generators/concern/rspec/rspec_generator.rb
154
+ - lib/generators/concern/templates/base_controller_spec.erb
155
+ - lib/generators/concern/templates/base_model_spec.erb
156
+ - lib/generators/concern/templates/concern.erb
157
+ - lib/generators/concern/templates/controller_spec.erb
158
+ - lib/generators/concern/templates/include_module_example.rb
159
+ - lib/generators/concern/templates/mock_table_helper.rb
160
+ - lib/generators/concern/templates/model_spec.erb
161
+ - lib/generators/rails/response_generator.rb
162
+ - lib/generators/rails/templates/active_model_serializers_helper.rb
163
+ - lib/generators/rails/templates/serializer_spec.erb
164
+ - lib/generators/rambulance/setup/setup_generator.rb
165
+ - lib/generators/rambulance/templates/handler.rb
166
+ - lib/generators/rambulance/templates/handler_spec.rb
167
+ - lib/generators/rambulance/templates/initializers.rb
168
+ homepage: https://github.com/weathare/barite
169
+ licenses:
170
+ - MIT
171
+ metadata: {}
172
+ post_install_message:
173
+ rdoc_options: []
174
+ require_paths:
175
+ - lib
176
+ required_ruby_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ required_rubygems_version: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ requirements: []
187
+ rubyforge_project:
188
+ rubygems_version: 2.6.11
189
+ signing_key:
190
+ specification_version: 4
191
+ summary: RailsRails API patters generator.
192
+ test_files: []