rujitsu 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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