rujitsu 0.3.3 → 0.4.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ffa903afb31f421a3a70aaa7be80493b96387122
4
+ data.tar.gz: 5ba97b21216fe755c46ad225fb34c048b1fc6d91
5
+ SHA512:
6
+ metadata.gz: 19cec8cd78a9a32fa031496e54c9a4a77b0497e4c8b234a800dd7810dd034fcb40b2081fc0e62800f49d81c4af9877bd0c4506a45e0f63a3bd33e0a6b65027d5
7
+ data.tar.gz: 1715b9a643c5598744eb059798d3c448803f343ec9483531cc528ba33aec6cf1fd16d44cf51da892513c19c29ed348b2ab834ac8376d00fdfd1da962e08cecb3
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.travis.yml ADDED
@@ -0,0 +1,17 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7-head
4
+ - 1.9.3-p551
5
+ - 2.0.0-p648
6
+ - 2.1.10
7
+ - 2.3.4
8
+ - 2.4.1
9
+ - ruby-head
10
+
11
+ before_install:
12
+ - gem update --system
13
+ - gem update bundler
14
+
15
+ matrix:
16
+ allow_failures:
17
+ - rvm: 1.8.7-head
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ = Version 0.4.0 (2017-05-02)
2
+
3
+ Added ::start_of_this_month, ::start_of_last_month and ::start_of_next_month for Date class (via @worldisaduck)
4
+
1
5
  = Version 0.3.1 (2009-12-04)
2
6
 
3
7
  rujitsu/grammar now raises the proper rule (one of the most important updates ever)
@@ -54,4 +58,4 @@ Added range based random character generation
54
58
 
55
59
  = Version 0.1.0 (2008-11-22)
56
60
 
57
- Initial Release; random character generation, URL-friendly strings.
61
+ Initial Release; random character generation, URL-friendly strings.
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2008 Brightbox Systems Ltd
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.rdoc CHANGED
@@ -4,8 +4,10 @@ A ruby gem with various helper methods to smooth out your Ruby development.
4
4
 
5
5
  == Install
6
6
 
7
- gem install brightbox-rujitsu --source http://gems.github.com
8
-
7
+ Add the following to your Gemfile
8
+
9
+ gem "rujitsu"
10
+
9
11
  == Including
10
12
 
11
13
  require "rujitsu"
@@ -17,16 +19,6 @@ For using in irb, there's a nice shortcut for you to use:
17
19
 
18
20
  (This works because <tt>-r</tt> is the argument to require a file, and both 'ubygems.rb' and 'ujitsu.rb' exist.)
19
21
 
20
- === Rails
21
-
22
- To require in rails 2.2, add the following to your <tt>environment.rb</tt> file.
23
-
24
- config.gem "rujitsu"
25
-
26
- If you use RSpec you might want to add the following to your <tt>environments/test.rb</tt>:
27
-
28
- config.gem "rujitsu", :lib => "rujitsu/grammar"
29
-
30
22
  == Documentation
31
23
 
32
24
  Run <tt>rake docs</tt> and open doc/index.html.
@@ -40,11 +32,11 @@ The Fixnum class has a couple of extensions allowing you to generate random stri
40
32
  5.random_letters
41
33
  5.random_numbers
42
34
  5.random_characters
43
-
35
+
44
36
  You can also generate a variable length string.
45
37
 
46
38
  (3..5).random_letters
47
-
39
+
48
40
  This generates a string of random letters whose length is 3, 4 or 5 characters.
49
41
 
50
42
  <em>(All the above methods exist in the singular too. eg, <tt>1.random_letter</tt>)</em>
@@ -60,13 +52,13 @@ The String class has an extension that strips out URL-unfriendly characters.
60
52
  The String class has an extension that truncates it to a customisable length with a customisable suffix.
61
53
 
62
54
  "this is a string".truncate(:length => 15) # => "this is a st..."
63
-
55
+
64
56
  === Testing for inclusion within a container
65
57
 
66
58
  As Rubyists we are all familiar with using include? to test if our variable is one of a number of values.
67
59
 
68
60
  if ['hello', 'world'].include?(@my_value) ...
69
-
61
+
70
62
  However, it doesn't read correctly. Rujitsu allows you to write the following as it reads much more like English.
71
63
 
72
64
  if @my_value.in? ['hello', 'world'] ...
data/Rakefile CHANGED
@@ -1,19 +1,6 @@
1
- require 'rubygems'
2
- require 'rake'
3
- require 'echoe'
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
4
3
 
5
- Echoe.new('rujitsu', '0.3.3') do | config |
6
- config.description = 'Various helper methods to smooth over Ruby development'
7
- config.url = 'http://github.com/brightbox/rujitsu'
8
- config.author = 'Brightbox Systems Ltd'
9
- config.email = 'hello@brightbox.co.uk'
10
- config.ignore_pattern = ['tmp/*', 'script/*']
11
- config.development_dependencies = []
12
- end
4
+ RSpec::Core::RakeTask.new(:spec)
13
5
 
