Class: WebTranslateIt::Configuration
- Inherits:
-
Object
- Object
- WebTranslateIt::Configuration
- Defined in:
- lib/web_translate_it/configuration.rb
Overview
Handles the configuration of your project, both via the the configuration file and via the API. Implementation example, assuming you have a valid .wti file:
configuration = WebTranslateIt::Configuration.new
Instance Attribute Summary collapse
-
#after_pull ⇒ Object
Returns the value of attribute after_pull.
-
#after_push ⇒ Object
Returns the value of attribute after_push.
-
#api_key ⇒ Object
Returns the value of attribute api_key.
-
#before_pull ⇒ Object
Returns the value of attribute before_pull.
-
#before_push ⇒ Object
Returns the value of attribute before_push.
-
#files ⇒ Object
Returns the value of attribute files.
-
#ignore_locales ⇒ Object
Returns the value of attribute ignore_locales.
-
#logger ⇒ Object
Returns a logger.
-
#path ⇒ Object
Returns the value of attribute path.
-
#project_name ⇒ Object
Returns the value of attribute project_name.
-
#source_locale ⇒ Object
Returns the value of attribute source_locale.
-
#target_locales ⇒ Object
Returns the value of attribute target_locales.
Instance Method Summary collapse
-
#api_url ⇒ Object
Convenience method which returns the endpoint for fetching a list of locales for a project.
-
#initialize(root_path = Rails.root, path_to_config_file = ".wti") ⇒ Configuration
constructor
Load configuration file from the path.
-
#set_files(project) ⇒ Object
Set the project files from the Project API.
-
#set_locales(project) ⇒ Object
Set the project locales from the Project API.
-
#set_locales_to_ignore(configuration) ⇒ Object
Set locales to ignore from the configuration file, if set.
Constructor Details
#initialize(root_path = Rails.root, path_to_config_file = ".wti") ⇒ Configuration
Load configuration file from the path.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/web_translate_it/configuration.rb', line 17 def initialize(root_path = Rails.root, path_to_config_file = ".wti") self.path = root_path self.logger = logger if File.exists?(File.(path_to_config_file, self.path)) configuration = YAML.load_file(File.(path_to_config_file, self.path)) self.api_key = configuration['api_key'] self.before_pull = configuration['before_pull'] self.after_pull = configuration['after_pull'] self.before_push = configuration['before_push'] self.after_push = configuration['after_push'] project_info = YAML.load WebTranslateIt::Project.fetch_info(api_key) set_locales_to_ignore(configuration) set_files(project_info['project']) set_locales(project_info['project']) self.project_name = project_info['project']['name'] else puts StringUtil.failure("\nCan't find a configuration file in #{File.(path_to_config_file, self.path)}") exit(1) end end |
Instance Attribute Details
#after_pull ⇒ Object
Returns the value of attribute after_pull.
14 15 16 |
# File 'lib/web_translate_it/configuration.rb', line 14 def after_pull @after_pull end |
#after_push ⇒ Object
Returns the value of attribute after_push.
14 15 16 |
# File 'lib/web_translate_it/configuration.rb', line 14 def after_push @after_push end |
#api_key ⇒ Object
Returns the value of attribute api_key.
13 14 15 |
# File 'lib/web_translate_it/configuration.rb', line 13 def api_key @api_key end |
#before_pull ⇒ Object
Returns the value of attribute before_pull.
14 15 16 |
# File 'lib/web_translate_it/configuration.rb', line 14 def before_pull @before_pull end |
#before_push ⇒ Object
Returns the value of attribute before_push.
14 15 16 |
# File 'lib/web_translate_it/configuration.rb', line 14 def before_push @before_push end |
#files ⇒ Object
Returns the value of attribute files.
13 14 15 |
# File 'lib/web_translate_it/configuration.rb', line 13 def files @files end |
#ignore_locales ⇒ Object
Returns the value of attribute ignore_locales.
13 14 15 |
# File 'lib/web_translate_it/configuration.rb', line 13 def ignore_locales @ignore_locales end |
#logger ⇒ Object
Returns a logger. If RAILS_DEFAULT_LOGGER is defined, use it, else, define a new logger.
75 76 77 |
# File 'lib/web_translate_it/configuration.rb', line 75 def logger @logger end |
#path ⇒ Object
Returns the value of attribute path.
13 14 15 |
# File 'lib/web_translate_it/configuration.rb', line 13 def path @path end |
#project_name ⇒ Object
Returns the value of attribute project_name.
14 15 16 |
# File 'lib/web_translate_it/configuration.rb', line 14 def project_name @project_name end |
#source_locale ⇒ Object
Returns the value of attribute source_locale.
13 14 15 |
# File 'lib/web_translate_it/configuration.rb', line 13 def source_locale @source_locale end |
#target_locales ⇒ Object
Returns the value of attribute target_locales.
13 14 15 |
# File 'lib/web_translate_it/configuration.rb', line 13 def target_locales @target_locales end |
Instance Method Details
#api_url ⇒ Object
Convenience method which returns the endpoint for fetching a list of locales for a project.
70 71 72 |
# File 'lib/web_translate_it/configuration.rb', line 70 def api_url "/api/projects/#{api_key}.yaml" end |
#set_files(project) ⇒ Object
Set the project files from the Project API. Implementation example:
configuration = WebTranslateIt::Configuration.new
files = configuration.files # returns an array of TranslationFile
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/web_translate_it/configuration.rb', line 53 def set_files(project) self.files = [] project['project_files'].each do |project_file| if project_file['name'].nil? or project_file['name'].strip == '' puts "File #{project_file['id']} not set up" else self.files.push TranslationFile.new(project_file['id'], project_file['name'], project_file['locale_code'], self.api_key, project_file['updated_at'], project_file['hash_file'], project_file['master_project_file_id']) end end end |
#set_locales(project) ⇒ Object
Set the project locales from the Project API. Implementation example:
configuration = WebTranslateIt::Configuration.new
locales = configuration.locales # returns an array of locales: ['en', 'fr', 'es', ...]
43 44 45 46 |
# File 'lib/web_translate_it/configuration.rb', line 43 def set_locales(project) self.source_locale = project['source_locale']['code'] self.target_locales = project['target_locales'].map{|locale| locale['code']} end |
#set_locales_to_ignore(configuration) ⇒ Object
Set locales to ignore from the configuration file, if set.
65 66 67 |
# File 'lib/web_translate_it/configuration.rb', line 65 def set_locales_to_ignore(configuration) self.ignore_locales = Array(configuration['ignore_locales']).map{ |locale| locale.to_s } end |