awesome_translations 0.0.56 → 0.0.60

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +1 -1
  3. data/app/controllers/awesome_translations/clean_ups_controller.rb +1 -1
  4. data/app/controllers/awesome_translations/groups_controller.rb +1 -0
  5. data/app/controllers/awesome_translations/handlers_controller.rb +1 -0
  6. data/app/helpers/awesome_translations/application_helper.rb +0 -1
  7. data/app/models/awesome_translations/group.rb +2 -2
  8. data/app/models/awesome_translations/translated_value.rb +4 -1
  9. data/app/models/awesome_translations/translation.rb +9 -4
  10. data/app/views/awesome_translations/duplicates/index.html.erb +2 -2
  11. data/app/views/awesome_translations/groups/show.html.erb +9 -4
  12. data/app/views/awesome_translations/handler_translations/index.html.erb +21 -6
  13. data/app/views/awesome_translations/handlers/show.html.erb +29 -6
  14. data/app/views/awesome_translations/movals/index.html.erb +2 -2
  15. data/lib/awesome_translations/cache_database_generator/group.rb +10 -3
  16. data/lib/awesome_translations/cache_database_generator/handler.rb +9 -2
  17. data/lib/awesome_translations/cache_database_generator/handler_translation.rb +13 -3
  18. data/lib/awesome_translations/cache_database_generator/translation_key.rb +4 -4
  19. data/lib/awesome_translations/cache_database_generator/translation_value.rb +3 -1
  20. data/lib/awesome_translations/cache_database_generator.rb +2 -2
  21. data/lib/awesome_translations/config.rb +3 -3
  22. data/lib/awesome_translations/engine.rb +0 -4
  23. data/lib/awesome_translations/erb_inspector/file_inspector.rb +7 -7
  24. data/lib/awesome_translations/erb_inspector/translation_inspector.rb +7 -7
  25. data/lib/awesome_translations/erb_inspector.rb +2 -1
  26. data/lib/awesome_translations/global_translator.rb +13 -27
  27. data/lib/awesome_translations/handlers/file_handler.rb +1 -0
  28. data/lib/awesome_translations/handlers/model_handler.rb +1 -1
  29. data/lib/awesome_translations/handlers/validations_handler.rb +4 -4
  30. data/lib/awesome_translations/handlers.rb +1 -0
  31. data/lib/awesome_translations/model_inspector.rb +19 -13
  32. data/lib/awesome_translations/translation_migrator.rb +1 -1
  33. data/lib/awesome_translations/version.rb +1 -1
  34. data/lib/awesome_translations.rb +1 -1
  35. data/lib/tasks/awesome_translations_tasks.rake +1 -1
  36. data/spec/controllers/groups_controller_spec.rb +5 -5
  37. data/spec/controllers/handlers_controller_spec.rb +1 -1
  38. data/spec/dummy/Rakefile +1 -1
  39. data/spec/dummy/app/assets/config/manifest.js +3 -0
  40. data/spec/dummy/app/assets/javascripts/translations.js +1 -0
  41. data/spec/dummy/app/controllers/users_controller.rb +1 -1
  42. data/spec/dummy/app/mailers/my_mailer.rb +1 -1
  43. data/spec/dummy/app/models/application_record.rb +3 -0
  44. data/spec/dummy/app/models/role.rb +1 -1
  45. data/spec/dummy/app/models/user.rb +1 -1
  46. data/spec/dummy/bin/bundle +1 -1
  47. data/spec/dummy/bin/rails +1 -1
  48. data/spec/dummy/config/application.rb +7 -2
  49. data/spec/dummy/config/boot.rb +2 -2
  50. data/spec/dummy/config/environment.rb +1 -1
  51. data/spec/dummy/config.ru +1 -1
  52. data/spec/factories/group.rb +2 -2
  53. data/spec/factories/handler.rb +4 -4
  54. data/spec/factories/handler_translation.rb +5 -5
  55. data/spec/factories/translation_key.rb +1 -1
  56. data/spec/factories/translation_value.rb +3 -3
  57. data/spec/features/clean_ups_spec.rb +1 -1
  58. data/spec/features/duplicates_spec.rb +4 -4
  59. data/spec/features/movals_spec.rb +7 -7
  60. data/spec/handlers/file_handler_spec.rb +8 -8
  61. data/spec/handlers/model_handler_spec.rb +4 -4
  62. data/spec/handlers/validations_handler_spec.rb +3 -3
  63. data/spec/handlers_spec.rb +1 -1
  64. data/spec/lib/cache_database_generator_spec.rb +3 -3
  65. data/spec/lib/erb_inspector/file_inspector_spec.rb +3 -2
  66. data/spec/lib/erb_inspector/translation_inspector_spec.rb +2 -2
  67. data/spec/lib/erb_inspector_spec.rb +5 -5
  68. data/spec/lib/model_inspector_spec.rb +4 -4
  69. data/spec/lib/translation_migrator_spec.rb +2 -2
  70. data/spec/models/awesome_translations/handler_spec.rb +1 -1
  71. data/spec/models/awesome_translations/translation_spec.rb +7 -2
  72. data/spec/spec_helper.rb +8 -6
  73. metadata +76 -94
  74. data/config/initializers/simple_form_ransack.rb +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 691783269b3a8692e8aa63371a814da6ef633dcb
