babelish 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZDBmYjkzYmRiMDA5MmQwMDZjOWQyMzk0MjE4YjllYWRlODQzNzE3Zg==
5
- data.tar.gz: !binary |-
6
- Nzk4MTgwOTExZWQwNjc5NDUwMDU3YjVhYzZmN2FkNmNmY2RiNzBkZQ==
2
+ SHA1:
3
+ metadata.gz: fc2f01e77a4bf12791af0fe06d52e21e7f0fcffb
4
+ data.tar.gz: 2238a556f99720f380edcab4cbd45719fdd05285
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ODA5ZTBmYTdkNmUzYWMyZWI0MWMyZTU2MzBlNTVhNjA0YTlmN2ZhMDZlZGEw
10
- YzBkYmI3MDFjMGI2MGE5MmJiMTQzZTgyNzY3NzkwOTJmYjFmMjRkMGM2MmMy
11
- MGViODA3M2I3NGZiNTU5NzM4MTk3NDNiMTY0ZTU3ZDZjYzJhZjA=
12
- data.tar.gz: !binary |-
13
- ZDZjNjA2YTg1OThmZTE5Y2RjOTJiOWEzMDgwNTIxMDQ2M2VmNmJmNDYwM2Zj
14
- MjVhMmFlYjE5OTFlMTg3ZjA3ZDA4MzRhOTRkMTQyZDBhYTcwZjk4NmYxNDBk
15
- NmY0ZGUyMjdjMTEzMjk2YWQ5OWYxZjk2YmNiODQ0ZTQxMDE5ZTE=
6
+ metadata.gz: c6fdead31265c94b0f00374fd922b1e3e8a88ccabaf62a22574627bd20a7f20c8c193b0c56f232416c39364e1ef48521623198cfd346fe4a17073c075a3065f6
7
+ data.tar.gz: a3704fff4a8d7a3d3b3cf6f9b9f3ff7a6f62b629a0e420fec70f1fac3219225638fbdc991764125bc4123390a6ca9c9321cb14e5cdfd8f759f523bad6b402e76
data/.travis.yml CHANGED
@@ -1,9 +1,9 @@
1
1
  language: ruby
2
2
  sudo: false
3
3
  rvm:
4
- - 2.0.0
5
4
  - 2.1.0
6
5
  - 2.2
6
+ - 2.3.1
7
7
  deploy:
8
8
  provider: rubygems
