From c98b418552a84a05e040b4bcf8cbcd93c35806ed Mon Sep 17 00:00:00 2001 From: amartynov Date: Tue, 22 Sep 2015 12:19:15 +0300 Subject: [PATCH] #707: messages for responses --- devops-service/core/devops-messages.rb | 52 +++++++++++++++++++ devops-service/core/devops-service.rb | 18 +------ .../db/validators/deploy_env/users.rb | 2 +- devops-service/messages/en.yml | 6 +++ 4 files changed, 61 insertions(+), 17 deletions(-) create mode 100644 devops-service/core/devops-messages.rb create mode 100644 devops-service/messages/en.yml diff --git a/devops-service/core/devops-messages.rb b/devops-service/core/devops-messages.rb new file mode 100644 index 0000000..4808fe5 --- /dev/null +++ b/devops-service/core/devops-messages.rb @@ -0,0 +1,52 @@ +require 'yaml' + +module Devops + class Messages + + @@messages = {} + class << self + def init + lang = lang_key + file = File.expand_path("../../messages/#{lang}.yml", __FILE__) + merge(file) + rescue => e + puts "Can not load messages from '#{file}'" + exit -6 + end + + def merge file + lang = lang_key + messages = read_file(file)[lang] + raise "It is undefined main key '#{lang}' in file '#{file}'" if messages.nil? + @@messages.merge!(messages) + end + + def translate key, params={} + msg = @@messages + key.split(".").each do |msgk| + msg = msg[key] + raise "Invalid message key '#{key}'" if msg.nil? + end + raise "Invalid message value with key '#{key}', it must be a string" unless msg.is_a?(String) + unless msg.nil? + params.each do |k, v| + msg = msg.gsub('%{#{k}}', v) + end + end + msg + end + + alias_method :t, :translate + + private + def read_file file_path + YAML.load_file(file_path) + end + + def lang_key + DevopsConfig.config["messages.lang"] || "en" + end + end + + end +end diff --git a/devops-service/core/devops-service.rb b/devops-service/core/devops-service.rb index 9475c1d..a47ceeb 100644 --- a/devops-service/core/devops-service.rb +++ b/devops-service/core/devops-service.rb @@ -1,24 +1,11 @@ require "wisper" require "lib/hash_ext" -=begin -require "db/exceptions/invalid_record" -require "db/exceptions/record_not_found" -require "exceptions/dependency_error" -require "db/validators/all" -require "providers/provider_factory" - -require "fog" - -require_relative "routes/v2.0" - -require "hooks" -=end - require_relative "devops-loader" require_relative "devops-application" require_relative "devops-db" require_relative "devops-logger" +require_relative "devops-messages" require "lib/knife/knife_factory" @@ -26,8 +13,6 @@ require_relative "../sinatra/methods_with_headers" require_relative "../applications" require_relative "devops-routes" -#root = File.expand_path("../", __FILE__) -#$:.push root class DevopsService @@ -50,6 +35,7 @@ class DevopsService config = DevopsConfig.config Devops::Routes.preffix = config[:url_prefix] + Devops::Messages.init apps = Devops::Application.applications apps.each do |a| diff --git a/devops-service/db/validators/deploy_env/users.rb b/devops-service/db/validators/deploy_env/users.rb index c8dca40..7aa022b 100644 --- a/devops-service/db/validators/deploy_env/users.rb +++ b/devops-service/db/validators/deploy_env/users.rb @@ -8,7 +8,7 @@ module Validators end def message - "These users are missing in mongo: '#{@nonexistent_users.join("', '")}'." + Devops::Messages.t("project.deploy_env.validation.users.not_exist", users: @nonexistent_users.join("', '")) end end end diff --git a/devops-service/messages/en.yml b/devops-service/messages/en.yml new file mode 100644 index 0000000..009da18 --- /dev/null +++ b/devops-service/messages/en.yml @@ -0,0 +1,6 @@ +en: + project: + deploy_env: + validation: + users: + not_exist: "These users are missing in mongo: '%{users}'"