string-pad 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ae43afb46dbf7f008f34c20c0bef5f2adcbf1cbd
4
+ data.tar.gz: 6a3f08cbe3c05a14e81c24ec737211f35a114d82
5
+ SHA512:
6
+ metadata.gz: 86dc21f45ea748c9d2e3bdb289e11c5cfdb1c6e47c8546c2b03409fb88808473e41c49e4228080d916795ed960418074b15779ad7f45ca16d007037695f2401f
7
+ data.tar.gz: ffbcbc8827ea86562c8db84fe2e46ac83876d16ad8ec2eaa5a90a2afac82f485d0f1267bbb277dd6fed01d841cdaaeb22bca861ff0bf393f43f8f55273370b83
@@ -0,0 +1,50 @@
1
+ # rcov generated
2
+ coverage
3
+ coverage.data
4
+
5
+ # rdoc generated
6
+ rdoc
7
+
8
+ # yard generated
9
+ doc
10
+ .yardoc
11
+
12
+ # bundler
13
+ .bundle
14
+ vendor/bundle
15
+
16
+ # jeweler generated
17
+ pkg
18
+
19
+ # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
20
+ #
21
+ # * Create a file at ~/.gitignore
22
+ # * Include files you want ignored
23
+ # * Run: git config --global core.excludesfile ~/.gitignore
24
+ #
25
+ # After doing this, these files will be ignored in all your git projects,
26
+ # saving you from having to 'pollute' every project you touch with them
27
+ #
28
+ # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
29
+ #
30
+ # For MacOS:
31
+ #
32
+ #.DS_Store
33
+
34
+ # For TextMate
35
+ #*.tmproj
36
+ #tmtags
37
+
38
+ # For emacs:
39
+ #*~
40
+ #\#*
41
+ #.\#*
42
+
43
+ # For vim:
44
+ #*.swp
45
+
46
+ # For redcar:
47
+ #.redcar
48
+
49
+ # For rubinius:
50
+ #*.rbc
data/Gemfile CHANGED
@@ -1,13 +1,3 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
2
 
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
8
- group :development do
9
- gem "rspec", "~> 2.8.0"
10
- gem "rdoc", "~> 3.12"
11
- gem "bundler", "~> 1.0.0"
12
- gem "jeweler", "~> 1.8.3"
13
- end
3
+ gemspec
@@ -1,15 +1,13 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ string-pad (0.0.2)
5
+
1
6
  GEM
2
7
  remote: http://rubygems.org/
3
8
  specs:
4
9
  diff-lcs (1.1.3)
5
- git (1.2.5)
6
- jeweler (1.8.3)
7
- bundler (~> 1.0)
8
- git (>= 1.2.5)
9
- rake
10
- rdoc
11
10
  json (1.6.5)
12
- rake (0.9.2.2)
13
11
  rdoc (3.12)
14
12
  json (~> 1.4)
15
13
  rspec (2.8.0)
@@ -25,7 +23,6 @@ PLATFORMS
25
23
  ruby
26
24
 
27
25
  DEPENDENCIES
28
- bundler (~> 1.0.0)
29
- jeweler (~> 1.8.3)
30
26
  rdoc (~> 3.12)
31
27
  rspec (~> 2.8.0)
28
+ string-pad!
@@ -4,6 +4,19 @@ Creates a new string by concatenating enough leading zero-width pad characters t
4
4
 
5
5
  Useful when tweeting identical text repeatedly.
6
6
 