14
- desc "Generates manifest & gemspec in one go"
15
- task :build => [:manifest, :build_gemspec]
16
-
17
- Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each do | rake_file |
18
- load rake_file
19
- end
6
+ task :default => :spec
data/lib/rujitsu.rb CHANGED
@@ -1,6 +1,9 @@
1
+ # encoding: utf-8
2
+
1
3
  base_dir = File.expand_path(File.dirname(__FILE__))
2
4
  require base_dir + '/rujitsu/fixnum'
3
5
  require base_dir + '/rujitsu/numeric'
4
6
  require base_dir + '/rujitsu/range'
5
7
  require base_dir + '/rujitsu/string'
6
8
  require base_dir + '/rujitsu/object'
9
+ require base_dir + '/rujitsu/date'
data/lib/rujitsu/all.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  #
2
4
  # Requires everything in rujitsu/
3
5
  #
@@ -0,0 +1,28 @@
1
+ require 'date'
2
+
3
+ module RujitsuDate
4
+ def start_of_this_month
5
+ today = self.today
6
+ self.new(today.year, today.month)
7
+ end
8
+
9
+ def start_of_last_month
10
+ today = self.today
11
+ if today.month == 1
12
+ self.new(today.year - 1, 12)
13
+ else
14
+ self.new(today.year, today.month - 1)
15
+ end
16
+ end
17
+
18
+ def start_of_next_month
19
+ today = self.today
20
+ if today.month < 12
21
+ self.new(today.year, today.month + 1)
22
+ else
23
+ self.new(today.year + 1, 1)
24
+ end
25
+ end
26
+ end
27
+
28
+ Date.send(:extend, RujitsuDate)
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  module RujitsuFixnum
2
4
  # produce a string of N random vowels
3
5
  def random_vowels opts={}
@@ -27,9 +29,9 @@ module RujitsuFixnum
27
29
  upper = opts[:to] || 9
28
30
  lower = opts[:from] || 0
29
31
  only = opts[:only] || :both
30
-
32
+
31
33
  # And finally calculate the number
32
- n = []
34
+ n = []
33
35
  (self - 1).times do
34
36
  i = (lower..upper).to_a.sort_by { rand }.first
35
37
  n << i.to_s
@@ -73,7 +75,7 @@ module RujitsuFixnum
73
75
  legal_characters.delete(char)
74
76
  end
75
77
  end
76
-
78
+
77
79
  upper_limit = legal_characters.size - 1
78
80
 
79
81
  srand # seed rand
@@ -81,7 +83,7 @@ module RujitsuFixnum
81
83
  legal_characters[rand(upper_limit)]
82
84
  end.join
83
85
  end
84
-
86
+
85
87
  def end_number_choices opt
86
88
  case opt
87
89
  when :even
@@ -1,12 +1,13 @@
1
+ # encoding: utf-8
2
+
1
3
  module Spec
2
4
  module Mocks
3
5
  module Methods
4
6
  class GrammarException < Exception; end
5
-
7
+
6
8
  def should_recieve(sym, opts={}, &block)
7
9
  raise GrammarException, "Oi! i before e except after c."
8
10
  end
9
11
  end
10
12
  end
11
13
  end
12
-
@@ -1,6 +1,8 @@
1
+ # encoding: utf-8
2
+
1
3
  module Kernel
2
4
  # If output is true then echo's,
3
- # else just returns the name
5
+ # else just returns the name
4
6
  def _cmd output=false
