lingohub 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,17 +44,7 @@ module Lingohub::Command
44
44
 
45
45
  group 'Project Commands' do |group|
46
46
  group.command 'project:list', 'list your projects'
47
- group.command 'project:create <name>', 'create a new project'
48
- group.command 'project:info --project <name>', 'show project info, like web url and number of translations'
49
47
  group.command 'project:open --project <name>', 'open the project in a web browser'
50
- group.command 'project:rename <oldname> <newname>', 'rename the project'
51
- group.space
52
- end
53
-
54
- group 'Collaborator Commands' do |group|
55
- group.command 'collaborator:list --project <name>', 'list project collaborators'
56
- group.command 'collaborator:invite <email> --project <name>', 'invite the collaborator'
57
- group.command 'collaborator:remove <email> --project <name>', 'remove the collaborator'
58
48
  group.space
59
49
  end
60
50
 
@@ -62,13 +52,13 @@ module Lingohub::Command
62
52
  group.command 'resource:down --all --directory <path> --project <name>', 'download all resource files'
63
53
  group.command 'resource:down --locale <iso2_code> --all --directory <path> --project <name>', 'download all resource files, using the given locale as filter'
64
54
  group.command 'resource:down <file1> <file2> ... --directory <path> --project <name>', 'download specific resource files'
65
-
55
+
66
56
  up_command = 'resource:up <file1> <file2> ... --locale <iso2_code> --project <name>'
67
-
57
+
68
58
  strategy_desc = ""
69
59
  Lingohub::Command::Resource::EXPECTED_STRATEGY_PARAMETERS.each do |parameter|
70
60
  strategy_desc << " --#{parameter} true|false"
71
- end
61
+ end
72
62
 
73
63
  group.command "resource:up <file1> <file2> ... --locale <iso2_code> --project <name> [#{strategy_desc}]", "upload specific resource files, a locale may be specified to tell lingohub the locale of file content"
74
64
  group.space
@@ -17,37 +17,13 @@ module Lingohub::Command
17
17
  if list.size > 0
18
18
  display "Projects:\n"
19
19
  list.each_pair { |name, project|
20
- inactive_str = project.inactive? ? '(inactive)' : ''
21
- display "- #{name} #{inactive_str}"
20
+ display "- #{name}"
22
21
  }
23
22
  else
24
23
  display "You have no projects."
25
24
  end
26
25
  end
27
26
 
28
- def create
29
- title = args.shift.strip rescue nil
30
- lingohub.projects.create title
31
- display("Created #{title}")
32
- end
33
-
34
- def rename
35
- oldtitle = args[0].strip rescue raise(CommandFailed, "Invalid old project name")
36
- newtitle = args[1].strip rescue raise(CommandFailed, "Invalid new project name")
37
-
38
- project(oldtitle).update(:title => newtitle)
39
- display("Project renamed from #{oldtitle} to #{newtitle}")
40
- end
41
-
42
- def info
43
- display "=== #{project.title}"
44
- display "Web URL: #{project.weburl}"
45
- display "Owner: #{project.owner}"
46
- display "Opensource: #{project.opensource}"
47
- display "Locales: #{project.project_locales}"
48
- display "Description: #{project.description}"
49
- end
50
-
51
27
  def open
52
28
  Launchy.open project.weburl
53
29
  end
@@ -30,14 +30,6 @@ module Lingohub::Command
30
30
 
31
31
  private
32
32
 
33
- def rails_environment?
34
- true #TODO
35
- end
36
-
37
- def rails_locale_dir
38
- Dir.pwd + "/conf/locales"
39
- end
40
-
41
33
  def extract_directory_from_args
42
34
  return @directory if defined? @directory
43
35
  @directory = extract_option('--directory', false)
@@ -53,15 +45,15 @@ module Lingohub::Command
53
45
  end
54
46
 
55
47
  def extract_strategy_parameters