9
9
  api_key:
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,12 @@
1
+ # Contributing
2
+
3
+ Want to add another support for a new format or/and usage? Add a new feature? Fix a bug?
4
+
5
+ 1. Create a pull request with a branch like `feature/<nameofbranch>` or `hotfix/<nameofbranch>`.
6
+ 2. Don't forget to explain the issue or the benefits of the feature you want to be merged.
7
+ 3. Write unit tests covering the feature and/or fix the ones the feature/issue breaks.
8
+
9
+ And in any case feel free to ask for help in any of those steps.
10
+
11
+
12
+
data/Dockerfile ADDED
@@ -0,0 +1,6 @@
1
+ FROM ruby:2.2-alpine
2
+ RUN apk add --no-cache git build-base
3
+ COPY . /code
4
+
5
+ WORKDIR /code
6
+ RUN bundle install
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
  [![Code Climate](https://codeclimate.com/github/netbe/Babelish.png)](https://codeclimate.com/github/netbe/Babelish)[![Coverage Status](https://coveralls.io/repos/netbe/Babelish/badge.png)](https://coveralls.io/r/netbe/Babelish)
3
3
  [![Gem Version](https://badge.fury.io/rb/babelish.svg)](http://badge.fury.io/rb/babelish)
4
4
 
5
+ ![Docker](http://dockeri.co/image/netbe/babelish)
5
6
 
6
7
  **Babelish : Chaotically confused, like Babel**
7
8
 
@@ -21,10 +22,12 @@ Requires Ruby 2.0.0 or above.
21
22
 
22
23
  Or download [Latest Release](https://github.com/netbe/Babelish/releases/latest).
23
24
 
25
+ Or via docker: `docker run netbe/Babelish babelish help`
26
+
24
27
  # Usage
25
28
 
26
29
  ```
27
- › babelish help
30
+ › babelish help 18:21:30
28
31
  Commands:
29
32
  babelish android2csv # Convert .xml files to CSV file
30
33
  babelish csv2android # Convert CSV file to .xml
@@ -33,13 +36,17 @@ Commands:
33
36
  babelish csv2strings # Convert CSV file to .strings
34
37
  babelish csv_download # Download Google Spreadsheet containing translations
35
38
  babelish help [COMMAND] # Describe available commands or one specific command
39
+ babelish init # Create a configuration file from template
36
40
  babelish json2csv # Convert .json files to CSV file
37
41
  babelish open FILE # Open local csv file in default editor or Google Spreadsheet containing translations in default browser
38
42
  babelish php2csv # Convert .php files to CSV file
39
43
  babelish strings2csv # Convert .strings files to CSV file
40
44
  babelish version # Display current version
45
+
41
46
  Options:
42
- [--verbose], [--no-verbose]
47
+ [--verbose], [--no-verbose]
48
+ -c, [--config=CONFIG] # Read configuration from given file
49
+ # Default: .babelish
43
50
  ```
44
51
 
45
52
  You can use a **configuration file** to hold all your commandline arguments into a file.
@@ -48,15 +55,14 @@ See [.babelish.sample](.babelish.sample) file in the doc folder. as the possible
48
55
 
49
56
  *For previous CSV-to-iOS-Localizable.strings-converter, rename your `.csvconverter` into `.babelish`.*
50
57
 
58
+ **Note for docker:** In order to export the output of a conversion, you will need to pipe the result out of the container. An example would be
59
+ ```
60
+ › docker run netbe/Babelish babelish csv2json >> some_file.json
61
+ ```
62
+
51
63
  **For more details, check the documentation:**
52
64
  https://github.com/netbe/Babelish/wiki/How-to-Use
53
65
 
54
- # Contributing
55
-
56
- Want to add another support for a new format or/and usage? Add a new feature? Fix a bug?
57
-
58
- Just create a pull request with a branch like `feature/<nameofbranch>` or `hotfix/<nameofbranch>`.
59
-
60
66
 
61
67
  ## Development
62
68
 
data/babelish.gemspec CHANGED
@@ -25,6 +25,8 @@ Gem::Specification.new do |s|
25
25
  # google_drive dependency to ask for mail and password
26
26
  s.add_dependency "highline"
27
27
 
28
+ # specify version of rack so works on ruby <2.2.2
29
+ s.add_dependency "rack", "1.6.4"
28
30
  # json support
29
31
  s.add_dependency "json"
30
32
 
@@ -1,4 +1,5 @@
1
1
  require 'thor'
2
+ require 'yaml'
2
3
  class Commandline < Thor
3
4
  include Thor::Actions
4
5
  class_option :verbose, :type => :boolean
@@ -54,7 +55,11 @@ class Commandline < Thor
54
55
  method_option :headers, :type => :array, :aliases => "-h", :desc => "override headers of columns, default is name of input files and 'Variables' for reference"
55
56
  method_option :dryrun, :type => :boolean, :aliases => "-n", :desc => "prints out content of hash without writing file"
56
57
  define_method("#{klass[:name].downcase}") do
57
- base2csv(klass[:name])
58
+ begin
59
+ base2csv(klass[:name])
60
+ rescue Errno::ENOENT => e
61
+ warn e.message
62
+ end
58
63
  end
59
64
  end
60
65
 
@@ -6,11 +6,14 @@ module Babelish
6
6
  super(filename, langs, args)
7
7
 
8
8
  @file_path = args[:output_dir].to_s
9
+ @output_basename = args[:output_basename].to_s
9
10
  end
10
11
 
11
12
  def language_filepaths(language)
12
13
  require 'pathname'
13
- filepath = Pathname.new(@file_path) + "values-#{language.code}" + "strings.xml"
14
+ output_name = "strings.xml"
15
+ output_name = "#{@output_basename}.xml" unless @output_basename.empty?
16
+ filepath = Pathname.new(@file_path) + "values-#{language.code}" + output_name
14
17
  return filepath ? [filepath] : []
15
18
  end
16
19
 
@@ -1,3 +1,3 @@
1
1
  module Babelish
2
- VERSION = "0.5.1"
2
+ VERSION = "0.5.2"
3
3
  end
@@ -78,6 +78,22 @@ class TestCommandLine < Test::Unit::TestCase
78
78
  system("rm -f .babelish")
79
79
  end
80
80
 
81
+ def test_base2csv_with_config_with_non_existent_filenames_fails
82
+ options = {:filenames => ['foo']}
83
+ config_file = File.new(".babelish", "w")
84
+ config_file.write options.to_yaml
85
+ config_file.close
86
+
87
+ _, stderr = capture_output do
88
+ Commandline.new.strings2csv
89
+ end
90
+ assert_match(/No such file or directory/, stderr)
91
+ assert_match(/foo/, stderr)
92
+
93
+ # clean up
94
+ system("rm -f .babelish")
95
+ end
96
+
81
97
  def test_csv_download_without_gd_filename_fails
82
98
  options = {}
83
99
  config_file = File.new(".babelish", "w")
@@ -56,4 +56,17 @@ class TestCSV2Android < Test::Unit::TestCase
56
56
  # clean up
57
57
  system("rm -rf values-fr")
58
58
  end
59
+
60
+ def test_converting_with_basename
61
+ csv_file = "test/data/test_data.csv"
62
+ converter = Babelish::CSV2Android.new(csv_file,
63
+ { "English" => "en" },
64
+ { output_basename: "super_strings" })
65
+ converter.convert
66
+ exist = File.exist?("values-en/super_strings.xml")
67
+ assert exist, "the ouptut file does not exist"
68
+
69
+ # clean up
70
+ system("rm -rf ./values-en")
71
+ end
59
72
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: babelish
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - François Benaiteau
@@ -9,137 +9,154 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-03-15 00:00:00.000000000 Z
12
+ date: 2017-06-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ! '>='
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ! '>='
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: google_drive
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ~>
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
34
  version: 1.0.1
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ~>
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: 1.0.1
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: nokogiri
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ! '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ! '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: highline
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ! '>='
60
+ - - ">="
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ! '>='
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rack
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '='
75
+ - !ruby/object:Gem::Version
76
+ version: 1.6.4
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - '='
82
+ - !ruby/object:Gem::Version
83
+ version: 1.6.4
70
84
  - !ruby/object:Gem::Dependency
71
85
  name: json
72
86
  requirement: !ruby/object:Gem::Requirement
73
87
  requirements:
74
- - - ! '>='
88
+ - - ">="
75
89
  - !ruby/object:Gem::Version
76
90
  version: '0'
77
91
  type: :runtime
78
92
  prerelease: false
79
93
  version_requirements: !ruby/object:Gem::Requirement
80
94
  requirements:
81
- - - ! '>='
95
+ - - ">="
82
96
  - !ruby/object:Gem::Version
83
97
  version: '0'
84
98
  - !ruby/object:Gem::Dependency
85
99
  name: rake
86
100
  requirement: !ruby/object:Gem::Requirement
87
101
  requirements:
88
- - - ! '>='
102
+ - - ">="
89
103
  - !ruby/object:Gem::Version
90
104
  version: '0'
91
105
  type: :development
92
106
  prerelease: false
93
107
  version_requirements: !ruby/object:Gem::Requirement
94
108
  requirements:
95
- - - ! '>='
109
+ - - ">="
96
110
  - !ruby/object:Gem::Version
97
111
  version: '0'
98
112
  - !ruby/object:Gem::Dependency
99
113
  name: test-unit
100
114
  requirement: !ruby/object:Gem::Requirement
101
115
  requirements:
102
- - - ! '>='
116
+ - - ">="
103
117
  - !ruby/object:Gem::Version
104
118
  version: '0'
105
119
  type: :development
106
120
  prerelease: false
107
121
  version_requirements: !ruby/object:Gem::Requirement
108
122
  requirements:
109
- - - ! '>='
123
+ - - ">="
110
124
  - !ruby/object:Gem::Version
111
125
  version: '0'
112
126
  - !ruby/object:Gem::Dependency
113
127
  name: simplecov
114
128
  requirement: !ruby/object:Gem::Requirement
115
129
  requirements:
116
- - - ! '>='
130
+ - - ">="
117
131
  - !ruby/object:Gem::Version
118
132
  version: '0'
119
133
  type: :development
120
134
  prerelease: false
121
135
  version_requirements: !ruby/object:Gem::Requirement
122
136
  requirements:
123
- - - ! '>='
137
+ - - ">="
124
138
  - !ruby/object:Gem::Version
125
139
  version: '0'
126
140
  - !ruby/object:Gem::Dependency
127
141
  name: yard
128
142
  requirement: !ruby/object:Gem::Requirement
129
143
  requirements:
130
- - - ! '>='
144
+ - - ">="
131
145
  - !ruby/object:Gem::Version
132
146
  version: '0'
133
147
  type: :development
134
148
  prerelease: false
135
149
  version_requirements: !ruby/object:Gem::Requirement
136
150
  requirements:
137
- - - ! '>='
151
+ - - ">="
138
152
  - !ruby/object:Gem::Version
139
153
  version: '0'
140
- description: ! "This set of commands converts a CSV file to the following formats:\n
141
- \ - .strings (iOS)\n - .xml (Android)\n -
142
- .json\n - .php"
154
+ description: |-
155
+ This set of commands converts a CSV file to the following formats:
156
+ - .strings (iOS)
157
+ - .xml (Android)
158
+ - .json
159
+ - .php
143
160
  email:
144
161
  - francois.benaiteau@gmail.com
145
162
  - markus.paeschke@gmail.com
@@ -148,10 +165,12 @@ executables:
148
165
  extensions: []
149
166
  extra_rdoc_files: []
150
167
  files:
151
- - .babelish.sample
152
- - .gitignore
153
- - .hound.yml
154
- - .travis.yml
168
+ - ".babelish.sample"
169
+ - ".gitignore"
170
+ - ".hound.yml"
171
+ - ".travis.yml"
172
+ - CONTRIBUTING.md
173
+ - Dockerfile
155
174
  - Gemfile
156
175
  - LICENSE.txt
157
176
  - README.md
@@ -229,12 +248,12 @@ require_paths:
229
248
  - lib
230
249
  required_ruby_version: !ruby/object:Gem::Requirement
231
250
  requirements:
232
- - - ! '>='
251
+ - - ">="
233
252
  - !ruby/object:Gem::Version
234
253
  version: '0'
235
254
  required_rubygems_version: !ruby/object:Gem::Requirement
236
255
  requirements:
237
- - - ! '>='
256
+ - - ">="
238
257
  - !ruby/object:Gem::Version
239
258
  version: '0'
240
259
  requirements: []