solidus_i18n 1.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +35 -0
  3. data/.gem_release.yml +5 -0
  4. data/.github/stale.yml +17 -0
  5. data/.gitignore +4 -8
  6. data/.hound.yml +1 -1
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +3 -6
  9. data/.rubocop_todo.yml +18 -0
  10. data/Gemfile +24 -6
  11. data/{LICENSE.md → LICENSE} +2 -2
  12. data/README.md +63 -29
  13. data/Rakefile +10 -73
  14. data/bin/console +17 -0
  15. data/bin/rails +12 -4
  16. data/bin/setup +8 -0
  17. data/config/locales/bg.yml +1 -47
  18. data/config/locales/ca.yml +12 -49
  19. data/config/locales/cs.yml +1 -48
  20. data/config/locales/da.yml +238 -139
  21. data/config/locales/de-CH.yml +0 -48
  22. data/config/locales/de.yml +476 -102
  23. data/config/locales/en-AU.yml +0 -48
  24. data/config/locales/en-GB.yml +1 -47
  25. data/config/locales/en-IN.yml +2 -48
  26. data/config/locales/en-NZ.yml +0 -48
  27. data/config/locales/es-CL.yml +1 -49
  28. data/config/locales/es-EC.yml +1 -47
  29. data/config/locales/es-MX.yml +417 -111
  30. data/config/locales/es.yml +1525 -797
  31. data/config/locales/et.yml +0 -50
  32. data/config/locales/fa.yml +0 -48
  33. data/config/locales/fi.yml +1 -47
  34. data/config/locales/fr.yml +677 -275
  35. data/config/locales/id.yml +2 -46
  36. data/config/locales/it.yml +1303 -445
  37. data/config/locales/ja.yml +598 -536
  38. data/config/locales/ko.yml +0 -48
  39. data/config/locales/lv.yml +0 -48
  40. data/config/locales/nb.yml +0 -48
  41. data/config/locales/nl.yml +1 -47
  42. data/config/locales/pl.yml +1 -47
  43. data/config/locales/pt-BR.yml +1101 -249
  44. data/config/locales/pt.yml +0 -48
  45. data/config/locales/ro.yml +3 -48
  46. data/config/locales/ru.yml +1884 -1237
  47. data/config/locales/sk.yml +722 -577
  48. data/config/locales/sl-SI.yml +0 -48
  49. data/config/locales/sv.yml +1 -47
  50. data/config/locales/th.yml +1 -45
  51. data/config/locales/tr.yml +1 -45
  52. data/config/locales/uk.yml +370 -381
  53. data/config/locales/vi.yml +1 -45
  54. data/config/locales/zh-CN.yml +1 -45
  55. data/config/locales/zh-TW.yml +1 -45
  56. data/config/routes.rb +2 -4
  57. data/i18n-tasks.yml +4 -0
  58. data/lib/generators/solidus_i18n/install/install_generator.rb +10 -13
  59. data/lib/solidus_i18n.rb +5 -6
  60. data/lib/solidus_i18n/engine.rb +9 -36
  61. data/lib/solidus_i18n/factories.rb +4 -0
  62. data/lib/solidus_i18n/version.rb +3 -16
  63. data/lib/tasks/solidus_i18n/upgrade.rake +13 -11
  64. data/solidus_i18n.gemspec +29 -39
  65. data/spec/solidus_i18n_spec.rb +67 -0
  66. data/spec/spec_helper.rb +15 -13
  67. metadata +231 -292
  68. data/.travis.yml +0 -12
  69. data/Guardfile +0 -11
  70. data/app/assets/javascripts/spree/backend/solidus_i18n.js +0 -2
  71. data/app/assets/javascripts/spree/backend/translations.js.coffee +0 -5
  72. data/app/assets/javascripts/spree/frontend/cart_decorator.js.coffee +0 -5
  73. data/app/assets/javascripts/spree/frontend/locale.js.coffee +0 -3
  74. data/app/assets/javascripts/spree/frontend/solidus_i18n.js +0 -2
  75. data/app/assets/stylesheets/spree/backend/solidus_i18n.css +0 -8
  76. data/app/assets/stylesheets/spree/frontend/solidus_i18n.css +0 -8
  77. data/app/controllers/spree/admin/general_settings_controller_decorator.rb +0 -12
  78. data/app/controllers/spree/api/base_controller_decorator.rb +0 -3
  79. data/app/controllers/spree/base_controller_decorator.rb +0 -3
  80. data/app/controllers/spree/locale_controller_decorator.rb +0 -6
  81. data/app/helpers/solidus_i18n/locale_helper.rb +0 -31
  82. data/app/overrides/spree/admin/general_settings/edit/localization_settings.html.erb.deface +0 -20
  83. data/app/overrides/spree/shared/_main_nav_bar/cart_link.html.erb.deface +0 -9
  84. data/app/overrides/spree/shared/_main_nav_bar/locale_selector.html.erb.deface +0 -16
  85. data/config/initializers/country_names.rb +0 -51
  86. data/config/initializers/routing_filter.rb +0 -2
  87. data/db/migrate/20150609154031_remove_translations_from_spree_tables.rb +0 -65
  88. data/lib/solidus_i18n/configuration.rb +0 -9
  89. data/lib/solidus_i18n/controller_locale_helper.rb +0 -29
  90. data/lib/solidus_i18n/locale.rb +0 -13
  91. data/lib/solidus_i18n/utils.rb +0 -56
  92. data/spec/controllers/locales_controller_spec.rb +0 -24
  93. data/spec/features/admin/translations_spec.rb +0 -33
  94. data/spec/features/russian_errors_translation_spec.rb +0 -17
  95. data/spec/features/translation_spec.rb +0 -31
  96. data/spec/features/translations_spec.rb +0 -28
  97. data/spec/support/capybara.rb +0 -11
  98. data/spec/support/database_cleaner.rb +0 -23
  99. data/spec/support/factory_girl.rb +0 -5
  100. data/spec/support/i18n.rb +0 -5
  101. data/spec/support/spree.rb +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ed8e33f5b243d4064d181a50c9ddc3969cb8c7c1
