factory_bot_rails 1.0.0.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +7 -0
  2. data/Appraisals +21 -0
  3. data/CONTRIBUTING.md +39 -0
  4. data/Gemfile +20 -0
  5. data/Gemfile.lock +144 -0
  6. data/LICENSE +19 -0
  7. data/NEWS +24 -0
  8. data/README.md +94 -0
  9. data/Rakefile +24 -0
  10. data/bin/setup +16 -0
  11. data/factory_bot_rails-1.0.0.gem +0 -0
  12. data/factory_bot_rails.gemspec +20 -0
  13. data/factory_girl_rails.gemspec +20 -0
  14. data/features/fixture_replacement_config.feature +132 -0
  15. data/features/generators.feature +54 -0
  16. data/features/load_definitions.feature +85 -0
  17. data/features/step_definitions/appraisal.rb +5 -0
  18. data/features/step_definitions/rails_steps.rb +42 -0
  19. data/features/support/env.rb +21 -0
  20. data/gemfiles/rails3.2.gemfile +22 -0
  21. data/gemfiles/rails3.2.gemfile.lock +177 -0
  22. data/gemfiles/rails4.1.gemfile +23 -0
  23. data/gemfiles/rails4.1.gemfile.lock +175 -0
  24. data/gemfiles/rails4.2.gemfile +21 -0
  25. data/gemfiles/rails4.2.gemfile.lock +190 -0
  26. data/gemfiles/rails5.0.gemfile +22 -0
  27. data/gemfiles/rails5.0.gemfile.lock +153 -0
  28. data/lib/factory_bot_rails.rb +4 -0
  29. data/lib/factory_bot_rails/generator.rb +43 -0
  30. data/lib/factory_bot_rails/generators/non_rspec_generator.rb +19 -0
  31. data/lib/factory_bot_rails/generators/null_generator.rb +11 -0
  32. data/lib/factory_bot_rails/generators/rspec_generator.rb +23 -0
  33. data/lib/factory_bot_rails/railtie.rb +28 -0
  34. data/lib/generators/factory_bot.rb +15 -0
  35. data/lib/generators/factory_bot/model/model_generator.rb +99 -0
  36. data/tmp/aruba/testapp/Gemfile +50 -0
  37. data/tmp/aruba/testapp/Gemfile.lock +188 -0
  38. data/tmp/aruba/testapp/README.md +24 -0
  39. data/tmp/aruba/testapp/Rakefile +6 -0
  40. data/tmp/aruba/testapp/app/assets/config/manifest.js +3 -0
  41. data/tmp/aruba/testapp/app/assets/javascripts/application.js +16 -0
  42. data/tmp/aruba/testapp/app/assets/javascripts/cable.js +13 -0
  43. data/tmp/aruba/testapp/app/assets/stylesheets/application.css +15 -0
  44. data/tmp/aruba/testapp/app/channels/application_cable/channel.rb +4 -0
  45. data/tmp/aruba/testapp/app/channels/application_cable/connection.rb +4 -0
  46. data/tmp/aruba/testapp/app/controllers/application_controller.rb +3 -0
  47. data/tmp/aruba/testapp/app/helpers/application_helper.rb +2 -0
  48. data/tmp/aruba/testapp/app/jobs/application_job.rb +2 -0
  49. data/tmp/aruba/testapp/app/mailers/application_mailer.rb +4 -0
  50. data/tmp/aruba/testapp/app/models/application_record.rb +3 -0
  51. data/tmp/aruba/testapp/app/models/user.rb +2 -0
  52. data/tmp/aruba/testapp/app/views/layouts/application.html.erb +14 -0
  53. data/tmp/aruba/testapp/app/views/layouts/mailer.html.erb +13 -0
  54. data/tmp/aruba/testapp/app/views/layouts/mailer.text.erb +1 -0
  55. data/tmp/aruba/testapp/bin/bundle +3 -0
  56. data/tmp/aruba/testapp/bin/rails +9 -0
  57. data/tmp/aruba/testapp/bin/rake +9 -0
  58. data/tmp/aruba/testapp/bin/setup +34 -0
  59. data/tmp/aruba/testapp/bin/spring +17 -0
  60. data/tmp/aruba/testapp/bin/update +29 -0
  61. data/tmp/aruba/testapp/config.ru +5 -0
  62. data/tmp/aruba/testapp/config/application.rb +16 -0
  63. data/tmp/aruba/testapp/config/boot.rb +3 -0
  64. data/tmp/aruba/testapp/config/cable.yml +9 -0
  65. data/tmp/aruba/testapp/config/database.yml +25 -0
  66. data/tmp/aruba/testapp/config/environment.rb +5 -0
  67. data/tmp/aruba/testapp/config/environments/development.rb +54 -0
  68. data/tmp/aruba/testapp/config/environments/production.rb +86 -0
  69. data/tmp/aruba/testapp/config/environments/test.rb +42 -0
  70. data/tmp/aruba/testapp/config/initializers/application_controller_renderer.rb +6 -0
  71. data/tmp/aruba/testapp/config/initializers/assets.rb +11 -0
  72. data/tmp/aruba/testapp/config/initializers/backtrace_silencers.rb +7 -0
  73. data/tmp/aruba/testapp/config/initializers/cookies_serializer.rb +5 -0
  74. data/tmp/aruba/testapp/config/initializers/filter_parameter_logging.rb +4 -0
  75. data/tmp/aruba/testapp/config/initializers/inflections.rb +16 -0
  76. data/tmp/aruba/testapp/config/initializers/mime_types.rb +4 -0
  77. data/tmp/aruba/testapp/config/initializers/new_framework_defaults.rb +24 -0
  78. data/tmp/aruba/testapp/config/initializers/session_store.rb +3 -0
  79. data/tmp/aruba/testapp/config/initializers/wrap_parameters.rb +14 -0
  80. data/tmp/aruba/testapp/config/locales/en.yml +23 -0
  81. data/tmp/aruba/testapp/config/puma.rb +47 -0
  82. data/tmp/aruba/testapp/config/routes.rb +3 -0
  83. data/tmp/aruba/testapp/config/secrets.yml +22 -0
  84. data/tmp/aruba/testapp/config/spring.rb +6 -0
  85. data/tmp/aruba/testapp/db/development.sqlite3 +0 -0
  86. data/tmp/aruba/testapp/db/migrate/1_create_users.rb +7 -0
  87. data/tmp/aruba/testapp/db/schema.rb +19 -0
  88. data/tmp/aruba/testapp/db/seeds.rb +7 -0
  89. data/tmp/aruba/testapp/db/test.sqlite3 +0 -0
  90. data/tmp/aruba/testapp/lib/some_railtie/factories.rb +5 -0
  91. data/tmp/aruba/testapp/lib/some_railtie/railties.rb +8 -0
  92. data/tmp/aruba/testapp/log/development.log +16 -0
  93. data/tmp/aruba/testapp/log/test.log +21 -0
  94. data/tmp/aruba/testapp/public/404.html +67 -0
  95. data/tmp/aruba/testapp/public/422.html +67 -0
  96. data/tmp/aruba/testapp/public/500.html +66 -0
  97. data/tmp/aruba/testapp/public/apple-touch-icon-precomposed.png +0 -0
  98. data/tmp/aruba/testapp/public/apple-touch-icon.png +0 -0
  99. data/tmp/aruba/testapp/public/favicon.ico +0 -0
  100. data/tmp/aruba/testapp/public/robots.txt +5 -0
  101. data/tmp/aruba/testapp/test/test_helper.rb +10 -0
  102. data/tmp/aruba/testapp/test/unit/user_test.rb +8 -0
  103. metadata +176 -0