4
- data.tar.gz: e4247d560bd742bdbc20fb930611aa230df51763
2
+ SHA256:
3
+ metadata.gz: 55dac9259ef0eb5ae536764f8bd14c5df32277491c8aa478ee9160bef11efe2c
4
+ data.tar.gz: a74978683d4b38c71c3917d0c9e85ae7a11e28e177a0d941908fea9eabed0135
5
5
  SHA512:
6
- metadata.gz: f4ba1c63858acfa9fe6732352a3f56fdf232f404dfe1fdd80eeea49522bf012bd9d7332f2baa28edf863c544e5c469240cecf47d6f404fe1717e7422926e763a
7
- data.tar.gz: d1db5d410bf1676ad674cbd4c7446d655871cdc3abe92d221eafd4eba5949ad72a7fe690614bea57e7a4ac765190d153e628fb92774489c5a5e6da49bc1d7046
6
+ metadata.gz: 0b16c21783bffaf2205e929161bd289649a7f312bc16c670207a165f54e4287779a01873b19dab6dc925ae6d867fbf8c50a7a00b19cf22b7b134a054369a7090
7
+ data.tar.gz: 2ded14bda849ec6ddaa405bc74469c821e45744c805ac5766f4ea5f66c05663212009e72605df0ce6b9f92959b20319e33f8c69a4c67cdbf33f37849623f57d1
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ RDoc::Task.new(:rdoc) do |rdoc|
14
14
  rdoc.rdoc_files.include("lib/**/*.rb")
15
15
  end
16
16
 
17
- APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
17
+ APP_RAKEFILE = File.expand_path("spec/dummy/Rakefile", __dir__)
18
18
  load "rails/tasks/engine.rake"
19
19
 
20
20
 
@@ -26,7 +26,7 @@ private
26
26
  .joins(:translation_key)
27
27
  .includes(:translation_key)
28
28
  .joins("LEFT JOIN handler_translations ON handler_translations.translation_key_id = translation_keys.id")
29
- .where("handler_translations.id IS NULL")
29
+ .where(handler_translations: {id: nil})
30
30
  .where("translation_values.file_path LIKE '%/config/locales/awesome_translations/%'")
31
31
  end
32
32
  end
@@ -14,6 +14,7 @@ class AwesomeTranslations::GroupsController < AwesomeTranslations::ApplicationCo
14
14
  @group.handler_translations.each do |translation|
15
15
  values = values_from_translation(translation)
16
16
  next unless values
17
+
17
18
  save_values(translation, values)
18
19
  end
19
20
 
@@ -16,6 +16,7 @@ class AwesomeTranslations::HandlersController < AwesomeTranslations::Application
16
16
  generator = AwesomeTranslations::CacheDatabaseGenerator.current
17
17
  generator.update_handlers do |handler_model|
18
18
  next unless handler_model.identifier == @handler.identifier
19
+
19
20
  generator.update_groups_for_handler(handler_model)
20
21
  end
21
22
 
@@ -2,7 +2,6 @@ require "baza_models"
2
2
 
3
3
  module ::AwesomeTranslations::ApplicationHelper
4
4
  include BazaModels::Helpers::RansackerHelper
5
- include SimpleFormRansackHelper
6
5
 
7
6
  def flash_message_class(type)
8
7
  type = type.to_s
@@ -1,7 +1,7 @@
1
1
  class AwesomeTranslations::Group
2
2
  attr_reader :handler, :id, :data
3
3
 
4
- def self.find_by_handler_and_id(handler, id)
4
+ def self.find_by(handler:, id:)
5
5
  handler.groups.each do |group|
