bullet_train-api 1.3.23 → 1.3.24

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5342321f26a66e0c46a810df82e9626b50641f2d2ded05fa06b6e430b179b45
4
- data.tar.gz: 43771c8f104753f75c3917029e555cf77aca9a68d0089a3c41901566b6ab2f1f
3
+ metadata.gz: 49f3df68436e009aca9c2f91fbe338b29a8830566c7ef87146f5470001ba33db
4
+ data.tar.gz: 53c4a7921c040ed68f57d80cf1d93e89ddcab5c4649601713849349f2d9ebfa6
5
5
  SHA512:
6
- metadata.gz: 4508749e2cc7e2554b6f25d000a98e894099f26f871f947cbafae7a77d3b5f1d6bd237b48c3c82e0a419feac471304334c867d4bd04647a50b1f4c834772a453
7
- data.tar.gz: fab6f401d130c26063af8178ae0524dd489cebcdb272c347887d1a6332c510b7c3b85c49c0d5d42695ffc26e96dcde6c6b3837efb0afa4b9855d6c071877dc5e
6
+ metadata.gz: b97694c61ce6e2dcfaca08ec7f25de915d2e3b6d85de38d6e992c4d2b23c11c3b2a983d1422b82108d2099f681af4d36a45d00a63aefdf5e2f504b1e5b0993d9
7
+ data.tar.gz: c94048c28fe3266ae7ddcc019074435d7a0007526d7db98b5a9cffc758310230f729f307f1c56dda98456fcb39a1139075602073578aaed3c10c379ad0551946
@@ -52,8 +52,14 @@ module Api
52
52
  :current_user => User.new
53
53
  }.merge(locals))
54
54
 
55
+ factory_path = "test/factories/#{model.model_name.collection}.rb"
56
+ cache_key = [:example, model.model_name.param_key, File.ctime(factory_path)]
57
+ example = Rails.cache.fetch(cache_key) do
58
+ FactoryBot.example(model.model_name.param_key.to_sym)
59
+ end
60
+
55
61
  schema_json = jbuilder.json(
56
- FactoryBot.example(model.model_name.param_key.to_sym) || model.new,
62
+ example || model.new,
57
63
  title: I18n.t("#{model.name.underscore.pluralize}.label"),
58
64
  # TODO Improve this. We don't have a generic description for models we can use here.
59
65
  description: I18n.t("#{model.name.underscore.pluralize}.label"),
@@ -130,19 +130,22 @@ module FactoryBot
130
130
  end
131
131
 
132
132
  def _set_values(method, model, count = 1)
133
+ model_name = ActiveRecord::Base.descendants.find { |klass| klass.model_name.param_key == model.to_s }&.model_name
134
+ factory_path = "test/factories/#{model_name.collection}.rb"
135
+
133
136
  if count > 1
134
- values = FactoryBot.example_list(model, count)
135
- class_name = values.first.class.name
136
- var_name = class_name.demodulize.underscore.pluralize
137
+ cache_key = [:example_list, model_name.param_key, File.ctime(factory_path)]
138
+ values = Rails.cache.fetch(cache_key) { FactoryBot.example_list(model, count) }
139
+ var_name = model_name.element.pluralize
137
140
  else
138
- values = FactoryBot.example(model)
139
- class_name = values.class.name
140
- var_name = class_name.demodulize.underscore
141
+ cache_key = [:example, model_name.param_key, File.ctime(factory_path)]
142
+ values = Rails.cache.fetch(cache_key) { FactoryBot.example(model) }
143
+ var_name = model_name.element
141
144
  end
142
145
 
143
146
  template = (method == "get_examples") ? "index" : "show"
144
147
 
145
- [template, class_name, var_name, values]
148
+ [template, model_name.name, var_name, values]
146
149
  end
147
150
 
148
151
  def _json_output(template, version, class_name, var_name, values)
@@ -1,5 +1,5 @@
1
1
  module BulletTrain
2
2
  module Api
3
- VERSION = "1.3.23"
3
+ VERSION = "1.3.24"
4
4
  end
5
5
  end
@@ -132,7 +132,9 @@ namespace :bullet_train do
132
132
  desc "Export the OpenAPI schema for the application"
133
133
  task export_openapi_schema: :environment do
134
134
  @version = BulletTrain::Api.current_version
135
- File.open("openapi-#{Time.now.strftime("%Y%m%d-%H%M%S")}.yaml", "w+") do |f|
135
+ dir = "tmp/openapi"
136
+ Dir.mkdir(dir) unless File.exist?(dir)
137
+ File.open("#{dir}/openapi-#{Time.now.strftime("%Y%m%d-%H%M%S")}.yaml", "w+") do |f|
136
138
  f.binmode
137
139
  f.write(
138
140
  ApplicationController.renderer.render(
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bullet_train-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.23
4
+ version: 1.3.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Culver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-05 00:00:00.000000000 Z
11
+ date: 2023-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: standard