patter 1.0.10 → 1.0.11

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6204340d17c9513a5be7e044a79bc0ac428ea39365fe24c9405b5afc6b15430e
4
- data.tar.gz: fe832b6a0a8d43dbf709ac59a76462cb995b9281d5a50cc834d5e265a00cdb15
3
+ metadata.gz: 5dc182b17165e35d6587316c053b91b4ae61eb011484d71b05ccb8f0609809a0
4
+ data.tar.gz: 2523f20c2a140136488771470eb85a37064ab2e086eae1b3deed2fd06b735746
5
5
  SHA512:
6
- metadata.gz: 1cdf173fb4496061bea09fba8f01c273182e1e005c7436436e17d541557a025845bd0553a5d8e674bcecb1586a70c6d0a04711ba59bdfe2ffece7af0fc5b533f
7
- data.tar.gz: d72207fad82a5f8d1ca409871c50d8652f17021a9d20263454343aa8ee08daf9649f109511769c4160909c27e84df9b8bfd7ab2462c1d647bbe5cc9819a1d1ef
6
+ metadata.gz: 8f67828e507abc88f2749a2925367ddf82360ec1ced4c28784c8480c2cd7cfddba0a8a69fcc8d90232c2d4149927543060c5f5704b0a9571f6d4b31607225f8b
7
+ data.tar.gz: 42fd989ebb98aaa8bc005d81dad72e9ee226f76c4eb78129cab1acc699571daca1150caa045f08500d6f94809912ace09f497746edcd0f67564d977823eaff35
@@ -33,13 +33,18 @@ module Patter
33
33
  n = 1
34
34
 
35
35
  modifiers.split(re).reject(&:empty?).each do |modifier|
36
- n = $1.to_i if modifier =~ /([0-9]+)/
37
- chain << MODIFIERS[modifier] if MODIFIERS[modifier]
36
+ if modifier =~ /([0-9]+)/
37
+ n = $1.to_i
38
+ end
39
+
40
+ if MODIFIERS[modifier]
41
+ chain << MODIFIERS[modifier]
42
+ end
38
43
  end
39
44
 
40
- samples = source.get_samples(n)
41
- chain.each { |tran| samples.each &tran }
42
- samples.join
45
+ source.get_samples(n).map do |sample|
46
+ sample.transform(chain)
47
+ end.join
43
48
  end
44
49
  end
45
50
 
data/lib/patter/sample.rb CHANGED
@@ -1,34 +1,27 @@
1
1
  module Patter
2
- class Sample
3
- def initialize(str)
4
- @str = str
5
- end
6
-
7
- def method_missing(method_symbol)
8
- @str = @str.send(method_symbol)
9
- end
10
-
2
+ class Sample < String
11
3
  def pluralize
12
- @str = Inflector.pluralize(@str)
4
+ self.class.new(Inflector.pluralize(self))
13
5
  end
14
6
 
15
7
  def titleize
16
- @str = @str[0].upcase + @str[1..]
8
+ self.class.new(self[0].upcase + self[1..])
17
9
  end
18
10
 
19
11
  def altcase
20
- @str = @str.chars.each_with_index.map do |char, i|
21
- if i % 2 == 0 then
12
+ self.class.new(chars.each_with_index.map do |char, i|
13
+ if i.even?
22
14
  char.upcase
23
15
  else
24
16
  char.downcase
25
17
  end
26
- end.join
18
+ end.join)
27
19
  end
28
20
 
29
- def to_s
30
- @str
21
+ def transform(chain)
22
+ chain.inject(self) do |str, transformer|
23
+ str.send(transformer)
24
+ end
31
25
  end
32
- alias_method :to_str, :to_s
33
26
  end
34
27
  end
data/lib/patter/source.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Patter
2
2
  class Source < Array
3
3
  def get_samples(n)
4
- sample(n).map { |str| Sample.new(str) }
4
+ sample(n).map { |sample| Sample.new(sample) }
5
5
  end
6
6
 
7
7
  def get_sample
@@ -8,12 +8,8 @@ module Patter
8
8
 
9
9
  private
10
10
 
11
- def gem_root
12
- __dir__ + "/../../"
13
- end
14
-
15
11
  def get_wordlist(type)
16
- File.read(gem_root + "/words/#{type}.txt").split
12
+ File.read(Patter.root + "/words/#{type}.txt").split
17
13
  end
18
14
 
19
15
  def chars
@@ -1,3 +1,3 @@
1
1
  module Patter
2
- VERSION = "1.0.10"
2
+ VERSION = "1.0.11"
3
3
  end
data/lib/patter.rb CHANGED
@@ -6,3 +6,9 @@ require_relative 'patter/pattern'
6
6
  require_relative 'patter/source'
7
7
  require_relative 'patter/sample'
8
8
  require_relative 'patter/version'
9
+
10
+ module Patter
11
+ def self.root
12
+ File.expand_path('../..', __FILE__)
13
+ end
14
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: patter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - crdx
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-06 00:00:00.000000000 Z
11
+ date: 2019-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docopt
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '12.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.17.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.17.0
55
69
  description:
56
70
  email:
57
71
  executables:
@@ -88,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0'
90
104
  requirements: []
91
- rubygems_version: 3.0.4
105
+ rubygems_version: 3.0.6
92
106
  signing_key:
93
107
  specification_version: 4
94
108
  summary: Generate strings from patterns.