6
6
  return group if group.id == id.to_s
7
7
  end
@@ -13,7 +13,7 @@ class AwesomeTranslations::Group
13
13
  @handler = args.fetch(:handler)
14
14
  @id = args.fetch(:id)
15
15
  @data = args[:data] || {}
16
- raise "Invalid ID: #{@id}" unless @id.present?
16
+ raise "Invalid ID: #{@id}" if @id.blank?
17
17
  end
18
18
 
19
19
  def translations(args = {})
@@ -17,17 +17,20 @@ class AwesomeTranslations::TranslatedValue
17
17
  alias inspect to_s
18
18
 
19
19
  def array_translation?
20
- return true if @key =~ /\[(\d+)\]\Z/
20
+ return true if /\[(\d+)\]\Z/.match?(@key)
21
+
21
22
  false
22
23
  end
23
24
 
24
25
  def array_key
25
26
  return unless (match = @key.match(/\A(.+)\[(\d+)\]\Z/))
27
+
26
28
  match[1]
27
29
  end
28
30
 
29
31
  def array_no
30
32
  return unless (match = @key.match(/\A(.+)\[(\d+)\]\Z/))
33
+
31
34
  match[2].to_i
32
35
  end
33
36
 
@@ -11,7 +11,7 @@ class AwesomeTranslations::Translation
11
11
  @key_show = data[:key_show]
12
12
  @default = data[:default]
13
13
 
14
- raise "Dir wasn't valid: '#{@dir}'." unless @dir.present?
14
+ raise "Dir wasn't valid: '#{@dir}'." if @dir.blank?
15
15
  end
16
16
 
17
17
  def last_key
@@ -23,17 +23,20 @@ class AwesomeTranslations::Translation
23
23
  end
24
24
 
25
25
  def array_translation?
26
- return true if @key =~ /\[(\d+)\]\Z/
26
+ return true if /\[(\d+)\]\Z/.match?(@key)
27
+
27
28
  false
28
29
  end
29
30
 
30
31
  def array_key
31
32
  return unless (match = @key.match(/\A(.+)\[(\d+)\]\Z/))
33
+
32
34
  match[1]
33
35
  end
34
36
 
35
37
  def array_no
36
38
  return unless (match = @key.match(/\A(.+)\[(\d+)\]\Z/))
39
+
37
40
  match[2].to_i
38
41
  end
39
42
 
@@ -65,6 +68,7 @@ class AwesomeTranslations::Translation
65
68
  def finished?
66
69
  I18n.available_locales.each do |locale|
67
70
  next if value_for?(locale)
71
+
68
72
  return false
69
73
  end
70
74
 
@@ -94,14 +98,15 @@ class AwesomeTranslations::Translation
94
98
  return nil unless value_for?(locale)
95
99
 
96
100
  if array_translation?
97
- I18n.with_locale(locale) { I18n.t(array_key)[array_no] }
101
+ I18n.with_locale(locale) { I18n.t(array_key, default: [])[array_no] }
98
102
  else
99
- I18n.with_locale(locale) { I18n.t(@key) }
103
+ I18n.with_locale(locale) { I18n.t(@key, default: nil, fallback: false) }
100
104
  end
101
105
  end
102
106
 
103
107
  def file_line_content?
104
108
  return true if @full_path && @line_no && File.exist?(@full_path)
109
+
105
110
  false
106
111
  end
107
112
 
@@ -1,6 +1,6 @@
1
1
  <% content_for(:header_title) { "Duplicates" } %>
2
2
 
3
- <%= simple_form_for :duplicates do |f| %>
3
+ <%= form_tag do %>
4
4
  <% count = 0 %>
5
5
 
6
6
  <div class="panel panel-default">
@@ -46,7 +46,7 @@
46
46
  <% if count > 0 %>
47
47
  <div class="panel panel-default">
48
48
  <div class="panel-body">
49
- <%= f.button :submit, "Delete duplicates" %>
49
+ <input class="btn btn-primary" type="submit" value="Delete duplicates" />
50
50
  </div>
51
51
  </div>
52
52
  <% end %>
@@ -14,10 +14,15 @@
14
14
  </div>
15
15
  </div>
16
16
  <div class="panel-body">