56
- result = {}
57
-
48
+ result = {}
49
+
58
50
  EXPECTED_STRATEGY_PARAMETERS.each do |parameter|
59
51
  value = extract_option("--#{parameter}", nil)
60
52
  if value
61
53
  bool_value = to_bool(value, parameter)
62
54
  result.merge!({ parameter => value })
63
55
  end
64
- end
56
+ end
65
57
  result
66
58
  end
67
59
 
@@ -1,7 +1,6 @@
1
1
  module Lingohub
2
2
  module Models
3
3
  require 'lingohub/models/resource'
4
- require 'lingohub/models/collaborator'
5
4
 
6
5
  class Project
7
6
  def self.lazy_attr_accessor(*params)
@@ -18,39 +17,14 @@ module Lingohub
18
17
  end
19
18
  end
20
19
 
21
-
22
- lazy_attr_accessor(:title, :link, :deactivated_at, :weburl, :resources_url, :collaborators_url, :invitations_url,
23
- :translations_url, :search_url, :activate_url, :owner, :description, :opensource, :project_locales)
20
+ lazy_attr_accessor(:title, :link, :weburl, :resources_url,
21
+ :translations_url, :search_url, :owner, :description, :project_locales)
24
22
 
25
23
  def initialize(client, link)
26
24
  @client = client
27
25
  @link = link
28
26
  end
29
27
 
30
- def create!(attributes={ })
31
- self.title = attributes[:title]
32
- end
33
-
34
- def destroy
35
- @client.delete self.link
36
- end
37
-
38
- def activate
39
- @client.put self.activate_url, {}
40
- end
41
-
42
- def update(attributes={ })
43
- @client.put self.link, { :project => attributes }
44
- end
45
-
46
- def invite_collaborator(email)
47
- @client.post(self.invitations_url, :invitation => { :email => email })
48
- end
49
-
50
- def inactive?
51
- !deactivated_at.nil?
52
- end
53
-
54
28
  def resources
55
29
  unless defined? @resources
56
30
  @resources = { }
@@ -64,24 +38,6 @@ module Lingohub
64
38
  @resources
65
39
  end
66
40
 
67
- def collaborators
68
- unless defined? @collaborators
69
- @collaborators = []
70
- response = @client.get(self.collaborators_url)
71
- resource_hash = JSON.parse(response)
72
- members = resource_hash["members"]
73
- members.each do |member|
74
- link = member["link"]["href"] rescue ""
75
- collaborator = Lingohub::Models::Collaborator.new(@client, link)
76
- collaborator.email = member["email"]
77
- collaborator.display_name = member["display_name"]
78
- collaborator.roles = member["roles"]
79
- @collaborators << collaborator
80
- end
81
- end
82
- @collaborators
83
- end
84
-
85
41
  def download_resource(directory, filename, locale_as_filter = nil)
86
42
  raise "Project does not contain that file." unless self.resources.has_key?(filename)
87
43
  resource = self.resources[filename]
@@ -121,16 +77,13 @@ module Lingohub
121
77
  weburl = links[1]["href"]
122
78
  translations_url = links[2]["href"]
123
79
  resources_url = links[3]["href"]
124
- collaborators_url = links[4]["href"]
125
- invitations_url = links[5]["href"]
126
- search_url = links[6]["href"]
80
+ search_url = links[4]["href"]
127
81
 
128
82
  init_attributes :title => project_hash["title"], :link => link,
129
- :deactivated_at => project_hash["deactivated_at"], :weburl => weburl,
83
+ :weburl => weburl,
130
84
  :owner => project_hash["owner_email"], :description => project_hash["description"],
131
- :opensource => project_hash["opensource"], :project_locales => project_hash["project_locales"],
85
+ :project_locales => project_hash["project_locales"],
132
86
  :translations_url => translations_url, :resources_url => resources_url,
133
- :collaborators_url => collaborators_url, :invitations_url => invitations_url,
134
87
  :search_url => search_url
