pliny 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +9 -9
  2. data/README.md +1 -2
  3. data/lib/pliny/log.rb +2 -10
  4. data/lib/pliny/tasks/db.rake +19 -8
  5. data/lib/pliny/version.rb +1 -1
  6. data/{test/commands/creator_test.rb → spec/commands/creator_spec.rb} +1 -1
  7. data/{test/commands/generator/base_test.rb → spec/commands/generator/base_spec.rb} +1 -1
  8. data/{test/commands/generator/endpoint_test.rb → spec/commands/generator/endpoint_spec.rb} +1 -1
  9. data/{test/commands/generator_test.rb → spec/commands/generator_spec.rb} +1 -1
  10. data/{test/errors_test.rb → spec/errors_spec.rb} +1 -1
  11. data/{test/extensions/instruments_test.rb → spec/extensions/instruments_spec.rb} +1 -1
  12. data/{test/integration_test.rb → spec/integration_spec.rb} +1 -1
  13. data/{test/log_test.rb → spec/log_spec.rb} +16 -8
  14. data/{test/middleware/cors_test.rb → spec/middleware/cors_spec.rb} +1 -1
  15. data/{test/middleware/request_id_test.rb → spec/middleware/request_id_spec.rb} +1 -1
  16. data/{test/middleware/request_store_test.rb → spec/middleware/request_store_spec.rb} +1 -1
  17. data/{test/middleware/rescue_errors_test.rb → spec/middleware/rescue_errors_spec.rb} +1 -1
  18. data/{test/middleware/timeout_test.rb → spec/middleware/timeout_spec.rb} +1 -1
  19. data/{test/middleware/versioning_test.rb → spec/middleware/versioning_spec.rb} +6 -1
  20. data/{test/request_store_test.rb → spec/request_store_spec.rb} +1 -1
  21. data/{test/router_test.rb → spec/router_spec.rb} +1 -1
  22. data/spec/spec_helper.rb +26 -0
  23. data/template/.ruby-version +1 -1
  24. data/template/Gemfile +2 -3
  25. data/template/Gemfile.lock +12 -13
  26. metadata +20 -22
  27. data/lib/pliny/tasks/test.rake +0 -8
  28. data/test/test_helper.rb +0 -18
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NWRlYjI3YjI4NTRlZGYzMWQ1NTEzYjQ4ZDRmNTkyNTk0OGNiMzNlZg==
4
+ NmVlMTRhYThlZWVjYzA2MjNlYjZjZDY5NTkyMDY5YmE5NWEwNDAyMA==
5
5
  data.tar.gz: !binary |-
6
- NjVlZTZlNDhmODRhZTY1MDNiZDJlOGQyYmViY2U3NmUxYTNhMzIzYg==
7
- !binary "U0hBNTEy":
6
+ MTczNDRhNTY2N2UwMmUyY2I4YWQ5NDFlN2MwYzhlN2JlNTVhOWIwYw==
7
+ SHA512:
8
8
  metadata.gz: !binary |-
9
- ZDNjYTczMGI3YTk2YzhlZTcxYTk5ZWYxOGUzZTVkYzBiYTM3OTEzMmRjZWRm
10
- ZDg2ZTYwYTkxOTc5NzI0NjVkNGZkMjRkMjY1ZDVjNGU5MzNmZDc1ZDk1ODFl
11
- YzU4N2E2ZjU2OTc3ZWQ0YjI5ODA5ZjNjZTJiOTNkYzIyZTk2ZGM=
9
+ MTM1OTZkNmMxMDcwMTg4ZWVkYWFkN2MxMjQ3MWM5MzdhNmE4M2NkZmYxMjA4
10
+ YzM5MGRmZmFlM2YyMzJmMTE3YzM3ZGVmMjYxNTk3YWRjOTdhODA4YTcwY2Ew
11
+ OWQyNjQ3YTlhZmZmYTBjN2UxMjFlMDEwZGRlMTA5NTI0OTJhYmM=
12
12
  data.tar.gz: !binary |-