@@ -0,0 +1,4 @@
1
+ require 'factory_bot_rails/railtie'
2
+
3
+ module FactoryBotRails
4
+ end
@@ -0,0 +1,43 @@
1
+ require 'factory_bot_rails/generators/rspec_generator'
2
+ require 'factory_bot_rails/generators/non_rspec_generator'
3
+ require 'factory_bot_rails/generators/null_generator'
4
+
5
+ module FactoryBotRails
6
+ class Generator
7
+ def initialize(config)
8
+ @generators = if config.respond_to?(:app_generators)
9
+ config.app_generators
10
+ else
11
+ config.generators
12
+ end
13
+ end
14
+
15
+ def run
16
+ generator.new(@generators).run
17
+ end
18
+
19
+ def generator
20
+ if factory_bot_disabled?
21
+ Generators::NullGenerator
22
+ else
23
+ if test_framework == :rspec
24
+ Generators::RSpecGenerator
25
+ else
26
+ Generators::NonRSpecGenerator
27
+ end
28
+ end
29
+ end
30
+
31
+ def test_framework
32
+ rails_options[:test_framework]
33
+ end
34
+
35
+ def factory_bot_disabled?
36
+ rails_options[:factory_bot] == false
37
+ end
38
+
39
+ def rails_options
40
+ @generators.options[:rails]
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,19 @@
1
+ module FactoryBotRails
2
+ module Generators
3
+ class NonRSpecGenerator
4
+ def initialize(generators)
5
+ @generators = generators
6
+ end
7
+
8
+ def run
9
+ @generators.test_framework test_framework, fixture: false, fixture_replacement: :factory_bot
10
+ end
11
+
12
+ private
13
+
14
+ def test_framework
15
+ @generators.options[:rails][:test_framework]
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ module FactoryBotRails
2
+ module Generators
3
+ class NullGenerator
4
+ def initialize(generators)
5
+ end
6
+
7
+ def run
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,23 @@
1
+ module FactoryBotRails
2
+ module Generators
3
+ class RSpecGenerator
4
+ def initialize(generators)
5
+ @generators = generators
6
+ end
7
+
8
+ def run
9
+ @generators.fixture_replacement fixture_replacement_setting, dir: factory_bot_directory
10
+ end
11
+
12
+ private
13
+
14
+ def fixture_replacement_setting
15
+ @generators.options[:rails][:fixture_replacement] || :factory_bot
16
+ end
17
+
18
+ def factory_bot_directory
19
+ @generators.options.fetch(:factory_bot, {}).fetch(:dir, 'spec/factories')
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,28 @@
1
+ require 'factory_bot'
2
+ require 'factory_bot_rails/generator'
3
+ require 'rails'
4
+
5
+ module FactoryBot
6
+ class Railtie < Rails::Railtie
7
+
8
+ initializer "factory_bot.set_fixture_replacement" do
9
+ FactoryBotRails::Generator.new(config).run
10
+ end
11
+
12
+ initializer "factory_bot.set_factory_paths" do
13
+ FactoryBot.definition_file_paths = [
14
+ Rails.root.join('factories'),
15
+ Rails.root.join('test', 'factories'),
16
+ Rails.root.join('spec', 'factories')
17
+ ]
18
+ end
19
+
20
+ config.after_initialize do
21
+ FactoryBot.find_definitions
22
+
23
+ if defined?(Spring)
24
+ Spring.after_fork { FactoryBot.reload }
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,15 @@
1
+ require 'rails/generators/named_base'
2
+
3
+ module FactoryBot
4
+ module Generators
5
+ class Base < Rails::Generators::NamedBase #:nodoc:
6
+ def self.source_root
7
+ @_factory_bot_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'factory_bot', generator_name, 'templates'))
8
+ end
9
+
10
+ def explicit_class_option
11
+ ", class: '#{class_name}'" unless class_name == singular_table_name.camelize
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,99 @@
1
+ require 'generators/factory_bot'
2
+ require 'factory_bot_rails'
3
+
4
+ module FactoryBot
5
+ module Generators
6
+ class ModelGenerator < Base
7
+ argument(
8
+ :attributes,
9
+ type: :array,
10
+ default: [],
11
+ banner: "field:type field:type"
12
+ )
13
+
14
+ class_option(
15
+ :dir,
16
+ type: :string,
17
+ default: "test/factories",
18
+ desc: "The directory or file root where factories belong"
19
+ )
20
+
21
+ class_option(
22
+ :suffix,
23
+ type: :string,
24
+ default: nil,
25
+ desc: "Suffix to add factory file"
26
+ )
27
+
28
+ def create_fixture_file
29
+ if File.exist?(factories_file)
30
+ insert_factory_into_existing_file
31
+ else
32
+ create_factory_file
33
+ end
34
+ end
35
+
36
+ private
37
+
38
+ def factories_file
39
+ options[:dir] + ".rb"
40
+ end
41
+
42
+ def insert_factory_into_existing_file
43
+ insert_into_file(
44
+ factories_file,
45
+ factory_definition,
46
+ after: "FactoryBot.define do\n"
47
+ )
48
+ end
49
+
50
+ def create_factory_file
51
+ file = File.join(options[:dir], "#{filename}.rb")
52
+ create_file(file, single_file_factory_definition)
53
+ end
54
+
55
+ def factory_definition
56
+ <<-RUBY
57
+ factory :#{singular_table_name}#{explicit_class_option} do
58
+ #{factory_attributes.gsub(/^/, " ")}
59
+ end
60
+ RUBY
61
+ end
62
+
63
+ def single_file_factory_definition
64
+ <<-RUBY
65
+ FactoryBot.define do
66
+ #{factory_definition.chomp}
67
+ end
68
+ RUBY
69
+ end
70
+
71
+ def factory_attributes
72
+ attributes.map do |attribute|
73
+ "#{attribute.name} #{attribute.default.inspect}"
74
+ end.join("\n")
75
+ end
76
+
77
+ def filename
78
+ if factory_bot_options[:filename_proc].present?
79
+ factory_bot_options[:filename_proc].call(table_name)
80
+ else
81
+ [table_name, filename_suffix].compact.join('_')
82
+ end
83
+ end
84
+
85
+ def filename_suffix
86
+ factory_bot_options[:suffix] || options[:suffix]
87
+ end
88
+
89
+ def factory_bot_options
90
+ generators.options[:factory_bot] || {}
91
+ end
92
+
93
+ def generators
94
+ config = FactoryBot::Railtie.config
95
+ config.respond_to?(:app_generators) ? config.app_generators : config.generators
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,50 @@
1
+ source 'https://rubygems.org'
2
+
3
+
4
+ # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
5
+ gem 'rails', '~> 5.0.0', '>= 5.0.0.1'
6
+ # Use sqlite3 as the database for Active Record
7
+ gem 'sqlite3'
8
+ # Use Puma as the app server
9
+ gem 'puma', '~> 3.0'
10
+ # Use SCSS for stylesheets
11
+ gem 'sass-rails', '~> 5.0'
12
+ # Use Uglifier as compressor for JavaScript assets
13
+ gem 'uglifier', '>= 1.3.0'
14
+ # Use CoffeeScript for .coffee assets and views
15
+ gem 'coffee-rails', '~> 4.2'
16
+ # See https://github.com/rails/execjs#readme for more supported runtimes
17
+ # gem 'therubyracer', platforms: :ruby
18
+
19
+ # Use jquery as the JavaScript library
20
+ gem 'jquery-rails'
21
+ # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
22
+ gem 'turbolinks', '~> 5'
23
+ # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
24
+ gem 'jbuilder', '~> 2.5'
25
+ # Use Redis adapter to run Action Cable in production
26
+ # gem 'redis', '~> 3.0'
27
+ # Use ActiveModel has_secure_password
28
+ # gem 'bcrypt', '~> 3.1.7'
29
+
30
+ # Use Capistrano for deployment
31
+ # gem 'capistrano-rails', group: :development
32
+
33
+ group :development, :test do
34
+ # Call 'byebug' anywhere in the code to stop execution and get a debugger console
35
+ gem 'byebug', platform: :mri
36
+ end
37
+
38
+ group :development do
39
+ # Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
40
+ gem 'web-console'
41
+ gem 'listen', '~> 3.0.5'
42
+ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
43
+ gem 'spring'
44
+ gem 'spring-watcher-listen', '~> 2.0.0'
45
+ end
46
+
47
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
48
+ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
49
+ gem "factory_bot_rails", :path => "/Users/avibot/thoughtbot/factory_bot_rails"
50
+ gem "test-unit"
@@ -0,0 +1,188 @@
1
+ PATH
2
+ remote: /Users/avibot/thoughtbot/factory_bot_rails
3
+ specs:
4
+ factory_bot_rails (1.0.0)
5
+ factory_bot (~> 1.0.0)
6
+ railties (>= 3.0.0)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actioncable (5.0.1)
12
+ actionpack (= 5.0.1)
13
+ nio4r (~> 1.2)
14
+ websocket-driver (~> 0.6.1)
15
+ actionmailer (5.0.1)
16
+ actionpack (= 5.0.1)
17
+ actionview (= 5.0.1)
18
+ activejob (= 5.0.1)
19
+ mail (~> 2.5, >= 2.5.4)
20
+ rails-dom-testing (~> 2.0)
21
+ actionpack (5.0.1)
22
+ actionview (= 5.0.1)
23
+ activesupport (= 5.0.1)
24
+ rack (~> 2.0)
25
+ rack-test (~> 0.6.3)
26
+ rails-dom-testing (~> 2.0)
27
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
28
+ actionview (5.0.1)
29
+ activesupport (= 5.0.1)
30
+ builder (~> 3.1)
31
+ erubis (~> 2.7.0)
32
+ rails-dom-testing (~> 2.0)
33
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
34
+ activejob (5.0.1)
35
+ activesupport (= 5.0.1)
36
+ globalid (>= 0.3.6)
37
+ activemodel (5.0.1)
38
+ activesupport (= 5.0.1)
39
+ activerecord (5.0.1)
40
+ activemodel (= 5.0.1)
41
+ activesupport (= 5.0.1)
42
+ arel (~> 7.0)
43
+ activesupport (5.0.1)
44
+ concurrent-ruby (~> 1.0, >= 1.0.2)
45
+ i18n (~> 0.7)
46
+ minitest (~> 5.1)
47
+ tzinfo (~> 1.1)
48
+ arel (7.1.4)
49
+ builder (3.2.3)
50
+ byebug (9.0.6)
51
+ coffee-rails (4.2.1)
52
+ coffee-script (>= 2.2.0)
53
+ railties (>= 4.0.0, < 5.2.x)
54
+ coffee-script (2.4.1)
55
+ coffee-script-source
56
+ execjs
57
+ coffee-script-source (1.12.2)
58
+ concurrent-ruby (1.0.4)
59
+ debug_inspector (0.0.2)
60
+ erubis (2.7.0)
61
+ execjs (2.7.0)
62
+ factory_bot (1.0.0)
63
+ activesupport (>= 3.0.0)
64
+ ffi (1.9.17)
65
+ globalid (0.3.7)
66
+ activesupport (>= 4.1.0)
67
+ i18n (0.7.0)
68
+ jbuilder (2.6.1)
69
+ activesupport (>= 3.0.0, < 5.1)
70
+ multi_json (~> 1.2)
71
+ jquery-rails (4.2.2)
72
+ rails-dom-testing (>= 1, < 3)
73
+ railties (>= 4.2.0)
74
+ thor (>= 0.14, < 2.0)
75
+ listen (3.0.8)
76
+ rb-fsevent (~> 0.9, >= 0.9.4)
77
+ rb-inotify (~> 0.9, >= 0.9.7)
78
+ loofah (2.0.3)
79
+ nokogiri (>= 1.5.9)
80
+ mail (2.6.4)
81
+ mime-types (>= 1.16, < 4)
82
+ method_source (0.8.2)
83
+ mime-types (3.1)
84
+ mime-types-data (~> 3.2015)
85
+ mime-types-data (3.2016.0521)
86
+ mini_portile2 (2.1.0)
87
+ minitest (5.10.1)
88
+ multi_json (1.12.1)
89
+ nio4r (1.2.1)
90
+ nokogiri (1.7.0.1)
91
+ mini_portile2 (~> 2.1.0)
92
+ power_assert (0.4.1)
93
+ puma (3.6.2)
94
+ rack (2.0.1)
95
+ rack-test (0.6.3)
96
+ rack (>= 1.0)
97
+ rails (5.0.1)
98
+ actioncable (= 5.0.1)
99
+ actionmailer (= 5.0.1)
100
+ actionpack (= 5.0.1)
101
+ actionview (= 5.0.1)
102
+ activejob (= 5.0.1)
103
+ activemodel (= 5.0.1)
104
+ activerecord (= 5.0.1)
105
+ activesupport (= 5.0.1)
106
+ bundler (>= 1.3.0, < 2.0)
107
+ railties (= 5.0.1)
108
+ sprockets-rails (>= 2.0.0)
109
+ rails-dom-testing (2.0.2)
110
+ activesupport (>= 4.2.0, < 6.0)
111
+ nokogiri (~> 1.6)
112
+ rails-html-sanitizer (1.0.3)
113
+ loofah (~> 2.0)
114
+ railties (5.0.1)
115
+ actionpack (= 5.0.1)
116
+ activesupport (= 5.0.1)
117
+ method_source
118
+ rake (>= 0.8.7)
119
+ thor (>= 0.18.1, < 2.0)
120
+ rake (12.0.0)
121
+ rb-fsevent (0.9.8)
122
+ rb-inotify (0.9.8)
123
+ ffi (>= 0.5.0)
124
+ sass (3.4.23)
125
+ sass-rails (5.0.6)
126
+ railties (>= 4.0.0, < 6)
127
+ sass (~> 3.1)
128
+ sprockets (>= 2.8, < 4.0)
129
+ sprockets-rails (>= 2.0, < 4.0)
130
+ tilt (>= 1.1, < 3)
131
+ spring (2.0.1)
132
+ activesupport (>= 4.2)
133
+ spring-watcher-listen (2.0.1)
134
+ listen (>= 2.7, < 4.0)
135
+ spring (>= 1.2, < 3.0)
136
+ sprockets (3.7.1)
137
+ concurrent-ruby (~> 1.0)
138
+ rack (> 1, < 3)
139
+ sprockets-rails (3.2.0)
140
+ actionpack (>= 4.0)
141
+ activesupport (>= 4.0)
142
+ sprockets (>= 3.0.0)
143
+ sqlite3 (1.3.13)
144
+ test-unit (3.2.3)
145
+ power_assert
146
+ thor (0.19.4)
147
+ thread_safe (0.3.5)
148
+ tilt (2.0.6)
149
+ turbolinks (5.0.1)
150
+ turbolinks-source (~> 5)
151
+ turbolinks-source (5.0.0)
152
+ tzinfo (1.2.2)
153
+ thread_safe (~> 0.1)
154
+ uglifier (3.0.4)
155
+ execjs (>= 0.3.0, < 3)
156
+ web-console (3.4.0)
157
+ actionview (>= 5.0)
158
+ activemodel (>= 5.0)
159
+ debug_inspector
160
+ railties (>= 5.0)
161
+ websocket-driver (0.6.5)
162
+ websocket-extensions (>= 0.1.0)
163
+ websocket-extensions (0.1.2)
164
+
165
+ PLATFORMS
166
+ ruby
167
+
168
+ DEPENDENCIES
169
+ byebug
170
+ coffee-rails (~> 4.2)
171
+ factory_bot_rails!
172
+ jbuilder (~> 2.5)
173
+ jquery-rails
174
+ listen (~> 3.0.5)
175
+ puma (~> 3.0)
176
+ rails (~> 5.0.0, >= 5.0.0.1)
177
+ sass-rails (~> 5.0)
178
+ spring
179
+ spring-watcher-listen (~> 2.0.0)
180
+ sqlite3
181
+ test-unit
182
+ turbolinks (~> 5)
183
+ tzinfo-data
184
+ uglifier (>= 1.3.0)
185
+ web-console
186
+
187
+ BUNDLED WITH
188
+ 1.13.7