135
88
  end
136
89
 
@@ -10,10 +10,6 @@ module Lingohub
10
10
  @client = client
11
11
  end
12
12
 
13
- def create(title)
14
- @client.post(PROJECT_URL, :project => {:title => title})
15
- end
16
-
17
13
  def all
18
14
  return @projects if defined? @projects
19
15
  @projects = {}
@@ -1,4 +1,4 @@
1
1
  module Lingohub
2
- VERSION = '0.3.1'
2
+ VERSION = '0.4.0'
3
3
  API_VERSION = 'v1'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lingohub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-24 00:00:00.000000000 Z
12
+ date: 2015-02-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -59,118 +59,6 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.3.2
62
- - !ruby/object:Gem::Dependency
63
- name: rake
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: 0.9.2
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 0.9.2
78
- - !ruby/object:Gem::Dependency
79
- name: rspec
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- version: 2.8.0
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ~>
92
- - !ruby/object:Gem::Version
93
- version: 2.8.0
94
- - !ruby/object:Gem::Dependency
95
- name: fakefs
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ~>
100
- - !ruby/object:Gem::Version
101
- version: 0.4.0
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ~>
108
- - !ruby/object:Gem::Version
109
- version: 0.4.0
110
- - !ruby/object:Gem::Dependency
111
- name: taps
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ~>
116
- - !ruby/object:Gem::Version
117
- version: 0.3.23
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ~>
124
- - !ruby/object:Gem::Version
125
- version: 0.3.23
126
- - !ruby/object:Gem::Dependency
127
- name: webmock
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ~>
132
- - !ruby/object:Gem::Version
133
- version: 1.8.0
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ~>
140
- - !ruby/object:Gem::Version
141
- version: 1.8.0
142
- - !ruby/object:Gem::Dependency
143
- name: i18n
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ~>
148
- - !ruby/object:Gem::Version
149
- version: 0.6.0
150
- type: :development
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ~>
156
- - !ruby/object:Gem::Version
157
- version: 0.6.0
158
- - !ruby/object:Gem::Dependency
159
- name: vcr
160
- requirement: !ruby/object:Gem::Requirement
161
- none: false
162
- requirements:
163
- - - ~>
164
- - !ruby/object:Gem::Version
165
- version: 2.0.0
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - ~>
172
- - !ruby/object:Gem::Version
173
- version: 2.0.0
174
62
  description: Client library and command-line tool to translate Ruby based apps with
175
63
  lingohub.
176
64
  email:
@@ -184,13 +72,11 @@ files:
184
72
  - lib/lingohub/command.rb
185
73
  - lib/lingohub/commands/auth.rb
186
74
  - lib/lingohub/commands/base.rb
187
- - lib/lingohub/commands/collaborator.rb
188
75
  - lib/lingohub/commands/help.rb
189
76
  - lib/lingohub/commands/project.rb
190
77
  - lib/lingohub/commands/resource.rb
191
78
  - lib/lingohub/commands/version.rb
192
79
  - lib/lingohub/helpers.rb
193
- - lib/lingohub/models/collaborator.rb
194
80
  - lib/lingohub/models/project.rb
195
81
  - lib/lingohub/models/projects.rb
196
82
  - lib/lingohub/models/resource.rb
@@ -198,7 +84,6 @@ files:
198
84
  - lib/lingohub/rails3/railtie.rb
199
85
  - lib/lingohub/version.rb
200
86
  - lib/lingohub.rb
201
- - lib/patches/rails3/i18n/i18n.rb
202
87
  - lib/vendor/okjson.rb
203
88
  - bin/lingohub
204
89
  - LICENSE