4
- data.tar.gz: d44330025193250d62aabf963178adaaffc5d510
2
+ SHA256:
3
+ metadata.gz: 1b6e21b2e37c009c788f848056a93337d066c54ae04583d42305c4d0371e08eb
4
+ data.tar.gz: 031cbfd44787548a02e65e54a4f715a798a0cfdbd34378ebfa2adde38aefca1d
5
5
  SHA512:
6
- metadata.gz: 60b20095c44e83638e94d8fc409ec76cfd6d1a64e2123c2f747e7388a3ce0ee3bc7d4fc704ac29ee041c57f875d41f0d4756d8091a56c4baa6a494da29176e02
7
- data.tar.gz: e80049c2f3faa448c391ed4a8ebca5c272cf6fd7769b3f5e7ef61377746cd981df8fba5f1559023276b9aecdcec5852a9e235624b2da93d5c73bdbd2504d7947
6
+ metadata.gz: 59b14bced5193d9adf11e8886ebeb3399cd11e8823af0d2696525e63c5b92ee0422ed5e032b72f7cd0e9c96b0c7331aecd38f73528cd12578f907902d28d93e3
7
+ data.tar.gz: e7a402a040a4926aa7793e8bfff7d83db16e648c17b3bd46c5b9948cfda17d421e298bab4275900bf0de5a7b893908dd42034445335ca5fc014c246306008759
@@ -0,0 +1,35 @@
1
+ version: 2.1
2
+
3
+ orbs:
4
+ # Always take the latest version of the orb, this allows us to
5
+ # run specs against Solidus supported versions only without the need
6
+ # to change this configuration every time a Solidus version is released
7
+ # or goes EOL.
8
+ solidusio_extensions: solidusio/extensions@volatile
9
+
10
+ jobs:
11
+ run-specs-with-postgres:
12
+ executor: solidusio_extensions/postgres
13
+ steps:
14
+ - solidusio_extensions/run-tests
15
+ run-specs-with-mysql:
16
+ executor: solidusio_extensions/mysql
17
+ steps:
18
+ - solidusio_extensions/run-tests
19
+
20
+ workflows:
21
+ "Run specs on supported Solidus versions":
22
+ jobs:
23
+ - run-specs-with-postgres
24
+ - run-specs-with-mysql
25
+ "Weekly run specs against master":
26
+ triggers:
27
+ - schedule:
28
+ cron: "0 0 * * 4" # every Thursday
29
+ filters:
30
+ branches:
31
+ only:
32
+ - master
33
+ jobs:
34
+ - run-specs-with-postgres
35
+ - run-specs-with-mysql
data/.gem_release.yml ADDED
@@ -0,0 +1,5 @@
1
+ bump:
2
+ recurse: false
3
+ file: 'lib/solidus_i18n/version.rb'
4
+ message: Bump SolidusI18n to %{version}
5
+ tag: true
data/.github/stale.yml ADDED
@@ -0,0 +1,17 @@
1
+ # Number of days of inactivity before an issue becomes stale
2
+ daysUntilStale: 60
3
+ # Number of days of inactivity before a stale issue is closed
4
+ daysUntilClose: 7
5
+ # Issues with these labels will never be considered stale
6
+ exemptLabels:
7
+ - pinned
8
+ - security
9
+ # Label to use when marking an issue as stale
10
+ staleLabel: wontfix
11
+ # Comment to post when marking an issue as stale. Set to `false` to disable
12
+ markComment: >
13
+ This issue has been automatically marked as stale because it has not had
14
+ recent activity. It will be closed if no further activity occurs. Thank you
15
+ for your contributions.
16
+ # Comment to post when closing a stale issue. Set to `false` to disable
17
+ closeComment: false
data/.gitignore CHANGED
@@ -1,20 +1,16 @@
1
+ *.gem
1
2
  \#*