17
- <%= simple_form_for :q, method: :get do |f| %>
18
- <%= f.input :translation_key_key_cont, label: "Key contains", input_html: {value: @ransack_params[:translation_key_key_cont]}, autofocus: true %>
19
- <%= f.button :submit, "Filter", class: ["btn", "btn-primary"] %>
20
- <% end %>
17
+ <form method="get">
18
+ <div class="form-group">
19
+ <label for="q_translation_key_key_cont">
20
+ Key contains
21
+ </label>
22
+ <input class="form-control" id="q_translation_key_key_cont" name="q[translation_key_key_cont]" value="<%= params.dig(:q, :translation_key_key_cont) %>" />
23
+ </div>
24
+ <input class="btn btn-primary" type="submit" value="filter" />
25
+ </form>
21
26
  </div>
22
27
  </div>
23
28
 
@@ -7,12 +7,27 @@
7
7
  </div>
8
8
  </div>
9
9
  <div class="panel-body">
10
- <%= simple_search_form_for @ransack do |f| %>
11
- <%= f.input :translation_key_key_cont, label: "Key", autofocus: true %>
12
- <%= f.input :handler_name_cont %>
13
- <%= f.input :group_name_cont %>
14
- <%= f.button :submit, "Filter", class: ["btn", "btn-primary"] %>
15
- <% end %>
10
+ <form method="get">
11
+ <div class="form-group">
12
+ <label for="q_translation_key_key_cont">
13
+ Key contains
14
+ </label>
15
+ <input class="form-control" id="q_translation_key_key_cont" name="q[translation_key_key_cont]" value="<%= params.dig(:q, :translation_key_key_cont) %>" />
16
+ </div>
17
+ <div class="form-group">
18
+ <label for="q_handler_name_cont">
19
+ Handler name contains
20
+ </label>
21
+ <input class="form-control" id="q_handler_name_cont" name="q[handler_name_cont]" value="<%= params.dig(:q, :handler_name_cont) %>" />
22
+ </div>
23
+ <div class="form-group">
24
+ <label for="q_group_name_cont">
25
+ Group name contains
26
+ </label>
27
+ <input class="form-control" id="q_group_name_cont" name="q[group_name_cont]" value="<%= params.dig(:q, :group_name_cont) %>" />
28
+ </div>
29
+ <input class="btn btn-primary" type="submit" value="Filter" />
30
+ </form>
16
31
  </div>
17
32
  </div>
18
33
 
@@ -14,20 +14,43 @@
14
14
  </div>
15
15
  </div>
16
16
  <div class="panel-body">
17
- <%= simple_search_form_for @ransack, url: @handler do |f| %>
17
+ <form method="get">
18
18
  <div class="row">
19
19
  <div class="col-md-4">
20
- <%= f.input :name_cont, autofocus: true %>
20
+ <div class="form-group">
21
+ <label for="q_name_cont">
22
+ Name contains
23
+ </label>
24
+ <input class="form-control" id="q_name_cont" name="q[name_cont]" type="text" value="<%= params.dig(:q, :name_cont) %>" />
25
+ </div>
21
26
  </div>
22
27
  <div class="col-md-4">
23
- <%= f.input :with_translations, label: "With translations", collection: with_translations_collection %>
28
+ <div class="form-group">
29
+ <label for="q_with_translations">
30
+ With translations
31
+ </label>
32
+ <select class="form-control" id="q_with_translations" name="q[with_translations]">
33
+ <option />
34
+ <%= options_for_select(with_translations_collection, params.dig(:q, :with_translations)) %>
35
+ </select>
36
+ </div>
24
37
  </div>
25
38
  <div class="col-md-4">
26
- <%= f.input :with_missing_translations, label: "Missing translations", collection: with_missing_translations_collection %>
39
+ <div class="form-group">
40
+ <label for="q_with_missing_translations">
41
+ Missing translations
42
+ </label>
43
+
44
+ <select class="form-control" name="q[with_missing_translations]" id="q_with_missing_translations">
45
+ <option />
46
+ <%= options_for_select(with_missing_translations_collection, params.dig(:q, :with_missing_translations)) %>
47
+ </select>
48
+ </div>
27
49
  </div>
28
50
  </div>
29
- <%= f.button :submit, "Filter", class: ["btn", "btn-primary"] %>
30
- <% end %>
51
+
52
+ <input class="btn btn-primary" value="Filter" type="submit" />
53
+ </form>
31
54
  </div>
32
55
  </div>
33
56
 
@@ -1,6 +1,6 @@
1
1
  <% content_for(:header_title) { "Movals" } %>
2
2
 
3
- <%= simple_form_for :movals do |f| %>
3
+ <%= form_tag do %>
4
4
  <% count = 0 %>
