Class: Lingohub::Models::Project
- Inherits:
-
Object
- Object
- Lingohub::Models::Project
- Defined in:
- lib/lingohub/models/project.rb
Class Method Summary collapse
Instance Method Summary collapse
- #download_resource(directory, filename, locale_as_filter = nil) ⇒ Object
-
#initialize(client, link) ⇒ Project
constructor
A new instance of Project.
- #pull_search_results(directory, filename, query, locale = nil) ⇒ Object
- #resources ⇒ Object
- #upload_resource(path, locale, strategy_parameters = {}) ⇒ Object
Constructor Details
#initialize(client, link) ⇒ Project
Returns a new instance of Project.
23 24 25 26 |
# File 'lib/lingohub/models/project.rb', line 23 def initialize(client, link) @client = client @link = link end |
Class Method Details
.lazy_attr_accessor(*params) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/lingohub/models/project.rb', line 6 def self.lazy_attr_accessor(*params) params.each do |sym| define_method(sym) do unless defined? @fetched fetch end self.instance_variable_get("@#{sym}") end define_method("#{sym}=") do |value| self.instance_variable_set("@#{sym}", value) end end end |
Instance Method Details
#download_resource(directory, filename, locale_as_filter = nil) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/lingohub/models/project.rb', line 41 def download_resource(directory, filename, locale_as_filter = nil) raise "Project does not contain that file." unless self.resources.has_key?(filename) resource = self.resources[filename] if locale_as_filter.nil? || resource_has_locale(resource, locale_as_filter) save_to_file(File.join(directory, filename), resource.content) true else false end end |
#pull_search_results(directory, filename, query, locale = nil) ⇒ Object
61 62 63 64 65 66 67 |
# File 'lib/lingohub/models/project.rb', line 61 def pull_search_results(directory, filename, query, locale = nil) parameters = { :filename => filename, :query => query } parameters.merge!({ :iso2_slug => locale }) unless locale.nil? or locale.strip.empty? content = @client.get(search_url, parameters) save_to_file(File.join(directory, filename), content) end |
#resources ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/lingohub/models/project.rb', line 28 def resources unless defined? @resources @resources = { } response = @client.get(self.resources_url) resource_hash = JSON.parse(response) members = resource_hash["members"] members.each do |member| @resources[member["name"]] = Lingohub::Models::Resource.new(@client, member["project_locale"], member["links"][0]["href"]) end end @resources end |
#upload_resource(path, locale, strategy_parameters = {}) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/lingohub/models/project.rb', line 53 def upload_resource(path, locale, strategy_parameters = {}) raise "Path #{path} does not exists" unless File.exists?(path) request = { :file => File.new(path, "rb") } request.merge!({ :iso2_slug => locale }) if locale request.merge!(strategy_parameters) @client.post(self.resources_url, request) end |