13
- MGNhMjNiOTU3ZTJkYTBjMWZkMmVkOWE2NmQ0NWExZWJmZGZmZmU5MmY1MGQ3
14
- MTM2Zjg4ODNkYmJmMTg0OTI2YTEwMjg1ZDAzNDAyZDUyOThhOGJmMGY2Njc5
15
- Nzc5N2Y0MWM3YzEyYTE4ZDUyYTkzYWU1NzhkNzJmZDc2NDE2MjA=
13
+ OGY5YmExZmE5YTQwMGQ4MWNiNzkyYTMwZDA1NjNmZTI5YmM1ZWY4YTFjYTQx
14
+ ZDIwZDkxZDdjNmY1ZjlkZDQ2Y2EyM2NlZTNhY2NmNjQ1N2M1MzY4MTViN2Q0
15
+ ZmIxZmY1MTQ0MjIyNmNiOGE2OTQwZTk3YzJkOTBiMzQwNWM5Mjk=
data/README.md CHANGED
@@ -16,7 +16,7 @@ And gems/helpers to tie these together and support operations:
16
16
 
17
17
  - [CORS middleware](lib/pliny/middleware/cors.rb) to allow JS developers to consume your API
18
18
  - [Rollbar](https://www.rollbar.com/) for tracking exceptions
19
- - [Log helper](test/log_test.rb) that logs in [data format](https://www.youtube.com/watch?v=rpmc-wHFUBs) [to stdout](https://adam.heroku.com/past/2011/4/1/logs_are_streams_not_files)
19
+ - [Log helper](spec/log_spec.rb) that logs in [data format](https://www.youtube.com/watch?v=rpmc-wHFUBs) [to stdout](https://adam.heroku.com/past/2011/4/1/logs_are_streams_not_files)
20
20
  - [Mediators](http://brandur.org/mediator) to help encapsulate more complex interactions
21
21
  - [Rspec](https://github.com/rspec/rspec) for lean and fast testing
22
22
  - [Puma](http://puma.io/) as the web server, [configured for optimal performance on Heroku](https://github.com/interagent/pliny-template/blob/master/config/puma.rb)
@@ -121,7 +121,6 @@ rake db:schema:merge # Merges migrations into schema and removes them
121
121
  rake db:seed # Seed the database with data
122
122
  rake db:setup # Setup the database
123
123
  rake schema # Rebuild schema.json
124
- rake test # Run tests
125
124
  ```
126
125
 
127
126
  ### Commands
@@ -10,7 +10,7 @@ module Pliny
10
10
  self.local_context = old.merge(data)
11
11
  res = block.call
12
12
  ensure
13
- local_context = old
13
+ self.local_context = old
14
14
  res
15
15
  end
16
16
 
@@ -39,11 +39,7 @@ module Pliny
39
39
  def log_to_stream(stream, data, &block)
40
40
  unless block
41
41
  str = unparse(data)
42
- if RUBY_PLATFORM == "java"
43
- stream.puts str
44
- else
45
- mtx.synchronize { stream.puts str }
46
- end
42
+ stream.print(str + "\n")
47
43
  else
48
44
  data = data.dup
49
45
  start = Time.now
@@ -61,10 +57,6 @@ module Pliny
61
57
  end
62
58
  end
63
59
 
64
- def mtx
65
- @mtx ||= Mutex.new
66
- end
67
-
68
60
  def quote_string(k, v)
69
61
  # try to find a quote style that fits
70
62
  if !v.include?('"')
@@ -30,7 +30,7 @@ namespace :db do
30
30
  database_urls.each do |database_url|
31
31
  db = Sequel.connect(database_url)
32
32
  db.tables.each do |table|
33
- db.run(%{DROP TABLE "#{table}"})
33
+ db.run(%{DROP TABLE "#{table}" CASCADE})
34
34
  end
35
35
  puts "Nuked `#{name_from_uri(database_url)}`"
36
36
  end
@@ -78,11 +78,15 @@ namespace :db do
78
78
  namespace :schema do
79
79
  desc "Load the database schema"
80
80
  task :load do
81
- schema = File.read("./db/schema.sql")
82
- database_urls.each do |database_url|
83
- db = Sequel.connect(database_url)
84
- db.run(schema)
85
- puts "Loaded `#{name_from_uri(database_url)}`"
81
+ if File.exists?("./db/schema.sql")
82
+ schema = File.read("./db/schema.sql")
83
+ database_urls.each do |database_url|
84
+ db = Sequel.connect(database_url)
85
+ db.run(schema)
86
+ puts "Loaded `#{name_from_uri(database_url)}`"
87
+ end
88
+ else
89
+ puts "Skipped schema load, schema.sql not present"
86
90
  end
87
91
  end
88
92
 
@@ -98,8 +102,15 @@ namespace :db do
98
102
  # replay such statements in certain production databases
99
103
  schema.gsub!(/^COMMENT ON EXTENSION.*\n/, "")
100
104
 
101
- File.open(file, "w") { |f| f.puts schema }
105
+ # add migrations used to compose this schema
106
+ db = Sequel.connect(database_urls.first)
107
+ if db.table_exists?(:schema_migrations)
108
+ db[:schema_migrations].each do |migration|
109
+ schema << db[:schema_migrations].insert_sql(migration) + ";\n"
110
+ end
111
+ end
102
112
 
113
+ File.open(file, "w") { |f| f.puts schema }
103
114
  puts "Dumped `#{name_from_uri(database_url)}` to #{file}"
104
115
  end
105
116
 
@@ -111,7 +122,7 @@ namespace :db do
111
122
  end
112
123
 
113
124
  desc "Setup the database"
114
- task :setup => [:drop, :create]
125
+ task :setup => [:drop, :create, :migrate]
115
126
 
116
127
  private
117
128
 
@@ -1,3 +1,3 @@
1
1
  module Pliny
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -1,5 +1,5 @@
1
1
  require 'pliny/commands/creator'
2
- require "test_helper"
2
+ require 'spec_helper'
3
3
 
4
4
  describe Pliny::Commands::Creator do
5
5
  before do
@@ -1,6 +1,6 @@
1
1
  require 'pliny/commands/generator'
2
2
  require 'pliny/commands/generator/base'
3
- require 'test_helper'
3
+ require 'spec_helper'
4
4
 
5
5
  describe Pliny::Commands::Generator::Base do
6
6
  subject { Pliny::Commands::Generator::Base.new(model_name, {}, StringIO.new) }
@@ -1,6 +1,6 @@
1
1
  require 'pliny/commands/generator'
2
2
  require 'pliny/commands/generator/endpoint'
3
- require 'test_helper'
3
+ require 'spec_helper'
4
4
 
5
5
  describe Pliny::Commands::Generator::Endpoint do
6
6
  subject { Pliny::Commands::Generator::Endpoint.new(model_name, {}, StringIO.new) }
@@ -1,6 +1,6 @@
1
1
  require 'pliny/commands/generator'
2
2
  require 'pliny/commands/generator/base'
3
- require 'test_helper'
3
+ require 'spec_helper'
4
4
 
5
5
  describe Pliny::Commands::Generator do
6
6
  subject { Pliny::Commands::Generator.new }
@@ -1,4 +1,4 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::Errors do
4
4
  it "includes a general error that requires an identifier" do
@@ -1,4 +1,4 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::Extensions::Instruments do
4
4
  def app
@@ -1,4 +1,4 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe "Pliny integration test" do
4
4
  before do
@@ -1,32 +1,32 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::Log do
4
4
  before do
5
5
  @io = StringIO.new
6
6
  Pliny.stdout = @io
7
- stub(@io).puts
7
+ stub(@io).print
8
8
  end
9
9
 
10
10
  it "logs in structured format" do
11
- mock(@io).puts "foo=bar baz=42"
11
+ mock(@io).print "foo=bar baz=42\n"
12
12
  Pliny.log(foo: "bar", baz: 42)
13
13
  end
14
14
 
15
15
  it "supports blocks to log stages and elapsed" do
16
- mock(@io).puts "foo=bar at=start"
17
- mock(@io).puts "foo=bar at=finish elapsed=0.000"
16
+ mock(@io).print "foo=bar at=start\n"
17
+ mock(@io).print "foo=bar at=finish elapsed=0.000\n"
18
18
  Pliny.log(foo: "bar") do
19
19
  end
20
20
  end
21
21
 
22
22
  it "merges context from RequestStore" do
23
23
  Pliny::RequestStore.store[:log_context] = { app: "pliny" }
24
- mock(@io).puts "app=pliny foo=bar"
24
+ mock(@io).print "app=pliny foo=bar\n"
25
25
  Pliny.log(foo: "bar")
26
26
  end
27
27
 
28
28
  it "supports a context" do
29
- mock(@io).puts "app=pliny foo=bar"
29
+ mock(@io).print "app=pliny foo=bar\n"
30
30
  Pliny.context(app: "pliny") do
31
31
  Pliny.log(foo: "bar")
32
32
  end
@@ -34,10 +34,18 @@ describe Pliny::Log do
34
34
 
35
35
  it "local context does not overwrite global" do
36
36
  Pliny::RequestStore.store[:log_context] = { app: "pliny" }
37
- mock(@io).puts "app=not_pliny foo=bar"
37
+ mock(@io).print "app=not_pliny foo=bar\n"
38
38
  Pliny.context(app: "not_pliny") do
39
39
  Pliny.log(foo: "bar")
40
40
  end
41
41
  assert Pliny::RequestStore.store[:log_context][:app] = "pliny"
42
42
  end
43
+
44
+ it "local context does not propagate outside" do
45
+ Pliny::RequestStore.store[:log_context] = { app: "pliny" }
46
+ mock(@io).print "app=pliny foo=bar\n"
47
+ Pliny.context(app: "not_pliny", test: 123) do
48
+ end
49
+ Pliny.log(foo: "bar")
50
+ end
43
51
  end
@@ -1,4 +1,4 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::Middleware::CORS do
4
4
  def app
@@ -1,4 +1,4 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::Middleware::RequestID do
4
4
  def app
@@ -1,4 +1,4 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::Middleware::RequestStore do
4
4
  def app
@@ -1,4 +1,4 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::Middleware::RescueErrors do
4
4
  include Rack::Test::Methods
@@ -1,4 +1,4 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::Middleware::Timeout do
4
4
  include Rack::Test::Methods
@@ -1,7 +1,12 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::Middleware::Versioning do
4
4
  include Rack::Test::Methods
5
+ before do
6
+ @io = StringIO.new
7
+ Pliny.stdout = @io
8
+ stub(@io).print
9
+ end
5
10
 
6
11
  def app
7
12
  Rack::Builder.new do
@@ -1,4 +1,4 @@
1
- require "test_helper"
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::RequestStore do
4
4
  before do
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Pliny::Router do
4
4
 
@@ -0,0 +1,26 @@
1
+ # make sure this is set before Sinatra is required
2
+ ENV["RACK_ENV"] = "test"
3
+
4
+ require "bundler"
5
+ Bundler.require(:default, :test)
6
+
7
+ require_relative "../lib/pliny"
8
+
9
+ RSpec.configure do |config|
10
+ config.include Rack::Test::Methods
11
+
12
+ config.expect_with :minitest
13
+ config.mock_with :rr
14
+ config.run_all_when_everything_filtered = true
15
+ config.filter_run :focus
16
+
17
+ config.before :each do
18
+ Pliny::RequestStore.clear!
19
+ end
20
+
21
+ # Run specs in random order to surface order dependencies. If you find an
22
+ # order dependency and want to debug it, you can fix the order by providing
23
+ # the seed, which is printed after each run.
24
+ # --seed 1234
25
+ config.order = 'random'
26
+ end
@@ -1 +1 @@
1
- 2.1.2
1
+ 2.1.4
@@ -1,5 +1,5 @@
1
1
  source "https://rubygems.org"
2
- ruby "2.1.2"
2
+ ruby "2.1.4"
3
3
 
4
4
  gem "multi_json"
5
5
  gem "oj"
@@ -24,8 +24,7 @@ group :development, :test do
24
24
  end
25
25
 
26
26
  group :development do
27
- gem 'dotenv'
28
- gem "foreman"
27
+ gem "dotenv"
29
28
  end
30
29
 
31
30
  group :test do
@@ -1,7 +1,7 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- activesupport (4.1.1)
4
+ activesupport (4.1.6)
5
5
  i18n (~> 0.6, >= 0.6.9)
6
6
  json (~> 1.7, >= 1.7.7)
7
7
  minitest (~> 5.1)
@@ -23,18 +23,16 @@ GEM
23
23
  diff-lcs (1.2.5)
24
24
  dotenv (0.7.0)
25
25
  erubis (2.7.0)
26
- foreman (0.67.0)
27
- dotenv (~> 0.7.0)
28
- thor (~> 0.17.0)
29
- http_accept (0.1.5)
30
- i18n (0.6.9)
26
+ http_accept (0.1.6)
27
+ i18n (0.6.11)
31
28
  json (1.8.1)
29
+ json_schema (0.3.0)
32
30
  method_source (0.8.2)
33
- minitest (5.3.5)
31
+ minitest (5.4.2)
34
32
  multi_json (1.10.1)
35
33
  oj (2.9.0)
36
34
  pg (0.17.1)
37
- pliny (0.1.0)
35
+ pliny (0.4.0)
38
36
  activesupport (~> 4.1, >= 4.1.0)
39
37
  http_accept (~> 0.1, >= 0.1.5)
40
38
  multi_json (~> 1.9, >= 1.9.3)
@@ -43,8 +41,10 @@ GEM
43
41
  sequel (~> 4.9, >= 4.9.0)
44
42
  sinatra (~> 1.4, >= 1.4.5)
45
43
  sinatra-router (~> 0.2, >= 0.2.3)
46
- prmd (0.3.2)
44
+ thor (~> 0.19, >= 0.19.1)
45
+ prmd (0.6.2)
47
46
  erubis (~> 2.7)
47
+ json_schema (~> 0.1)
48
48
  pry (0.9.12.6)
49
49
  coderay (~> 1.0)
50
50
  method_source (~> 0.8)
@@ -79,7 +79,7 @@ GEM
79
79
  rspec-mocks (3.0.1)
80
80
  rspec-support (~> 3.0.0)
81
81
  rspec-support (3.0.0)
82
- sequel (4.11.0)
82
+ sequel (4.15.0)
83
83
  sequel-paranoid (0.4.3)
84
84
  sequel
85
85
  sequel_pg (1.6.9)
@@ -101,11 +101,11 @@ GEM
101
101
  slop (3.5.0)
102
102
  sucker_punch (1.0.5)
103
103
  celluloid (~> 0.15.2)
104
- thor (0.17.0)
104
+ thor (0.19.1)
105
105
  thread_safe (0.3.4)
106
106
  tilt (1.4.1)
107
107
  timers (1.1.0)
108
- tzinfo (1.2.1)
108
+ tzinfo (1.2.2)
109
109
  thread_safe (~> 0.1)
110
110
  yard (0.8.7.4)
111
111
 
@@ -116,7 +116,6 @@ DEPENDENCIES
116
116
  committee
117
117
  database_cleaner
118
118
  dotenv
119
- foreman
120
119
  multi_json
121
120
  oj
122
121
  pg
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pliny
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandur Leach
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-21 00:00:00.000000000 Z
12
+ date: 2014-11-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -326,7 +326,6 @@ files:
326
326
  - lib/pliny/tasks.rb
327
327
  - lib/pliny/tasks/db.rake
328
328
  - lib/pliny/tasks/schema.rake
329
- - lib/pliny/tasks/test.rake
330
329
  - lib/pliny/templates/endpoint.erb
331
330
  - lib/pliny/templates/endpoint_acceptance_test.erb
332
331
  - lib/pliny/templates/endpoint_scaffold.erb
@@ -342,23 +341,23 @@ files:
342
341
  - lib/pliny/templates/serializer_test.erb
343
342
  - lib/pliny/utils.rb
344
343
  - lib/pliny/version.rb
345
- - test/commands/creator_test.rb
346
- - test/commands/generator/base_test.rb
347
- - test/commands/generator/endpoint_test.rb
348
- - test/commands/generator_test.rb
349
- - test/errors_test.rb
350
- - test/extensions/instruments_test.rb
351
- - test/integration_test.rb
352
- - test/log_test.rb
353
- - test/middleware/cors_test.rb
354
- - test/middleware/request_id_test.rb
355
- - test/middleware/request_store_test.rb
356
- - test/middleware/rescue_errors_test.rb
357
- - test/middleware/timeout_test.rb
358
- - test/middleware/versioning_test.rb
359
- - test/request_store_test.rb
360
- - test/router_test.rb
361
- - test/test_helper.rb
344
+ - spec/commands/creator_spec.rb
345
+ - spec/commands/generator/base_spec.rb
346
+ - spec/commands/generator/endpoint_spec.rb
347
+ - spec/commands/generator_spec.rb
348
+ - spec/errors_spec.rb
349
+ - spec/extensions/instruments_spec.rb
350
+ - spec/integration_spec.rb
351
+ - spec/log_spec.rb
352
+ - spec/middleware/cors_spec.rb
353
+ - spec/middleware/request_id_spec.rb
354
+ - spec/middleware/request_store_spec.rb
355
+ - spec/middleware/rescue_errors_spec.rb
356
+ - spec/middleware/timeout_spec.rb
357
+ - spec/middleware/versioning_spec.rb
358
+ - spec/request_store_spec.rb
359
+ - spec/router_spec.rb
360
+ - spec/spec_helper.rb
362
361
  - template/.env.sample
363
362
  - template/.env.test
364
363
  - template/.gitignore
@@ -412,9 +411,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
412
411
  version: '0'
413
412
  requirements: []
414
413
  rubyforge_project:
415
- rubygems_version: 2.0.7
414
+ rubygems_version: 2.2.2
416
415
  signing_key:
417
416
  specification_version: 4
418
417
  summary: Basic tooling to support API apps in Sinatra
419
418
  test_files: []
420
- has_rdoc:
@@ -1,8 +0,0 @@
1
- require "rake/testtask"
2
-
3
- Rake::TestTask.new do |task|
4
- task.libs << "lib"
5
- task.libs << "test"
6
- task.name = :test
7
- task.test_files = FileList["test/**/*_test.rb"]
8
- end
@@ -1,18 +0,0 @@
1
- # make sure this is set before Sinatra is required
2
- ENV["RACK_ENV"] = "test"
3
-
4
- require "bundler"
5
- Bundler.require(:default, :test)
6
-
7
- require "minitest/autorun"
8
- require "rr"
9
-
10
- require_relative "../lib/pliny"
11
-
12
- class MiniTest::Spec
13
- include Rack::Test::Methods
14
-
15
- before do
16
- Pliny::RequestStore.clear!
17
- end
18
- end