5
5
 
6
6
  <div class="panel panel-default">
@@ -46,7 +46,7 @@
46
46
  <% if count > 0 %>
47
47
  <div class="panel panel-default">
48
48
  <div class="panel-body">
49
- <%= f.button :submit, "Move" %>
49
+ <input class="btn btn-primary" type="submit" value="Move" />
50
50
  </div>
51
51
  </div>
52
52
  <% end %>
@@ -3,8 +3,15 @@ class AwesomeTranslations::CacheDatabaseGenerator::Group < BazaModels::Model
3
3
 
4
4
  belongs_to :handler, class_name: "AwesomeTranslations::CacheDatabaseGenerator::Handler"
5
5
 
6
- has_many :handler_translations, dependent: :destroy, foreign_key: "group_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation"
7
- has_many :translation_keys, dependent: :destroy, foreign_key: "group_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::TranslationKey"
6
+ has_many :handler_translations,
7
+ dependent: :destroy,
8
+ foreign_key: "group_id", # rubocop:disable Rails/RedundantForeignKey
9
+ class_name: "AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation"
10
+
11
+ has_many :translation_keys,
12
+ dependent: :destroy,
13
+ foreign_key: "group_id", # rubocop:disable Rails/RedundantForeignKey
14
+ class_name: "AwesomeTranslations::CacheDatabaseGenerator::TranslationKey"
8
15
 
9
16
  validates_presence_of :name, :handler
10
17
 
@@ -13,7 +20,7 @@ class AwesomeTranslations::CacheDatabaseGenerator::Group < BazaModels::Model
13
20
  end
14
21
 
15
22
  def at_group
16
- @at_group ||= AwesomeTranslations::Group.find_by_handler_and_id(at_handler, identifier)
23
+ @at_group ||= AwesomeTranslations::Group.find_by(handler: at_handler, id: identifier)
17
24
  end
18
25
 
19
26
  def to_param
@@ -1,6 +1,13 @@
1
1
  class AwesomeTranslations::CacheDatabaseGenerator::Handler < BazaModels::Model
2
- has_many :groups, dependent: :destroy, foreign_key: "handler_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::Group"
3
- has_many :handler_translations, dependent: :destroy, foreign_key: "handler_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation"
2
+ has_many :groups,
3
+ dependent: :destroy,
4
+ foreign_key: "handler_id", # rubocop:disable Rails/RedundantForeignKey
5
+ class_name: "AwesomeTranslations::CacheDatabaseGenerator::Group"
6
+
7
+ has_many :handler_translations,
8
+ dependent: :destroy,
9
+ foreign_key: "handler_id", # rubocop:disable Rails/RedundantForeignKey
10
+ class_name: "AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation"
4
11
 
5
12
  validates_presence_of :name
6
13
 
@@ -1,7 +1,15 @@
1
1
  class AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation < BazaModels::Model
2
- belongs_to :group, foreign_key: "group_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::Group"
3
- belongs_to :handler, foreign_key: "handler_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::Handler"
4
- belongs_to :translation_key, foreign_key: "translation_key_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::TranslationKey"
2
+ belongs_to :group,
3
+ foreign_key: "group_id", # rubocop:disable Rails/RedundantForeignKey
4
+ class_name: "AwesomeTranslations::CacheDatabaseGenerator::Group"
5
+
6
+ belongs_to :handler,
7
+ foreign_key: "handler_id", # rubocop:disable Rails/RedundantForeignKey
8
+ class_name: "AwesomeTranslations::CacheDatabaseGenerator::Handler"
9
+
10
+ belongs_to :translation_key,
11
+ foreign_key: "translation_key_id", # rubocop:disable Rails/RedundantForeignKey
12
+ class_name: "AwesomeTranslations::CacheDatabaseGenerator::TranslationKey"
5
13
 
6
14
  validates_presence_of :handler, :translation_key
7
15
 
@@ -34,11 +42,13 @@ class AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation < BazaMode
34
42
 
35
43
  def array_key
36
44
  return unless (match = key.match(/\A(.+)\[(\d+)\]\Z/))
45
+
37
46
  match[1]
38
47
  end
39
48
 
40
49
  def array_no
41
50
  return unless (match = key.match(/\A(.+)\[(\d+)\]\Z/))
51
+
42
52
  match[2].to_i
43
53
  end
44
54
  end
