Class: RailsI18nOnair::SyncController

Inherits:
ApplicationController show all
Defined in:
app/controllers/rails_i18n_onair/sync_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'app/controllers/rails_i18n_onair/sync_controller.rb', line 28

def create
  source = params[:source]
  destination = params[:destination]

  if source.blank? || destination.blank? || source == destination
    redirect_to sync_locales_path, alert: "Invalid source or destination."
    return
  end

  service = RailsI18nOnair::SyncService.new(source, destination)
  result = service.sync!

  if result[:synced] > 0
    redirect_to sync_locales_path, notice: "Synced #{result[:synced]} missing key(s) from #{source.upcase} to #{destination.upcase}."
  else
    redirect_to sync_locales_path, notice: "No missing keys found. #{destination.upcase} is already in sync with #{source.upcase}."
  end
end

#newObject



3
4
5
# File 'app/controllers/rails_i18n_onair/sync_controller.rb', line 3

def new
  @locales = available_locales
end

#previewObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/controllers/rails_i18n_onair/sync_controller.rb', line 7

def preview
  @source = params[:source]
  @destination = params[:destination]
  @locales = available_locales

  if @source.blank? || @destination.blank?
    flash.now[:alert] = "Please select both source and destination locales."
    render :new
    return
  end

  if @source == @destination
    flash.now[:alert] = "Source and destination must be different locales."
    render :new
    return
  end

  service = RailsI18nOnair::SyncService.new(@source, @destination)
  @missing_keys = service.compare
end