localio 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6e33f6b868c98b4f6ce507da0a27b00bc76d477d
4
- data.tar.gz: 4f583d6c0baa0332736c5cdc236739698df3f3a9
3
+ metadata.gz: 39d9b5aadd69284bfc028292593d32542d7a2e4c
4
+ data.tar.gz: 774644985e41203021c6fa0ae3ac75bb3055cdda
5
5
  SHA512:
6
- metadata.gz: 138f8b6e52928fd42da110b3ca5ddf98088b29d042c389da024f75e64bca28720fd4a80007c4a094785fda635b30d5fcef7e272e37832bd17c0e8b5103b9893c
7
- data.tar.gz: c3f96c5fb77d05fd6a92986b07424524c0458f23b060d869b7ef1e8f4bf4309d731ab29e32f1b256ae0897ce66ef2a52120bdeb12ed272545032f74335fc75fc
6
+ metadata.gz: 1cc01458194b6dccd78b82f5f7bf90fdc7d232bf1144428b3ee03af269749dcb49c3107b6705d41c0307dde794b70391423de4595dab41b895aff759ac406e7b
7
+ data.tar.gz: 964ad35325bac5a19a5a866d46b37692a354db3a833dad346068cd435daf096253181712111b5603908a60ce14df34945ea5e40a19e241dad5b8a0f3aba0cb52
data/README.md CHANGED
@@ -151,6 +151,22 @@ formatting :camel_case
151
151
 
152
152
  Normally you would want a smart formatter, because it is adjusted (or tries to) to the usual code conventions of each platform for localizable strings.
153
153
 
154
+ ### Filtering content
155
+
156
+ We can establish filters to the keys by using regular expressions.
157
+
158
+ The exclusions are managed with the `except` command. For example, if we don't want to include the translations where the key has the "[a]" string, we could include this in the Locfile.
159
+
160
+ ````ruby
161
+ except :keys => '[\[][a][\]]'
162
+ ````
163
+
164
+ We can filter inversely too, with the command `only`. For example, if we only want the translations that contain the '[a]' token, we should use:
165
+
166
+ ````ruby
167
+ only :keys => '[\[][a][\]]'
168
+ ````
169
+
154
170
  ## Contributing
155
171
 
156
172
  Please read the [contributing guide](https://github.com/mrmans0n/localio/blob/master/CONTRIBUTING.md).
@@ -0,0 +1,43 @@
1
+ class Filter
2
+ def self.apply_filter(segments, only, except)
3
+
4
+ segments = only segments, only[:keys] unless only.nil?
5
+ segments = except segments, except[:keys] unless except.nil?
6
+
7
+ segments
8
+ end
9
+
10
+ private
11
+
12
+ def self.only segments, keys_filter
13
+
14
+ filtered_segments = []
15
+ segments.each do |segment|
16
+ is_okay = true
17
+ unless keys_filter.nil?
18
+ result = /#{keys_filter}/ =~ segment.keyword
19
+ is_okay = false if result.nil?
20
+ end
21
+
22
+ filtered_segments << segment if is_okay
23
+ end
24
+
25
+ filtered_segments
26
+ end
27
+
28
+ def self.except segments, keys_filter
29
+ filtered_segments = []
30
+ segments.each do |segment|
31
+ is_okay = true
32
+ unless keys_filter.nil?
33
+ result = /#{keys_filter}/ =~ segment.keyword
34
+ is_okay = false unless result.nil?
35
+ end
36
+
37
+ filtered_segments << segment if is_okay
38
+ end
39
+
40
+ filtered_segments
41
+ end
42
+
43
+ end
@@ -5,7 +5,7 @@ class Locfile
5
5
  # Specify the target platform for the localizables
6
6
  #
7
7
  # possible values
8
- # :android, :ios, :php, :json, :yml
8
+ # :android, :ios, :rails, :json
9
9
  dsl_accessor :platform
10
10
 
11
11
  # Specifies the filesystem path where the generated files will be
@@ -19,6 +19,12 @@ class Locfile
19
19
  # :none - no formatting done, the keys will be used as
20
20
  dsl_accessor :formatting
21
21
 
22
+ # Specify a filter that we can use for keys. It would work as "put everything except what matches with this key"
23
+ dsl_accessor :except
24
+
25
+ # Specify a filter that we can use for keys. It would work as "put only what matches with this key"
26
+ dsl_accessor :only
27
+
22
28
  # Defined using 'source' ideally
23
29
  dsl_accessor :source_service, :source_options
24
30
 
@@ -1,3 +1,3 @@
1
1
  module Localio
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/localio.rb CHANGED
@@ -2,6 +2,7 @@ require 'localio/version'
2
2
  require 'localio/locfile'
3
3
  require 'localio/processor'
4
4
  require 'localio/localizable_writer'
5
+ require 'localio/filter'
5
6
 
6
7
  module Localio
7
8
 
@@ -31,6 +32,7 @@ module Localio
31
32
 
32
33
  def self.generate_localizables
33
34
  process_to_memory
35
+ apply_filters
34
36
  build_localizables
35
37
  end
36
38
 
@@ -39,6 +41,12 @@ module Localio
39
41
  @configuration.source_options
40
42
  end
41
43
 
44
+ def self.apply_filters
45
+ @localizables[:segments] = Filter.apply_filter @localizables[:segments],
46
+ @configuration.only,
47
+ @configuration.except
48
+ end
49
+
42
50
  def self.build_localizables
43
51
  LocalizableWriter.write @configuration.platform,
44
52
  @localizables[:languages],
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: localio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nacho Lopez
@@ -111,6 +111,7 @@ files:
111
111
  - Rakefile
112
112
  - bin/localize
113
113
  - lib/localio.rb
114
+ - lib/localio/filter.rb
114
115
  - lib/localio/formatter.rb
115
116
  - lib/localio/localizable_writer.rb
116
117
  - lib/localio/locfile.rb