5
7
  caller[0] =~ /`([^']*)'/
6
8
  output ? p($1) : $1
@@ -13,7 +15,7 @@ module ExtendObject
13
15
  def simple_methods
14
16
  self.methods.sort - Object.methods
15
17
  end
16
-
18
+
17
19
  # Matches your search string against all
18
20
  # methods and returns array
19
21
  def grep_method match
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  module RujitsuNumeric
2
4
  # convert float values to "cents"
3
5
  # my_value = 2.5
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  module RujitsuObject
2
4
  # return true if this object is within the given container
3
5
  # if the supplied container does not respond to include? then an equality test is used instead
data/lib/rujitsu/range.rb CHANGED
@@ -1,33 +1,34 @@
1
+ # encoding: utf-8
2
+
1
3
  module RujitsuRange
2
4
  # pull a random element out of this range
3
- def to_random_i
4
- self.to_a.sort_by { rand }.first
5
- end
5
+ def to_random_i
6
+ self.to_a.sort_by { rand }.first
7
+ end
6
8
 
7
- # create a string of random letters whose length is one of the values in your range
8
- # (3..4).random_letters # => returns a string or 3 or 4 random letters
9
- def random_letters
10
- self.to_random_i.random_letters
11
- end
9
+ # create a string of random letters whose length is one of the values in your range
10
+ # (3..4).random_letters # => returns a string or 3 or 4 random letters
11
+ def random_letters
12
+ self.to_random_i.random_letters
13
+ end
12
14
 
13
- # create a string of random numbers whose length is one of the values in your range
14
- # (3..4).random_numbers # => returns a string or 3 or 4 random numbers
15
- def random_numbers opts = {}
16
- self.to_random_i.random_numbers opts
17
- end
15
+ # create a string of random numbers whose length is one of the values in your range
16
+ # (3..4).random_numbers # => returns a string or 3 or 4 random numbers
17
+ def random_numbers opts = {}
18
+ self.to_random_i.random_numbers opts
19
+ end
18
20
 
19
- # create a string of random characters whose length is one of the values in your range
20
- # (3..4).random_characters # => returns a string or 3 or 4 random characters
21
- def random_characters
22
- self.to_random_i.random_characters
23
- end
21
+ # create a string of random characters whose length is one of the values in your range
22
+ # (3..4).random_characters # => returns a string or 3 or 4 random characters
23
+ def random_characters
24
+ self.to_random_i.random_characters
25
+ end
24
26
 
25
27
  # create a string of random hex characters whose length is one of the values in your range
26
28
  # (3..4).random_hex_characters # => returns a string of 3 or 4 random hex characters
27
29
  def random_hex_characters
28
30
  self.to_random_i.random_hex_characters
29
31
  end
30
-
31
32
  end
32
33
 
33
34
  Range.send(:include, RujitsuRange)
@@ -1,21 +1,23 @@
1
+ # encoding: utf-8
2
+
1
3
  module RujitsuString
2
- # Return a string that can be used as part of a url
3
- # replaces basic "bad" characters with "-"
4
- def to_url
5
- self.downcase.gsub(/[^\-0-9a-z ]/, '').split.join('-')
6
- end
7
-
8
- # Truncates a string to the specified length,
9
- # and appends suffix if required
10
- #
11
- # Options:
12
- # * +length+ length to truncate string to. Includes the suffix in the length. Default is 50.
13
- # * +suffix+ suffix to append to truncated string. Pass "" or false for no suffix. Default is "...".
14
- #
15
- def truncate opts = {}
16
- opts[:length] ||= 50
17
- opts[:suffix] = opts.has_key?(:suffix) ? opts[:suffix] : "..."
18
- opts[:suffix] ||= ""
4
+ # Return a string that can be used as part of a url
5
+ # replaces basic "bad" characters with "-"
6
+ def to_url
7
+ self.downcase.gsub(/[^\-0-9a-z ]/, '').split.join('-')
8
+ end
9
+
10
+ # Truncates a string to the specified length,
11
+ # and appends suffix if required
12
+ #
13
+ # Options:
14
+ # * +length+ length to truncate string to. Includes the suffix in the length. Default is 50.
15
+ # * +suffix+ suffix to append to truncated string. Pass "" or false for no suffix. Default is "...".
16
+ #
17
+ def truncate opts = {}
18
+ opts[:length] ||= 50
19
+ opts[:suffix] = opts.has_key?(:suffix) ? opts[:suffix] : "..."
20
+ opts[:suffix] ||= ""
19
21
  opts[:length] -= (opts[:suffix].length+1)
20
22
  if opts[:length] > 0
21
23
  self.length > opts[:length] ? self[0..opts[:length]] + opts[:suffix] : self
data/lib/ujitsu.rb CHANGED
@@ -1 +1,3 @@
1
- require File.dirname(__FILE__) + "/rujitsu.rb"
1
+ # encoding: utf-8
2
+
3
+ require File.dirname(__FILE__) + "/rujitsu.rb"
data/rujitsu.gemspec CHANGED
@@ -1,30 +1,27 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
- Gem::Specification.new do |s|
4
- s.name = %q{rujitsu}
5
- s.version = "0.3.3"
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "rujitsu"
5
+ spec.version = "0.4.0"
6
+ spec.date = "2010-06-03"
7
+ spec.authors = ["Brightbox Systems Ltd", "Caius Durling", "Rahoul Baruah"]
8
+ spec.email = %q{hello@brightbox.co.uk}
6
9
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Brightbox Systems Ltd"]
9
- s.date = %q{2010-06-03}
10
- s.description = %q{Various helper methods to smooth over Ruby development}
11
- s.email = %q{hello@brightbox.co.uk}
12
- s.extra_rdoc_files = ["CHANGELOG", "README.rdoc", "lib/rujitsu.rb", "lib/rujitsu/all.rb", "lib/rujitsu/fixnum.rb", "lib/rujitsu/grammar.rb", "lib/rujitsu/inspect.rb", "lib/rujitsu/numeric.rb", "lib/rujitsu/object.rb", "lib/rujitsu/range.rb", "lib/rujitsu/string.rb", "lib/ujitsu.rb", "tasks/rspec.rake"]
13
- s.files = ["CHANGELOG", "README.rdoc", "Rakefile", "lib/rujitsu.rb", "lib/rujitsu/all.rb", "lib/rujitsu/fixnum.rb", "lib/rujitsu/grammar.rb", "lib/rujitsu/inspect.rb", "lib/rujitsu/numeric.rb", "lib/rujitsu/object.rb", "lib/rujitsu/range.rb", "lib/rujitsu/string.rb", "lib/ujitsu.rb", "rujitsu.gemspec", "spec/fixnum_spec.rb", "spec/numeric_spec.rb", "spec/object_spec.rb", "spec/range_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "spec/string_spec.rb", "tasks/rspec.rake", "Manifest"]
14
- s.homepage = %q{http://github.com/brightbox/rujitsu}
15
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rujitsu", "--main", "README.rdoc"]
16
- s.require_paths = ["lib"]
17
- s.rubyforge_project = %q{rujitsu}
18
- s.rubygems_version = %q{1.3.7}
19
- s.summary = %q{Various helper methods to smooth over Ruby development}
10
+ spec.summary = %q{Various helper methods to smooth over Ruby development}
11
+ spec.description = %q{Various helper methods to smooth over Ruby development}
12
+ spec.homepage = %q{http://github.com/brightbox/rujitsu}
13
+ spec.license = "MIT"
20
14
 
21
- if s.respond_to? :specification_version then
22
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
- s.specification_version = 3
15
+ spec.extra_rdoc_files = ["CHANGELOG", "README.rdoc", "lib/rujitsu.rb", "lib/rujitsu/all.rb", "lib/rujitsu/fixnum.rb", "lib/rujitsu/grammar.rb", "lib/rujitsu/inspect.rb", "lib/rujitsu/numeric.rb", "lib/rujitsu/object.rb", "lib/rujitsu/range.rb", "lib/rujitsu/string.rb", "lib/ujitsu.rb"]
16
+ spec.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Rujitsu", "--main", "README.rdoc"]
24
17
 
25
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- else
27
- end
28
- else
29
- end
18
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
+ spec.bindir = "exe"
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.12"
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rspec", "~> 3.0"
26
+ spec.add_development_dependency "timecop"
30
27
  end
metadata CHANGED
@@ -1,31 +1,78 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rujitsu
3
- version: !ruby/object:Gem::Version
4
- hash: 21
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 3
9
- - 3
10
- version: 0.3.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Brightbox Systems Ltd
8
+ - Caius Durling
9
+ - Rahoul Baruah
14
10
  autorequire:
15
- bindir: bin
11
+ bindir: exe
16
12
  cert_chain: []
17
-
18
- date: 2010-06-03 00:00:00 +01:00
19
- default_executable:
20
- dependencies: []
21
-
13
+ date: 2010-06-03 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: bundler
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.12'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '1.12'
29
+ - !ruby/object:Gem::Dependency
30
+ name: rake
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '10.0'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '10.0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: rspec
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '3.0'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '3.0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: timecop
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
22
71
  description: Various helper methods to smooth over Ruby development
23
72
  email: hello@brightbox.co.uk
24
73
  executables: []
25
-
26
74
  extensions: []
27
-
28
- extra_rdoc_files:
75
+ extra_rdoc_files:
29
76
  - CHANGELOG
30
77
  - README.rdoc
31
78
  - lib/rujitsu.rb
@@ -38,13 +85,17 @@ extra_rdoc_files:
38
85
  - lib/rujitsu/range.rb
39
86
  - lib/rujitsu/string.rb
40
87
  - lib/ujitsu.rb
41
- - tasks/rspec.rake
42
- files:
88
+ files:
89
+ - ".gitignore"
90
+ - ".travis.yml"
43
91
  - CHANGELOG
92
+ - Gemfile
93
+ - LICENSE
44
94
  - README.rdoc
45
95
  - Rakefile
46
96
  - lib/rujitsu.rb
47
97
  - lib/rujitsu/all.rb
98
+ - lib/rujitsu/date.rb
48
99
  - lib/rujitsu/fixnum.rb
49
100
  - lib/rujitsu/grammar.rb
50
101
  - lib/rujitsu/inspect.rb
@@ -54,54 +105,34 @@ files:
54
105
  - lib/rujitsu/string.rb
55
106
  - lib/ujitsu.rb
56
107
  - rujitsu.gemspec
57
- - spec/fixnum_spec.rb
58
- - spec/numeric_spec.rb
59
- - spec/object_spec.rb
60
- - spec/range_spec.rb
61
- - spec/spec.opts
62
- - spec/spec_helper.rb
63
- - spec/string_spec.rb
64
- - tasks/rspec.rake
65
- - Manifest
66
- has_rdoc: true
67
108
  homepage: http://github.com/brightbox/rujitsu
68
- licenses: []
69
-
109
+ licenses:
110
+ - MIT
111
+ metadata: {}
70
112
  post_install_message:
71
- rdoc_options:
72
- - --line-numbers
73
- - --inline-source
74
- - --title
113
+ rdoc_options:
114
+ - "--line-numbers"
115
+ - "--inline-source"
116
+ - "--title"
75
117
  - Rujitsu
76
- - --main
118
+ - "--main"
77
119
  - README.rdoc
78
- require_paths:
120
+ require_paths:
79
121
  - lib
80
- required_ruby_version: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ requirements:
83
124
  - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
87
- - 0
88
- version: "0"
89
- required_rubygems_version: !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
92
129
  - - ">="
93
- - !ruby/object:Gem::Version
94
- hash: 11
95
- segments:
96
- - 1
97
- - 2
98
- version: "1.2"
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
99
132
  requirements: []
100
-
101
- rubyforge_project: rujitsu
102
- rubygems_version: 1.3.7
133
+ rubyforge_project:
134
+ rubygems_version: 2.6.10
103
135
  signing_key:
104
- specification_version: 3
136
+ specification_version: 4
105
137
  summary: Various helper methods to smooth over Ruby development
106
138
  test_files: []
107
-
data/Manifest DELETED
@@ -1,23 +0,0 @@
1
- CHANGELOG
2
- README.rdoc
3
- Rakefile
4
- lib/rujitsu.rb
5
- lib/rujitsu/all.rb
6
- lib/rujitsu/fixnum.rb
7
- lib/rujitsu/grammar.rb
8
- lib/rujitsu/inspect.rb
9
- lib/rujitsu/numeric.rb
10
- lib/rujitsu/object.rb
11
- lib/rujitsu/range.rb
12
- lib/rujitsu/string.rb
13
- lib/ujitsu.rb
14
- rujitsu.gemspec
15
- spec/fixnum_spec.rb
16
- spec/numeric_spec.rb
17
- spec/object_spec.rb
18
- spec/range_spec.rb
19
- spec/spec.opts
20
- spec/spec_helper.rb
21
- spec/string_spec.rb
22
- tasks/rspec.rake
23
- Manifest
data/spec/fixnum_spec.rb DELETED
@@ -1,289 +0,0 @@
1
- require File.join(File.dirname(__FILE__) + "/spec_helper")
2
-
3
- describe Fixnum do
4
-
5
- describe "random_vowels" do
6
- it "should be a method" do
7
- Fixnum.instance_methods.should include("random_vowels")
8
- 5.should respond_to(:random_vowels)
9
- end
10
-
11
- it "should be alias'd as random_vowel" do
12
- Fixnum.instance_methods.should include("random_vowel")
13
- 5.should respond_to(:random_vowel)
14
- end
15
-
16
- it "should produce a string of random vowels" do
17
- [ 5, 10, 15, 25, 29 ].each do |i|
18
- str = i.random_vowels
19
- str.should be_a_kind_of( String )
20
- str.length.should == i
21
- str.should match( /^[aeiou]+$/ )
22
- end
23
- end
24
-
25
- it "should exclude a character" do
26
- # Given there are 5 vowels, 5^3 should
27
- # contain at least one instance of every vowel
28
- str = (5**3).random_vowels(:except => "a")
29
- str.should be_a_kind_of( String )
30
- str.length.should == 5**3
31
- str.should_not match(/a/)
32
- end
33
-
34
- it "should exclude characters" do
35
- str = (5**3).random_vowels(:except => %w(i o u))
36
- str.should be_a_kind_of( String )
37
- str.length.should == 5**3
38
- str.should_not match(/iou/)
39
- end
40
- end
41
-
42
- describe "random_consonants" do
43
- it "should be a method" do
44
- Fixnum.instance_methods.should include("random_consonants")
45
- 5.should respond_to(:random_consonants)
46
- end
47
-
48
- it "should be alias'd as random_consonant" do
49
- Fixnum.instance_methods.should include("random_consonant")
50
- 5.should respond_to(:random_consonant)
51
- end
52
-
53
- it "should produce a string of random consonants" do
54
- [ 5, 10, 15, 25, 29 ].each do |i|
55
- str = i.random_consonants
56
-
57
- str.should be_a_kind_of( String )
58
- str.length.should == i
59
- str.should match( /^[bcdfghjklmnpqrstvwxyz]+$/ )
60
- end
61
- end
62
-
63
- it "should exclude a character" do
64
- # 26^5 should be large enough to get at least one
65
- # instance of every character.
66
- str = (26**2).random_consonants(:except => "c")
67
-
68
- str.should be_a_kind_of( String )
69
- str.length.should == (26**2)
70
- str.should_not match(/c/)
71
- end
72
-
73
- it "should exclude characters" do
74
- # 26^5 should be large enough to get at least one
75
- # instance of every character.
76
- str = (26**2).random_consonants(:except => %w(c d f))
77
-
78
- str.should be_a_kind_of( String )
79
- str.length.should == (26**2)
80
- str.should_not match(/cdf/)
81
- end
82
- end
83
-
84
- describe "random_letters" do
85
- it "should be a method" do
86
- Fixnum.instance_methods.should include("random_letters")
87
- 5.should respond_to(:random_letters)
88
- end
89
-
90
- it "should be alias'd as random_letter" do
91
- Fixnum.instance_methods.should include("random_letter")
92
- 5.should respond_to(:random_letter)
93
- end
94
-
95
- it "should produce a string of random letters" do
96
- [ 5, 10, 15, 25, 29 ].each do |i|
97
- str = i.random_letters
98
- str.should be_a_kind_of( String )
99
- str.length.should == i
100
- str.should match( /^[a-z]+$/ )
101
- end
102
- end
103
-
104
- it "should exclude a character" do
105
- # 26^5 should be large enough to get at least one
106
- # instance of every character.
107
- str = (26**2).random_letters(:except => "d")
108
-
109
- str.should be_a_kind_of( String )
110
- str.length.should == (26**2)
111
- str.should_not match(/d/)
112
- end
113
-
114
- it "should exclude characters" do
115
- # 26^5 should be large enough to get at least one
116
- # instance of every character.
117
- str = (26**2).random_letters(:except => %w(c d f))
118
-
119
- str.should be_a_kind_of( String )
120
- str.length.should == (26**2)
121
- str.should_not match(/cdf/)
122
- end
123
- end
124
-
125
- describe "random_numbers" do
126
- it "should be a method" do
127
- Fixnum.instance_methods.should include("random_numbers")
128
- 5.should respond_to(:random_numbers)
129
- end
130
-
131
- it "should be alias'd as random_number" do
132
- Fixnum.instance_methods.should include("random_number")
133
- 5.should respond_to(:random_number)
134
- end
135
-
136
- it "should produce a string of random numbers" do
137
- [ 5, 10, 15, 25, 29 ].each do |i|
138
- num = i.random_numbers
139
- num.should be_a_kind_of( String )
140
- num.length.should == i
141
- num.should match( /^[0-9]+$/ )
142
- end
143
- end
144
-
145
- it "should contain only the number 5 upwards" do
146
- num = 5.random_numbers(:from => 5)
147
-
148
- num.should be_a_kind_of(String)
149
-
150
- # Check each digit is greater than or equal to 5
151
- string_to_integers(num).each do |i|
152
- i.should be_a_kind_of(Integer)
153
- i.should >= 5
154
- end
155
- end
156
-
157
- it "should contain on the number 5 downwards" do
158
- num = 5.random_numbers(:to => 5)
159
-
160
- num.should be_a_kind_of(String)
161
-
162
- # Check each digit is lower than or equal to 5
163
- string_to_integers(num).each do |i|
164
- i.should be_a_kind_of(Integer)
165
- i.should <= 5
166
- end
167
- end
168
-
169
- it "should contain numbers between 4 and 6" do
170
- num = 5.random_numbers(:from => 4, :to => 6)
171
-
172
- num.should be_a_kind_of(String)
173
-
174
- # Check each digit is lower than or equal to 4..
175
- # ..and greater than or equal to 6
176
- string_to_integers(num).each do |i|
177
- i.should be_a_kind_of(Integer)
178
- i.should >= 4
179
- i.should <= 6
180
- end
181
- end
182
-
183
- it "should create an even number" do
184
- num = 5.random_numbers(:only => :even)
185
-
186
- num.should be_a_kind_of(String)
187
- (num.to_i % 2).should == 0
188
- end
189
-
190
- it "should create an odd number" do
191
- num = 5.random_numbers(:only => :odd)
192
-
193
- num.should be_a_kind_of(String)
194
- (num.to_i % 2).should_not == 0
195
- end
196
-
197
- private
198
-
199
- def string_to_integers(str)
200
- str.split("").map {|x| x.to_i }
201
- end
202
- end
203
-
204
- describe "random_characters" do
205
- it "should be a method" do
206
- Fixnum.instance_methods.should include("random_characters")
207
- 5.should respond_to(:random_numbers)
208
- end
209
-
210
- it "should be alias'd as random_character" do
211
- Fixnum.instance_methods.should include("random_character")
212
- 5.should respond_to(:random_character)
213
- end
214
-
215
- it "should produce a string of random letters and numbers" do
216
- [ 5, 10, 15, 25, 29 ].each do |i|
217
- str = i.random_characters
218
- str.should be_a_kind_of( String )
219
- str.length.should == i
220
- str.should match( /^[a-z0-9]+$/ )
221
- end
222
- end
223
-
224
-
225
- it "should exclude a character" do
226
- # 26^5 should be large enough to get at least one
227
- # instance of every character.
228
- str = (26**2).random_characters(:except => "c")
229
-
230
- str.should be_a_kind_of( String )
231
- str.length.should == (26**2)
232
- str.should_not match(/c/)
233
- end
234
-
235
-
236
- it "should exclude characters" do
237
- # 26^5 should be large enough to get at least one
238
- # instance of every character.
239
- str = (26**2).random_characters(:except => %w(c d f))
240
-
241
- str.should be_a_kind_of( String )
242
- str.length.should == (26**2)
243
- str.should_not match(/cdf/)
244
- end
245
- end
246
-
247
-
248
- describe "random_hex_characters" do
249
- it "should be a method" do
250
- Fixnum.instance_methods.should include("random_hex_characters")
251
- 5.should respond_to(:random_hex_character)
252
- end
253
-
254
- it "should be alias'd as random_hex_character" do
255
- Fixnum.instance_methods.should include("random_hex_character")
256
- 5.should respond_to(:random_hex_character)
257
- end
258
-
259
- it "should produce a string of random hex characters" do
260
- [ 5, 10, 15, 25, 29, (26**2) ].each do |i|
261
- str = i.random_hex_characters
262
- str.should be_a_kind_of( String )
263
- str.length.should == i
264
- str.should match( /^[a-f0-9]+$/ )
265
- end
266
- end
267
-
268
- it "should exclude a character" do
269
- # 26^5 should be large enough to get at least one
270
- # instance of every character.
271
- str = (26**2).random_hex_characters(:except => "c")
272
-
273
- str.should be_a_kind_of( String )
274
- str.length.should == (26**2)
275
- str.should_not match(/c/)
276
- end
277
-
278
- it "should exclude characters" do
279
- # 26^5 should be large enough to get at least one
280
- # instance of every character.
281
- str = (26**2).random_hex_characters(:except => %w(c d f))
282
-
283
- str.should be_a_kind_of( String )
284
- str.length.should == (26**2)
285
- str.should_not match(/cdf/)
286
- end
287
- end
288
-
289
- end
data/spec/numeric_spec.rb DELETED
@@ -1,14 +0,0 @@
1
- require File.join(File.dirname(__FILE__) + "/spec_helper")
2
-
3
- describe Numeric, "to_cents" do
4
- it "should be a method" do
5
- Numeric.instance_methods.should include("to_cents")
6
- Numeric.new.should respond_to(:to_cents)
7
- end
8
-
9
- it "should convert float values to \"cents\"" do
10
- [ 5, 10, 15, 25, 29 ].each do |i|
11
- i.to_cents.should == (i*100).to_i
12
- end
13
- end
14
- end
data/spec/object_spec.rb DELETED
@@ -1,27 +0,0 @@
1
- require File.join(File.dirname(__FILE__) + "/spec_helper")
2
-
3
- describe Object do
4
- describe "testing membership of a container" do
5
- it "should report whether it is in an array of objects" do
6
- @object = Object.new
7
- @positive = [@object, Object.new, Object.new]
8
- @negative = [Object.new, Object.new, Object.new]
9
-
10
- @object.in?(@positive).should be_true
11
- @object.in?(@negative).should be_false
12
- end
13
-
14
- it "should report whether it is equal if given a non-container" do
15
- @object = Object.new
16
- @another = Object.new
17
-
18
- @object.in?(@object).should be_true
19
- @object.in?(@another).should be_false
20
- end
21
-
22
- it "should not be a member of nil" do
23
- @object = Object.new
24
- @object.in?(nil).should be_false
25
- end
26
- end
27
- end
data/spec/range_spec.rb DELETED
@@ -1,151 +0,0 @@
1
- require File.join(File.dirname(__FILE__) + "/spec_helper")
2
-
3
- describe Range do
4
-
5
- describe "to_random_i" do
6
- it "should be a method" do
7
- Range.instance_methods.should include("to_random_i")
8
- end
9
-
10
- it "should return a random number from the range" do
11
- setup_range
12
-
13
- # First check with an absolute
14
- result = @range.to_random_i
15
- result.should be_a_kind_of(Fixnum)
16
- result.should == 4
17
-
18
- # And then one that is random
19
- res = (3..5).to_random_i
20
- res.should be_a_kind_of(Fixnum)
21
- [3,4,5].should include(res)
22
- end
23
- end
24
-
25
- describe "random_letters" do
26
- it "should be a method" do
27
- Range.instance_methods.should include("random_letters")
28
- (0..1).should respond_to(:random_letters)
29
- end
30
-
31
- it "should generate a string of random letters" do
32
- setup_range
33
-
34
- str = @range.random_letters
35
- str.length.should == 4
36
- str.should match( /^[a-z]+$/ )
37
- end
38
- end
39
-
40
- describe "random_numbers" do
41
- it "should be a method" do
42
- Range.instance_methods.should include("random_numbers")
43
- (0..1).should respond_to(:random_numbers)
44
- end
45
-
46
- it "should generate a string of random numbers" do
47
- setup_range
48
-
49
- str = @range.random_numbers
50
- str.length.should == 4
51
- str.should match( /^[0-9]+$/ )
52
- end
53
-
54
- it "should contain only the number 5 upwards" do
55
- setup_range
56
-
57
- str = @range.random_numbers :from => 5
58
- str.should be_a_kind_of(String)
59
-
60
- string_to_integers(str).each do |i|
61
- i.should be_a_kind_of(Integer)
62
- i.should >= 5
63
- end
64
- end
65
-
66
- it "should contain only the number 5 downwards" do
67
- setup_range
68
-
69
- str = @range.random_numbers :to => 5
70
- str.should be_a_kind_of(String)
71
-
72
- string_to_integers(str).each do |i|
73
- i.should be_a_kind_of(Integer)
74
- i.should <= 5
75
- end
76
- end
77
-
78
- it "should contain only numbers between 4 and 6" do
79
- setup_range
80
-
81
- str = @range.random_numbers :from => 4, :to => 6
82
- str.should be_a_kind_of(String)
83
-
84
- string_to_integers(str).each do |i|
85
- i.should be_a_kind_of(Integer)
86
- i.should >= 4
87
- i.should <= 6
88
- end
89
- end
90
-
91
- it "should create an even number" do
92
- setup_range
93
-
94
- str = @range.random_numbers :only => :even
95
-
96
- str.should be_a_kind_of(String)
97
- (str.to_i % 2).should == 0
98
- end
99
-
100
- it "should create an odd number" do
101
- setup_range
102
-
103
- str = @range.random_numbers :only => :odd
104
-
105
- str.should be_a_kind_of(String)
106
- (str.to_i % 2).should_not == 0
107
- end
108
-
109
- private
110
-
111
- def string_to_integers(str)
112
- str.split("").map {|x| x.to_i }
113
- end
114
- end
115
-
116
- describe "random_letters" do
117
- it "should be a method" do
118
- Range.instance_methods.should include("random_characters")
119
- (0..1).should respond_to(:random_characters)
120
- end
121
-
122
- it "should generate a string of random letters" do
123
- setup_range
124
-
125
- str = @range.random_characters
126
- str.length.should == 4
127
- str.should match( /^[a-z0-9]+$/ )
128
- end
129
- end
130
-
131
- describe "#random_hex_characters" do
132
- it "should be a method" do
133
- Range.instance_methods.should include("random_hex_characters")
134
- (0..1).should respond_to("random_hex_characters")
135
- end
136
-
137
- it "should generate a string of random hex characters" do
138
- setup_range
139
-
140
- str = @range.random_hex_characters
141
- str.length.should == 4
142
- str.should match(/^[a-f0-9]+$/)
143
- end
144
- end
145
-
146
-
147
- def setup_range
148
- @range = (3..5)
149
- @range.should_receive(:to_random_i).and_return(4)
150
- end
151
- end
data/spec/spec.opts DELETED
@@ -1,4 +0,0 @@
1
- --colour
2
- --format progress
3
- --loadby mtime
4
- --reverse
data/spec/spec_helper.rb DELETED
@@ -1 +0,0 @@
1
- require File.join(File.dirname(__FILE__) + "/../lib/rujitsu")
data/spec/string_spec.rb DELETED
@@ -1,99 +0,0 @@
1
- require File.join(File.dirname(__FILE__) + "/spec_helper")
2
-
3
- describe String, "to_url" do
4
-
5
- it "should remove non-valid characters" do
6
- "a!@£$".to_url.should == "a"
7
- end
8
-
9
- it "should convert spaces to hyphens" do
10
- "a string".to_url.should == "a-string"
11
- end
12
-
13
- it "should downcase entire string" do
14
- "THISISASTRING".to_url.should == "thisisastring"
15
- end
16
-
17
- it "should not touch [\\-0-9a-z]" do
18
- "post-number-12345".to_url.should == "post-number-12345"
19
- end
20
-
21
- end
22
-
23
- describe String, "truncate" do
24
-
25
- it "should return shorter string unmodified with no params" do
26
- str = 30.random_characters
27
- # default length is 50
28
- str.truncate.should == str
29
- end
30
-
31
- it "should return shorter string unmodified with length param" do
32
- str = "0123456789" # length 10
33
- trunced = str.truncate(:length => 30)
34
- trunced.length.should == 10
35
- trunced.should == str
36
- end
37
-
38
- it "should return shorter string unmodified with suffix param" do
39
- str = "0123456789" # length 10
40
- trunced = str.truncate(:suffix => "abcd")
41
- trunced.length.should == 10
42
- trunced.should == str
43
- end
44
-
45
- it "should return shorter string unmodified with length and suffix params" do
46
- str = "0123456789" # length 10
47
- trunced = str.truncate(:length => 30, :suffix => "abcd")
48
- trunced.length.should == 10
49
- trunced.should == str
50
- end
51
-
52
- it "should truncate longer string with no params" do
53
- str = "this is a string with a really long length just to get above 50 characters"
54
- # default length is 50
55
- # default suffix is "..."
56
- trunced = str.truncate
57
- trunced.length.should == 50
58
- trunced.should == "this is a string with a really long length just..."
59
- end
60
-
61
- it "should truncate longer string with length param" do
62
- str = "123456789123456789" # length 11
63
- trunced = str.truncate(:length => 10)
64
- trunced.length.should == 10
65
- trunced.should == "1234567..."
66
- end
67
-
68
- it "should truncate longer string with suffix param" do
69
- str = "this is a string with a really long length just to get above 50 characters"
70
- # default length is 50
71
- trunced = str.truncate(:suffix => "..abc")
72
- trunced.length.should == 50
73
- trunced.should == "this is a string with a really long length ju..abc"
74
- end
75
-
76
- it "should truncate longer string with length and suffix param" do
77
- str = "123456789123456789" # length 11
78
- trunced = str.truncate(:length => 10, :suffix => "abde")
79
- trunced.length.should == 10
80
- trunced.should == "123456abde"
81
- end
82
-
83
- it "should return truncated string with no suffix if suffix param is false" do
84
- str = "this is a string with a really long length just to get above 50 characters"
85
- # default length is 50
86
- trunced = str.truncate(:suffix => false)
87
- trunced.length.should == 50
88
- trunced.should == "this is a string with a really long length just to"
89
- end
90
-
91
- it "should return a string of length specified even when the suffix is longer" do
92
- str = "this is a string" # => 16
93
- suff = "this is a longer string" # => 23
94
- trunced = str.truncate(:suffix => suff, :length => 10)
95
- trunced.should == "this is a "
96
- trunced.length.should == 10
97
- end
98
-
99
- end
data/tasks/rspec.rake DELETED
@@ -1,18 +0,0 @@
1
- # Borrowed from http://github.com/rsim/ruby-plsql/tree/master/tasks/rspec.rake
2
- # Github++
3
- begin
4
- require "spec"
5
- rescue LoadError
6
- require "rubygems"
7
- require "spec"
8
- end
9
-
10
- begin
11
- require "spec/rake/spectask"
12
- rescue LoadError
13
- puts <<-EOS
14
- To use rspec for testing you must install rspec gem:
15
- [sudo] gem install rspec
16
- EOS
17
- exit(0)
18
- end