2
3
  *~
3
4
  .#*
4
5
  .DS_Store
5
6
  .idea
6
- .localeapp/locales
7
7
  .project
8
+ .sass-cache
8
9
  coverage
9
- default
10
10
  Gemfile.lock
11
11
  tmp
12
12
  nbproject
13
13
  pkg
14
- *.sw?
14
+ *.swp
15
15
  spec/dummy
16
- .rvmrc
17
- .sass-cache
18
- public/spree
19
- .ruby-version
20
- .ruby-gemset
16
+ spec/examples.txt
data/.hound.yml CHANGED
@@ -8,7 +8,7 @@ Style/Documentation:
8
8
  Enabled: false
9
9
 
10
10
  # Neatly aligned code is too swell.
11
- Style/SingleSpaceBeforeFirstArg:
11
+ Layout/SpaceBeforeFirstArg:
12
12
  Enabled: false
13
13
 
14
14
  # Don't mess with RSpec DSL.
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.rubocop.yml CHANGED
@@ -1,7 +1,4 @@
1
- ---
2
- inherit_from: .hound.yml
1
+ require:
2
+ - solidus_dev_support/rubocop
3
3
 
4
- AllCops:
5
- Exclude:
6
- - spec/dummy/**/*
7
- - bin/*
4
+ inherit_from: .rubocop_todo.yml
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,18 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2020-01-24 11:23:54 +0100 using RuboCop version 0.76.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ RSpec/DescribeClass:
11
+ Exclude:
12
+ - 'spec/solidus_i18n_spec.rb'
13
+
14
+ # Offense count: 2
15
+ # Configuration parameters: IgnoreSharedExamples.
16
+ RSpec/NamedSubject:
17
+ Exclude:
18
+ - 'spec/solidus_i18n_spec.rb'
data/Gemfile CHANGED
@@ -1,13 +1,31 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
4
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
2
5
 
3
- gemspec
6
+ branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
7
+ gem 'solidus', github: 'solidusio/solidus', branch: branch
4
8
 
5
- gem 'solidus', github: 'solidusio/solidus', branch: 'v1.0'
9
+ # Needed to help Bundler figure out how to resolve dependencies,
10
+ # otherwise it takes forever to resolve them.
11
+ # See https://github.com/bundler/bundler/issues/6677
12
+ gem 'rails', '>0.a'
6
13
 
7
- if ENV['DB'] == 'mysql'
8
- gem 'mysql2', '~> 0.3.20'
9
- elsif ENV['DB'] == 'postgres'
14
+ case ENV['DB']
15
+ when 'mysql'
16
+ gem 'mysql2'
17
+ when 'postgresql'
10
18
  gem 'pg'
11
19
  else
12
- gem 'sqlite3', '~> 1.3.10'
20
+ gem 'sqlite3'
21
+ end
22
+
23
+ group :development, :test do
24
+ gem 'i18n-tasks', '~> 0.9' if branch == 'master'
13
25
  end
26
+
27
+ gemspec
28
+
29
+ # Use a local Gemfile to include development dependencies that might not be
30
+ # relevant for the project or for other contributors, e.g.: `gem 'pry-debug'`.
31
+ eval_gemfile 'Gemfile-local' if File.exist? 'Gemfile-local'
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011-2015 Spree Commerce Inc., and other contributors.
1
+ Copyright (c) 2011-2015 Spree Commerce Inc. and other contributors
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
@@ -9,7 +9,7 @@ are permitted provided that the following conditions are met:
9
9
  * Redistributions in binary form must reproduce the above copyright notice,
10
10
  this list of conditions and the following disclaimer in the documentation
11
11
  and/or other materials provided with the distribution.
12
- * Neither the name Spree nor the names of its contributors may be used to
12
+ * Neither the name Solidus nor the names of its contributors may be used to
13
13
  endorse or promote products derived from this software without specific
14
14
  prior written permission.
15
15
 
data/README.md CHANGED
@@ -1,42 +1,78 @@
1
1
  # Solidus Internationalization
2
2
 
3
- [![Build Status](https://travis-ci.org/solidusio-contrib/solidus_i18n.svg?branch=master)](https://travis-ci.org/solidusio-contrib/solidus_i18n)
4
- [![Code Climate](https://codeclimate.com/github/solidusio-contrib/solidus_i18n/badges/gpa.svg)](https://codeclimate.com/github/solidusio-contrib/solidus_i18n)
3
+ [![CircleCI](https://circleci.com/gh/solidusio/solidus_i18n.svg?style=svg)](https://circleci.com/gh/solidusio/solidus_i18n)
4
+ [![Code Climate](https://codeclimate.com/github/solidusio/solidus_i18n/badges/gpa.svg)](https://codeclimate.com/github/solidusio/solidus_i18n)
5
+ [![Gem Version](https://badge.fury.io/rb/solidus_i18n.svg)](https://badge.fury.io/rb/solidus_i18n)
5
6
 
6
7
  This is the Internationalization project for [Solidus](https://solidus.io)
7
8
 
8
9
  ---
9
10
 
11
+ ## Changes in Version 2.0
12
+
13
+ solidus_i18n Version 2.0+ only contains translation files.
14
+
15
+ Previous versions of solidus_i18n included extra functionality like locale
16
+ selectors and which is now built in to Solidus 2.6+. Configuration for
17
+ `routing-filter` has also been removed and must be configured manually
18
+ (See [Locale in URL](#locale-in-url)).
19
+
10
20
  ## Installation
11
21
 
12
22
  Add the following to your `Gemfile`:
13
23
 
14
24
  ```ruby
15
- gem 'solidus_i18n', github: 'solidusio-contrib/solidus_i18n', branch: 'master'
25
+ gem 'solidus_i18n', '~> 2.0'
26
+ gem 'rails-i18n', '~> 5.1'
27
+ gem 'kaminari-i18n', '~> 0.5.0'
16
28
  ```
17
29
 
18
- Run `bundle install`
30
+ ## Locale in URL
19
31
 
20
- You can use the generator to install migrations and append solidus_i18n assets to
21
- your app solidus manifest file.
32
+ Older versions of solidus_i18n included the routing-filter gem and configured routes to include the locale in the URL.
33
+ This is still supported (maybe even recommended) but requires some additional configuration.
22
34
 
23
- bin/rails g solidus_i18n:install
35
+ 1. Add this gem to your `Gemfile`, then run `bundle install`
24
36
 
25
- This will insert these lines into your Spree assets manifests:
37
+ ``` ruby
38
+ gem 'routing-filter', '~> 0.6.0'
39
+ ```
26
40
 
27
- In `vendor/assets/javascripts/spree/frontend/all.js`
41
+ 2. Add `filter :locale` to your `config/routes.rb`
28
42
 
29
- ```
30
- //= require spree/frontend/solidus_i18n
43
+ ``` ruby
44
+ Rails.application.routes.draw do
45
+ filter :locale
46
+
47
+ mount Spree::Core::Engine, at: '/'
48
+ end
31
49
  ```
32
50
 
33
- In `vendor/assets/javascripts/spree/backend/all.js`
51
+ 3. Configure routing-fitler in `config/initializers/locale_filter.rb` (optional)
34
52
 
35
- ```
36
- //= require spree/backend/solidus_i18n
53
+ ``` ruby
54
+ # Do not include the default locale in the URL
55
+ RoutingFilter::Locale.include_default_locale = false
37
56
  ```
38
57
 
39
- ---
58
+ ## Supported languages
59
+
60
+ We currently support the [following locales](https://github.com/solidusio/solidus_i18n/tree/master/config/locales)
61
+ by default. If you need a locale that is not in the list you can add a custom
62
+ translation file into your application by following the
63
+ [Rails translations guide](http://guides.rubyonrails.org/i18n.html#how-to-store-your-custom-translations).
64
+
65
+ ## Updating Translations
66
+
67
+ If you want to improve the translations on your language, run the tasks:
68
+
69
+ bundle exec rake solidus_i18n:update_default
70
+ bundle exec i18n-tasks add-missing --nil-value --locale <LOCALE>
71
+
72
+ Substitute <LOCALE> with your locale code (e.g: `it`).
73
+
74
+ This will do a cleanup and prepare `<LOCALE>.yml` with all the missing keys.
75
+ You can then write the translations and open a pull request.
40
76
 
41
77
  ## Model Translations
42
78
 
@@ -49,23 +85,21 @@ Please update your `Gemfile` if you still need the model translations.
49
85
  gem 'solidus_globalize', github: 'solidusio-contrib/solidus_globalize', branch: 'master'
50
86
  ```
51
87
 
52
- ---
53
-
54
- ## Upgrading
88
+ ## Localizing country names
55
89
 
56
- **WARNING**: If you want to keep your model translations, be sure to add the `solidus_globalize` gem to your `Gemfile` **before** migrating the database. Otherwise **you will loose your translations**!
90
+ You can translate country names by defining `spree.country_names` in your own locale files. For example, to have countries in Spanish do:
57
91
 
58
- ### 1. Migrate your database
59
-
60
- bin/rake solidus:i18n:upgrade
61
- bin/rake db:migrate
62
-
63
- *Note:* The migration automatically skips the removal of the translations tables. So it's safe to run the migration without data loss. But be sure to have the `solidus_globalize` gem in your `Gemfile`, if you want to keep them.
64
-
65
- ### 2. Remove Configuration
66
-
67
- Remove all occurrences of `SolidusI18n::Config.supported_locales` from your code.
92
+ ```yml
93
+ es:
94
+ spree:
95
+ country_names:
96
+ US: Estados Unidos de América
97
+ UK: Reino Unido
98
+ CA: Canadá
99
+ # ...
100
+ ```
68
101
 
102
+ Some supported languages already define localized country names. Take a look at this repo's `.yml` files for your locale to confirm if we already provide translations.
69
103
 
70
104
  Contributing
71
105
  ------------
data/Rakefile CHANGED
@@ -1,85 +1,22 @@
1
- require 'rubygems'
2
- require 'rake'
3
- require 'rake/testtask'
4
- require 'rake/packagetask'
5
- require 'rubygems/package_task'
6
- require 'rspec/core/rake_task'
7
- require 'spree/testing_support/common_rake'
8
- require 'solidus_i18n'
9
-
10
- Bundler::GemHelper.install_tasks
11
- RSpec::Core::RakeTask.new
12
-
13
- task default: :spec
14
-
15
- spec = eval(File.read('solidus_i18n.gemspec'))
16
-
17
- Gem::PackageTask.new(spec) do |p|
18
- p.gem_spec = spec
19
- end
1
+ # frozen_string_literal: true
20
2
 
21
- desc 'Generates a dummy app for testing'
22
- task :test_app do
23
- ENV['LIB_NAME'] = 'solidus_i18n'
24
- Rake::Task['common:test_app'].invoke
25
- end
3
+ require 'solidus_dev_support/rake_tasks'
4
+ SolidusDevSupport::RakeTasks.install
26
5
 
6
+ require 'solidus_i18n'
27
7
  namespace :solidus_i18n do
28
8
  desc 'Update by retrieving the latest Solidus locale files'
29
- task :update_default do
30
- puts "Fetching latest Solidus locale file to #{locales_dir}"
31
- require 'uri'
32
- require 'net/https'
33
-
9
+ task update_default: :environment do
10
+ require 'open-uri'
11
+ puts 'Fetching latest Solidus locale file'
34
12
  location = 'https://raw.github.com/solidusio/solidus/master/core/config/locales/en.yml'
35
- begin
36
- uri = URI.parse(location)
37
- http = Net::HTTP.new(uri.host, uri.port)
38
- http.use_ssl = true
39
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
40
- puts "Getting from #{uri}"
41
- request = Net::HTTP::Get.new(uri.request_uri)
42
- case response = http.request(request)
43
- when Net::HTTPRedirection then location = response['location']
44
- when Net::HTTPClientError, Net::HTTPServerError then response.error!
45
- end
46
- end until Net::HTTPSuccess == response
47
-
48
- FileUtils.mkdir_p(default_dir) unless File.directory?(default_dir)
49
13
 
50
- File.open("#{default_dir}/solidus_core.yml", 'w') { |file| file << response.body }
51
- end
52
-
53
- desc 'Syncronize translation files with latest en (adds comments with fallback en value)'
54
- task :sync do
55
- puts 'Starting syncronization...'
56
- words = translation_keys
57
-
58
- Dir["#{locales_dir}/*.yml"].each do |filename|
59
- basename = File.basename(filename, '.yml')
60
- (comments, other) = SolidusI18n::Utils.read_file(filename, basename)
61
- # Initializing hash variable as en fallback if it does not exist
62
- words.each { |k, _v| other[k] ||= "#{words[k]}" }
63
- # Remove if not defined in en locale
64
- other.delete_if { |k, _v| !words[k] }
65
- SolidusI18n::Utils.write_file(filename, basename, comments, other, false)
66
- end
67
- end
68
-
69
- def translation_keys
70
- (dummy_comments, words) = SolidusI18n::Utils.read_file(File.dirname(__FILE__) + '/default/solidus_core.yml', 'en')
71
- words
14
+ File.write("#{locales_dir}/en.yml", URI.parse(location).read)
72
15
  end
73
16
 
74
17
  def locales_dir
75
18
  File.join File.dirname(__FILE__), 'config/locales'
76
19
  end
77
-
78
- def default_dir
79
- File.join File.dirname(__FILE__), 'default'
80
- end
81
-
82
- def env_locale
83
- ENV['LOCALE'].presence
84
- end
85
20
  end
21
+
22
+ task default: 'extension:specs'
data/bin/console ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # frozen_string_literal: true
4
+
5
+ require "bundler/setup"
6
+ require "solidus_i18n"
7
+
8
+ # You can add fixtures and/or initialization code here to make experimenting
9
+ # with your gem easier. You can also use a different console, if you like.
10
+ $LOAD_PATH.unshift(*Dir["#{__dir__}/../app/*"])
11
+
12
+ # (If you use this, don't forget to add pry to your Gemfile!)
13
+ # require "pry"
14
+ # Pry.start
15
+
16
+ require "irb"
17
+ IRB.start(__FILE__)