7
+ == Synopsis
8
+
9
+ require 'string/pad'
10
+
11
+ str = 'PENTAX!'.pad(140)
12
+
13
+ str # => PENTAX!
14
+ str.split(//).size # 140
15
+
16
+ == Installation
17
+
18
+ gem install string-pad
19
+
7
20
  == Contributing to string-pad
8
21
 
9
22
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
data/Rakefile CHANGED
@@ -1,29 +1,6 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
1
+ #!/usr/bin/env rake
12
2
  require 'rake'
13
-
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "string-pad"
18
- gem.homepage = "http://github.com/youpy/string-pad"
19
- gem.license = "MIT"
20
- gem.summary = %Q{A Ruby library to padding a string}
21
- gem.description = %Q{Creates a new string by concatenating enough leading zero-width pad characters to an original string to achieve a specified total length.}
22
- gem.email = "youpy@buycheapviagraonlinenow.com"
23
- gem.authors = ["youpy"]
24
- # dependencies defined in Gemfile
25
- end
26
- Jeweler::RubygemsDotOrgTasks.new
3
+ require "bundler/gem_tasks"
27
4
 
28
5
  require 'rspec/core'
29
6
  require 'rspec/core/rake_task'
@@ -32,13 +9,3 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
32
9
  end
33
10
 
34
11
  task :default => :spec
35
-
36
- require 'rdoc/task'
37
- Rake::RDocTask.new do |rdoc|
38
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
39
-
40
- rdoc.rdoc_dir = 'rdoc'
41
- rdoc.title = "string-pad #{version}"
42
- rdoc.rdoc_files.include('README*')
43
- rdoc.rdoc_files.include('lib/**/*.rb')
44
- end
@@ -5,9 +5,37 @@ if RUBY_VERSION =~ /^1\.8/
5
5
  end
6
6
 
7
7
  class String
8
+ ZERO_WIDTH_CHARS = [
9
+ 0x200b,
10
+ 0x200c,
11
+ 0x200d,
12
+ 0x200e,
13
+ 0x200f,
14
+ 0x202a,
15
+ 0x202b,
16
+ 0x202c,
17
+ 0x202d,
18
+ 0x202e,
19
+ 0x2060,
20
+ 0x2061,
21
+ 0x2062,
22
+ 0x2063,
23
+ 0x2064,
24
+ 0x2066,
25
+ 0x2067,
26
+ 0x2068,
27
+ 0x2069,
28
+ 0x206a,
29
+ 0x206b,
30
+ 0x206c,
31
+ 0x206d,
32
+ 0x206e,
33
+ 0x206f
34
+ ]
35
+
8
36
  def pad(size)
9
37
  orig_size = split(//).size
10
- padding = (0...(size - orig_size)).to_a.map { [0x200b, 0x200c].sort_by { rand }.first }.pack('U*')
38
+ padding = (0...(size - orig_size)).to_a.map { ZERO_WIDTH_CHARS.sort_by { rand }.first }.pack('U*')
11
39
  padding + self
12
40
  end
13
41
  end
@@ -7,10 +7,14 @@ describe 'String#pad' do
7
7
  end
8
8
 
9
9
  it 'should pad' do
10
+ regexp_str = String::ZERO_WIDTH_CHARS.map do |c|
11
+ [c].pack('U')
12
+ end.join('')
13
+
10
14
  size(subject.pad(30)).should eql(30)
11
15
 
12
16
  # http://www.metareal.org/2007/11/18/ruby-needs-unicode-regular-expressions/
13
- size(subject.pad(30).gsub(/#{"[#{[0x200b].pack('U')}#{[0x200c].pack('U')}]"}/u, '')).should eql(13)
17
+ size(subject.pad(30).gsub(/#{"[#{regexp_str}]"}/u, '')).should eql(13)
14
18
  end
15
19
 
16
20
  it 'should not pad if original size is longer than padding size' do
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |gem|
4
+ gem.authors = ["youpy"]
5
+ gem.email = ["youpy@buycheapviagraonlinenow.com"]
6
+ gem.description = "Creates a new string by concatenating enough leading zero-width pad characters to an original string to achieve a specified total length."
7
+ gem.summary = "Creates a new string by concatenating enough leading zero-width pad characters to an original string to achieve a specified total length."
8
+ gem.homepage = "http://github.com/youpy/string-pad"
9
+
10
+ gem.files = `git ls-files`.split("\n")
11
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
12
+ gem.name = "string-pad"
13
+ gem.require_paths = ["lib"]
14
+ gem.version = "0.0.2"
15
+ gem.license = 'MIT'
16
+
17
+ gem.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
18
+ gem.add_development_dependency(%q<rdoc>, ["~> 3.12"])
19
+ end
metadata CHANGED
@@ -1,71 +1,54 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: string-pad
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - youpy
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-02-04 00:00:00.000000000 Z
11
+ date: 2016-03-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
- requirement: &70354856925780 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: 2.8.0
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *70354856925780
25
- - !ruby/object:Gem::Dependency
26
- name: rdoc
27
- requirement: &70354856923240 !ruby/object:Gem::Requirement
28
- none: false
22
+ version_requirements: !ruby/object:Gem::Requirement
29
23
  requirements:
30
- - - ~>
24
+ - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: '3.12'
33
- type: :development
34
- prerelease: false
35
- version_requirements: *70354856923240
26
+ version: 2.8.0
36
27
  - !ruby/object:Gem::Dependency
37
- name: bundler
38
- requirement: &70354856921680 !ruby/object:Gem::Requirement
39
- none: false
28
+ name: rdoc
29
+ requirement: !ruby/object:Gem::Requirement
40
30
  requirements:
41
- - - ~>
31
+ - - "~>"
42
32
  - !ruby/object:Gem::Version
43
- version: 1.0.0
33
+ version: '3.12'
44
34
  type: :development
45
35
  prerelease: false
46
- version_requirements: *70354856921680
47
- - !ruby/object:Gem::Dependency
48
- name: jeweler
49
- requirement: &70354856935880 !ruby/object:Gem::Requirement
50
- none: false
36
+ version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
- - - ~>
38
+ - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: 1.8.3
55
- type: :development
56
- prerelease: false
57
- version_requirements: *70354856935880
40
+ version: '3.12'
58
41
  description: Creates a new string by concatenating enough leading zero-width pad characters
59
42
  to an original string to achieve a specified total length.
60
- email: youpy@buycheapviagraonlinenow.com
43
+ email:
44
+ - youpy@buycheapviagraonlinenow.com
61
45
  executables: []
62
46
  extensions: []
63
- extra_rdoc_files:
64
- - LICENSE.txt
65
- - README.rdoc
47
+ extra_rdoc_files: []
66
48
  files:
67
- - .document
68
- - .rspec
49
+ - ".document"
50
+ - ".gitignore"
51
+ - ".rspec"
69
52
  - Gemfile
70
53
  - Gemfile.lock
71
54
  - LICENSE.txt
@@ -74,32 +57,32 @@ files:
74
57
  - lib/string/pad.rb
75
58
  - spec/spec_helper.rb
76
59
  - spec/string-pad_spec.rb
60
+ - string-pad.gemspec
77
61
  homepage: http://github.com/youpy/string-pad
78
62
  licenses:
79
63
  - MIT
64
+ metadata: {}
80
65
  post_install_message:
81
66
  rdoc_options: []
82
67
  require_paths:
83
68
  - lib
84
69
  required_ruby_version: !ruby/object:Gem::Requirement
85
- none: false
86
70
  requirements:
87
- - - ! '>='
71
+ - - ">="
88
72
  - !ruby/object:Gem::Version
89
73
  version: '0'
90
- segments:
91
- - 0
92
- hash: 2621184752924516486
93
74
  required_rubygems_version: !ruby/object:Gem::Requirement
94
- none: false
95
75
  requirements:
96
- - - ! '>='
76
+ - - ">="
97
77
  - !ruby/object:Gem::Version
98
78
  version: '0'
99
79
  requirements: []
100
80
  rubyforge_project:
101
- rubygems_version: 1.8.10
81
+ rubygems_version: 2.2.0.rc.1
102
82
  signing_key:
103
- specification_version: 3
104
- summary: A Ruby library to padding a string
105
- test_files: []
83
+ specification_version: 4
84
+ summary: Creates a new string by concatenating enough leading zero-width pad characters
85
+ to an original string to achieve a specified total length.
86
+ test_files:
87
+ - spec/spec_helper.rb
88
+ - spec/string-pad_spec.rb