@@ -1,15 +1,15 @@
1
1
  class AwesomeTranslations::CacheDatabaseGenerator::TranslationKey < BazaModels::Model
2
- belongs_to :group, foreign_key: "group_id"
3
- belongs_to :handler, foreign_key: "handler_id"
2
+ belongs_to :group, foreign_key: "group_id" # rubocop:disable Rails/RedundantForeignKey
3
+ belongs_to :handler, foreign_key: "handler_id" # rubocop:disable Rails/RedundantForeignKey
4
4
 
5
5
  has_many :handler_translations,
6
6
  dependent: :destroy,
7
- foreign_key: "translation_key_id",
7
+ foreign_key: "translation_key_id", # rubocop:disable Rails/RedundantForeignKey
8
8
  class_name: "AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation"
9
9
 
10
10
  has_many :translation_values,
11
11
  dependent: :destroy,
12
- foreign_key: "translation_key_id",
12
+ foreign_key: "translation_key_id", # rubocop:disable Rails/RedundantForeignKey
13
13
  class_name: "AwesomeTranslations::CacheDatabaseGenerator::TranslationValue"
14
14
 
15
15
  validates_presence_of :group, :handler
@@ -1,5 +1,7 @@
1
1
  class AwesomeTranslations::CacheDatabaseGenerator::TranslationValue < BazaModels::Model
2
- belongs_to :translation_key, foreign_key: "translation_key_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::TranslationKey"
2
+ belongs_to :translation_key,
3
+ foreign_key: "translation_key_id", # rubocop:disable Rails/RedundantForeignKey
4
+ class_name: "AwesomeTranslations::CacheDatabaseGenerator::TranslationKey"
3
5
 
4
6
  validates_presence_of :translation_key
5
7
 
@@ -74,7 +74,7 @@ class AwesomeTranslations::CacheDatabaseGenerator
74
74
  end
75
75
 
76
76
  def cache_yml_translations
77
- cache_translations_in_dir(Rails.root.join("config", "locales"))
77
+ cache_translations_in_dir(Rails.root.join("config/locales"))
78
78
  end
79
79
 
80
80
  def cache_handler_translations
@@ -86,7 +86,7 @@ class AwesomeTranslations::CacheDatabaseGenerator
86
86
  end
87
87
 
88
88
  def self.database_path
89
- @database_path ||= Rails.root.join("db", "awesome_translations.sqlite3").to_s
89
+ @database_path ||= Rails.root.join("db/awesome_translations.sqlite3").to_s
90
90
  end
91
91
 
92
92
  def database_path
@@ -4,10 +4,10 @@ class AwesomeTranslations::Config
4
4
  def initialize
