string_pattern 1.4.1 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/string_pattern.rb +9 -3
  3. metadata +7 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b093db982f7f17ab14613624288e3f2e74057370ed5a1041b0a40143921886ee
4
- data.tar.gz: e19f5245003ba4803915ff2e24296772f4e2a928a85b2551a1be6e888059a4dc
3
+ metadata.gz: 0b3cd24566b10d29d53ae0dc90ae200ff772aa2673582f46870cb6a7b10b5503
4
+ data.tar.gz: dfa03622a4504169004dfae4694de64df274ac1d2977a1c1e271dd48b5aff97a
5
5
  SHA512:
6
- metadata.gz: abd7d2fe80def8e0fa6125063e5cfb04a914c449cfecd4a085c58382d07aa92958b4caec69215235c6134635f9c2b0ba4aafb3777a21ac8d720a3546bcf53dc3
7
- data.tar.gz: 9b074d32d5843bdc7b92acd678f6614c542032b9f2cdff3a106fd915544b3efe4d5be5e38adfef76ac94ef0e7bab189ad300da9d0a8d2f7243dc76cbc21db505
6
+ metadata.gz: 92309292bf67be968e6212ab37b6a32f7019b54b7d45f71a60208cf3e5ec4a0320875cafd0bafda607dce4398daf9a480e59f6212df99bfe6c31176f620f937f
7
+ data.tar.gz: dfa1507522d70a2926e783def52c32af007156592c65e4dd7f0abb3a36126e0cc5ba74c58cc2e757de2e1bd2704b7e41f2b2d75d92ca735789de31328bc93357
@@ -34,7 +34,7 @@ class StringPattern
34
34
 
35
35
 
36
36
  Pattern = Struct.new(:min_length, :max_length, :symbol_type, :required_data, :excluded_data, :data_provided,
37
- :string_set, :all_characters_set)
37
+ :string_set, :all_characters_set, :unique)
38
38
 
39
39
  ###############################################
40
40
  # Analyze the pattern supplied and returns an object of Pattern structure including:
@@ -51,6 +51,12 @@ class StringPattern
51
51
  return pattern.to_s
52
52
  end
53
53
  end
54
+ if symbol_type[-1]=="&"
55
+ symbol_type.chop!
56
+ unique = true
57
+ else
58
+ unique = false
59
+ end
54
60
 
55
61
  symbol_type = '!' + symbol_type if pattern.to_s[0] == '!'
56
62
  min_length = min_length.to_i
@@ -215,7 +221,7 @@ class StringPattern
215
221
  end
216
222
  string_set.uniq!
217
223
  @cache[pattern.to_s] = Pattern.new(min_length, max_length, symbol_type, required_data, excluded_data, data_provided,
218
- string_set, all_characters_set)
224
+ string_set, all_characters_set, unique)
219
225
  return @cache[pattern.to_s]
220
226
  end
221
227
 
@@ -671,7 +677,7 @@ class StringPattern
671
677
  good_result = true
672
678
  end
673
679
  end
674
- if pattern.kind_of?(Symbol) and symbol_type[-1] == "&"
680
+ if pattern.kind_of?(Symbol) and patt.unique
675
681
  if @cache_values[pattern.__id__].nil?
676
682
  @cache_values[pattern.__id__] = Array.new()
677
683
  @cache_values[pattern.__id__].push(string)
metadata CHANGED
@@ -1,18 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: string_pattern
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Ruiz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-27 00:00:00.000000000 Z
11
+ date: 2018-12-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: You can easily generate strings supplying a very simple pattern. Also,
14
- you can validate if a text fulfills a specific pattern or even generate a string
15
- following a pattern and returning the wrong length, value... for testing your applications.
13
+ description: 'You can easily generate strings supplying a very simple pattern. ''10-20:Xn/x/''.generate
14
+ #>qBstvc6JN8ra. Also, you can validate if a text fulfills a specific pattern or
15
+ even generate a string following a pattern and returning the wrong length, value...
16
+ for testing your applications.'
16
17
  email: marioruizs@gmail.com
17
18
  executables: []
18
19
  extensions: []
@@ -48,6 +49,6 @@ rubyforge_project:
48
49
  rubygems_version: 2.7.6
49
50
  signing_key:
50
51
  specification_version: 4
51
- summary: 'Generates easily random string following a simple pattern. ''10-20:Xn/x/''.generate
52
+ summary: 'Generate easily random strings following a simple pattern. ''10-20:Xn/x/''.generate
52
53
  #>qBstvc6JN8ra'
53
54
  test_files: []