bullet_train-api 1.3.23 → 1.3.24

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: 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