5
5
  @ignored_paths = [
6
6
  Rails.root.join(".git").to_s,
7
- Rails.root.join("config", "locales").to_s,
7
+ Rails.root.join("config/locales").to_s,
8
8
  Rails.root.join("log").to_s,
9
- Rails.root.join("public", "packs-test").to_s,
10
- Rails.root.join("public", "packs").to_s,
9
+ Rails.root.join("public/packs-test").to_s,
10
+ Rails.root.join("public/packs").to_s,
11
11
  Rails.root.join("node_modules").to_s,
12
12
  Rails.root.join("tmp").to_s,
13
13
  Rails.root.join("storage").to_s,
@@ -1,7 +1,3 @@
1
- require "sass-rails"
2
- require "simple_form"
3
- require "simple_form_ransack"
4
-
5
1
  module AwesomeTranslations; end
6
2
 
7
3
  class AwesomeTranslations::Engine < ::Rails::Engine
@@ -50,29 +50,29 @@ class AwesomeTranslations::ErbInspector::FileInspector
50
50
  private
51
51
 
52
52
  def parse_content_liquid(line_no, line, translations_found, yielder)
53
- line.scan(/\"([^\"]+?)\"\s+\|\s+t\s*(\%}|\}\}|\|)/) do |match|
53
+ line.scan(/"([^"]+?)"\s+\|\s+t\s*(%}|\}\}|\|)/) do |match|
54
54
  add_translation(line_no, "t", match[0], translations_found, yielder)
55
55
  end
56
56
 
57
- line.scan(/\'([^\']+?)\'\s+\|\s+t\s*(\%}|\}\}|\|)/) do |match|
57
+ line.scan(/'([^']+?)'\s+\|\s+t\s*(%}|\}\}|\|)/) do |match|
58
58
  add_translation(line_no, "t", match[0], translations_found, yielder)
59
59
  end
60
60
 
61
- line.scan(/\"([^\"]+?)\"\s+\|\s+val:\s*\"([^\"]+?)\"\s*,\s*(.+?)\s*\|\s+t\s*/) do |match|
61
+ line.scan(/"([^"]+?)"\s+\|\s+val:\s*"([^"]+?)"\s*,\s*(.+?)\s*\|\s+t\s*/) do |match|
62
62
  add_translation(line_no, "t", match[0], translations_found, yielder)
63
63
  end
64
64
 
65
- line.scan(/'([^\"]+?)'\s+\|\s+val:\s*'([^\"]+?)'\s*,\s*(.+?)\s*\|\s+t\s*/) do |match|
65
+ line.scan(/'([^"]+?)'\s+\|\s+val:\s*'([^"]+?)'\s*,\s*(.+?)\s*\|\s+t\s*/) do |match|
66
66
  add_translation(line_no, "t", match[0], translations_found, yielder)
67
67
  end
68
68
  end
69
69
 
70
70
  def parse_content_js(line_no, line, translations_found, yielder)
71
- line.scan(/\I18n\.t\('(.+?)'\)/) do |match|
72
- add_translation(line_no, "I18n.t", match[0], translations_found, yielder)
71
+ line.scan(/I18n\.t\('(.+?)'\s*(\)|,)/) do |match|
72
+ add_translation(line_no, "I18n-js.t", match[0], translations_found, yielder)
73
73
  end
74
74
 
75
- line.scan(/\I18n\.t\("(.+?)"\)/) do |match|
75
+ line.scan(/I18n\.t\("(.+?)"\s*(\)|,)/) do |match|
76
76
  add_translation(line_no, "I18n-js.t", match[0], translations_found, yielder)
77
77
  end
78
78
  end
@@ -27,7 +27,7 @@ class AwesomeTranslations::ErbInspector::TranslationInspector
27
27
  end
28
28
 
29
29
  def global?
30
- !relative? && !key.include?(".")
30
+ !relative? && key.exclude?(".")
31
31
  end
32
32
 
33
33
  def relative?
@@ -49,16 +49,16 @@ private
49
49
  is_mailer = true
50
50
  elsif @full_key.start_with?("app/views/")
51
51
  # Remove "app/views" from view-translations since that doesn't get used in keys.
52
- @full_key.gsub!(/\Aapp\/views\//, "")
52
+ @full_key.delete_prefix!("app/views/")
53
53
  elsif @full_key.start_with?("app/controllers")
54
54
  # Remove "app/controllers" from controller-translations since that doesn't get used in keys.
55
55
  @full_key.gsub!(/\Aapp\/controllers(\/?)/, "")
56
56
  is_controller = true
57
57
  elsif @full_key.start_with?("app/cells")
58
- @full_key.gsub!(/\Aapp\/cells\//, "")
58
+ @full_key.delete_prefix!("app/cells/")
59
59
  elsif @full_key.start_with?("app/")
60
60
  # Remove "app" from controller- and helper-translations since that doesn't get used.
61
- @full_key.gsub!(/\Aapp\//, "")
61
+ @full_key.delete_prefix!("app/")
62
62
  end
63
63
 
64
64
  @full_key.tr!("/", ".")
@@ -66,7 +66,7 @@ private
66
66
  @full_key << file_key(@file_path)
67
67
  @full_key << ".#{@last_method}" if (is_mailer || is_controller) && @last_method && @method != "controller_t"
68
68
  @full_key << "."
69
- @full_key << @key.gsub(/\A\./, "")
69
+ @full_key << @key.delete_prefix(".")
70
70
  elsif @method == "I18n-js.t" || @method == "t" || @method == "helper_t" || @method == "controller_t"
71
71
  @full_key = @key
72
72
  else
@@ -81,10 +81,10 @@ private
81
81
  key = key.match(/\A(.+?)\./)[1]
82
82
 
83
83
  # Remove leading "_" from partials
84
- key = key.gsub(/\A_/, "")
84
+ key.delete_prefix!("_")
85
85
 
86
86
  # Remove '_controller' from controllers
87
- key = key.gsub(/_controller\Z/, "")
87
+ key.delete_suffix!("_controller")
88
88
 
89
89
  key
90
90
  end
@@ -4,7 +4,7 @@ class AwesomeTranslations::ErbInspector
4
4
 
5
5
  def initialize(args = {})
6
6
  @args = args
7
- @args[:exts] ||= [".erb", ".haml", ".liquid", ".markerb", ".rb", ".rake", ".slim", "."] + AwesomeTranslations::ErbInspector::FileInspector::JS_FILE_EXTS
7
+ @args[:exts] ||= [".erb", ".haml", ".liquid", ".markerb", ".rb", ".rake", ".slim"] + AwesomeTranslations::ErbInspector::FileInspector::JS_FILE_EXTS
8
8
 
9
9
  @dirs = @args[:dirs] || AwesomeTranslations.config.paths_to_translate
10
10
  @ignored_folders = @args[:ignored_folders] || AwesomeTranslations.config.ignored_paths
@@ -34,6 +34,7 @@ private
34
34
 
35
35
  Dir.foreach(full_path) do |file|
36
36
  next if file == "." || file == ".."
37
+
37
38
  file_path = path.clone
38
39
  file_path << "/" unless file_path.empty?
39
40
  file_path << file
@@ -1,28 +1,13 @@
1
1
  class AwesomeTranslations::GlobalTranslator
2
- RUBY_2 = RUBY_VERSION.starts_with?("2")
3
-
4
2
  def self.call_information(caller_number)
5
- if RUBY_2
6
- # This is much faster than the other solution
7
- call = caller_locations(caller_number + 2, caller_number + 2).first
8
-
9
- {
10
- method: call.label,
11
- path: call.absolute_path,
12
- line_no: call.lineno
13
- }
14
- else
15
- call = caller[caller_number + 1]
16
- file_info = call.match(/\A(.+):(\d+):in `(.+?)'/)
17
-
18
- raise "Could not get previous file name from: #{caller[0]}" if file_info[1].blank?
19
-
20
- {
21
- method: file_info[3],
22
- path: file_info[1],
23
- line_no: file_info[2]
24
- }
25
- end
3
+ # This is much faster than the other solution
4
+ call = caller_locations(caller_number + 2, caller_number + 2).first
5
+
6
+ {
7
+ method: call.label,
8
+ path: call.absolute_path,
9
+ line_no: call.lineno
10
+ }
26
11
  end
27
12
 
28
13
  def self.translate(key, args, &blk)
@@ -60,8 +45,8 @@ private
60
45
  def dir
61
46
  if @_dir.nil?
62
47
  @_dir = File.dirname(previous_file)
63
- @_dir = @_dir.gsub(/\A#{Regexp.escape(Rails.root.to_s)}\//, "")
64
- @_dir = @_dir.gsub(/\Aspec\/dummy\//, "")
48
+ @_dir.delete_prefix!("#{Rails.root}/") # rubocop:disable Rails/FilePath
49
+ @_dir.delete_prefix!("spec/dummy/")
65
50
 
66
51
  if @_dir.starts_with?("app/controllers")
67
52
  @_dir = @_dir.gsub(/\Aapp\/controllers(\/?)/, "")
@@ -69,7 +54,7 @@ private
69
54
  elsif @_dir.starts_with?("app/views")
70
55
  @_dir = @_dir.gsub(/\Aapp\/views(\/?)/, "")
71
56
  elsif @_dir.starts_with?("app/")
72
- @_dir = @_dir.gsub(/\Aapp\//, "")
57
+ @_dir.delete_prefix!("app/")
73
58
  end
74
59
  end
75
60
 
@@ -99,6 +84,7 @@ private
99
84
  root = engine.root.to_s
100
85
 
101
86
  next unless @_previous_file.starts_with?(root)
87
+
102
88
  @_previous_file = @_previous_file.gsub(/\A#{Regexp.escape(root)}\//, "")
103
89
  break
104
90
  end
@@ -109,7 +95,7 @@ private
109
95
 
110
96
  def translation_key
111
97
  translation_key = dir
112
- translation_key = translation_key.gsub(/\Aapp\//, "")
98
+ translation_key = translation_key.delete_prefix("app/")
113
99
  translation_key << "/#{file}"
114
100
 
115
101
  key_parts = translation_key.split("/")
@@ -27,6 +27,7 @@ class AwesomeTranslations::Handlers::FileHandler < AwesomeTranslations::Handlers
27
27
  file = erb_inspector.file(group.data.fetch(:root_path), group.data.fetch(:file_path))
28
28
  file.translations.each do |translation|
29
29
  next if translations_found.key?(translation.full_key)
30
+
30
31
  translations_found[translation.full_key] = true
31
32
  yielder << translation.model
32
33
  end