@@ -1,44 +0,0 @@
1
- module Lingohub::Command
2
- class Collaborator < Base
3
- def list
4
- list = project.collaborators
5
- if list.size > 0
6
- display "Collaborators:\n"
7
- list.each { |c| display("- #{c.display_name} | #{c.email} | #{c.permissions}") }
8
- else
9
- display "No collaborators found"
10
- end
11
- end
12
-
13
- def invite
14
- email = extract_email_from_args
15
- project.invite_collaborator(email)
16
-
17
- display("Invitation sent to #{email}")
18
- rescue RestClient::BadRequest
19
- display("Error sending invitation to '#{email}'")
20
- end
21
-
22
- def remove
23
- email = extract_email_from_args
24
- collaborator = project.collaborators.find { |c| c.email == email }
25
-
26
- if collaborator.nil?
27
- display("Collaborator with email '#{email}' not found")
28
- else
29
- collaborator.destroy
30
- display("Collaborator with email #{email} was removed")
31
- end
32
- rescue RestClient::BadRequest
33
- display("Error removing collaborator with email '#{email}'")
34
- end
35
-
36
- private
37
-
38
- def extract_email_from_args
39
- email = args.shift
40
- raise(CommandFailed, "You must specify a invitee email after --email") if email == false
41
- email
42
- end
43
- end
44
- end
@@ -1,25 +0,0 @@
1
- module Lingohub
2
- module Models
3
- class Collaborator
4
- attr_accessor :email, :display_name, :roles
5
-
6
- ROLES_NAMES = { "project_admin" => "Project admin", "developer" => "Developer" }
7
-
8
- def initialize(client, link)
9
- @client = client
10
- @link = link
11
- end
12
-
13
- def destroy
14
- @client.delete @link
15
- end
16
-
17
- def permissions
18
- return "None" if self.roles.nil? or self.roles.empty?
19
-
20
- self.roles.find_all { |role| ROLES_NAMES.has_key?(role) }.join(", ")
21
- end
22
-
23
- end
24
- end
25
- end
@@ -1,66 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- require "stringex"
3
-
4
- module I18n
5
- class << self
6
- alias :base_translate :translate
7
- alias :base_localize :localize
8
-
9
- def translate(key, options={ })
10
- result = base_translate(key, options)
11
- wysiwyt_enabled = options.has_key?(:wysiwyt) ? options.delete(:wysiwyt) : true
12
- if wysiwyt_enabled && enabled?
13
- result = wrap_with_wysiwyt(key, result)
14
- result.html_safe
15
- else
16
- result
17
- end
18
- end
19
-
20
- def localize(object, options = { })
21
- result = base_localize(object, options)
22
- wysiwyt_enabled = options.has_key?(:wysiwyt) ? options.delete(:wysiwyt) : true
23
- if wysiwyt_enabled && enabled?
24
- result = wrap_with_wysiwyt(object, result)
25
- result.html_safe
26
- else
27
- result
28
- end
29
- end
30
-
31
- alias :t :translate
32
- alias :l :localize
33
-
34
- private
35
-
36
- def enabled?
37
- Lingohub.environments.include?(current_env) rescue false
38
- end
39
-
40
- def current_env
41
- defined?(Rails) ? Rails.env.to_sym : nil
42
- end
43
-
44
- def wrap_with_wysiwyt(translation_title, translation_phrase)
45
- "<span data-translation_url=\"#{link_to_translation_phrase(translation_title)}\" >#{translation_phrase}</span>"
46
- end
47
-
48
- def link_to_translation_phrase(translation_title)
49
- username = option_to_url(Lingohub.username)
50
- project = option_to_url(Lingohub.project)
51
- translation_title = translation_title.to_s.to_url
52
-
53
- "#{Lingohub.protocol}://#{Lingohub.host}/#{username}/#{project}/translations/#{translation_title}/phrases/#{locale}"
54
- end
55
-
56
- def option_to_url(option)
57
- if option.nil?
58
- ""
59
- elsif Lingohub.default_value?(option)
60
- option
61
- else
62
- option.to_url
63
- end
64
- end
65
- end
66
- end