NextNumber 0.0.1
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.
- data/Gemfile +4 -0
- data/Rakefile +27 -0
- data/lib/NextNumber.rb +2 -0
- data/lib/NextNumber/standard_types.rb +59 -0
- data/lib/NextNumber/version.rb +3 -0
- metadata +82 -0
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require 'rake'
|
3
|
+
require 'rake/testtask'
|
4
|
+
begin
|
5
|
+
require 'rake/rdoctask'
|
6
|
+
rescue
|
7
|
+
require 'rdoc/task'
|
8
|
+
end
|
9
|
+
desc 'Default: run unit tests.'
|
10
|
+
desc 'Run: rake test'
|
11
|
+
task :default => :test
|
12
|
+
|
13
|
+
desc 'Test the framework plugin.'
|
14
|
+
Rake::TestTask.new(:test) do |t|
|
15
|
+
t.libs << 'lib'
|
16
|
+
t.pattern = 'test/**/*_test.rb'
|
17
|
+
t.verbose = true
|
18
|
+
end
|
19
|
+
|
20
|
+
desc 'Generate documentation for the framework plugin.'
|
21
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
22
|
+
rdoc.rdoc_dir = 'rdoc'
|
23
|
+
rdoc.title = 'Framework'
|
24
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
25
|
+
rdoc.rdoc_files.include('README')
|
26
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
27
|
+
end
|
data/lib/NextNumber.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
class NilClass
|
3
|
+
def next_number(qty=1)
|
4
|
+
end
|
5
|
+
|
6
|
+
def -(number)
|
7
|
+
end
|
8
|
+
|
9
|
+
def region_to(qty=1)
|
10
|
+
end
|
11
|
+
|
12
|
+
def region_sizeof(number)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class String
|
17
|
+
#得到字符串的下一个编号,是对字符串中数值区域的值的增加,
|
18
|
+
#如果该字符串没有数值区域,那么返回原字符串
|
19
|
+
#例如
|
20
|
+
# 'abc'.next_number -> abc
|
21
|
+
# 'abc100'.next_number ->abc101
|
22
|
+
# '100'.next_number ->101
|
23
|
+
# '100abc'.next_number ->101abc
|
24
|
+
# '0100abc'.next_number ->0101abc
|
25
|
+
# '0099abc'.next_number ->0100abc
|
26
|
+
# "abc100".next_number(10) ->"abc110"
|
27
|
+
# "100abc".next_number(10) ->"110abc"
|
28
|
+
# "100abc100".next_number(10) ->"100abc110"
|
29
|
+
def next_number(qty=1)
|
30
|
+
self.reverse.sub(/(0*)\d+/) { |match| (match.reverse.to_i+qty.to_i).to_s.rjust(match.length,"0").reverse }.reverse
|
31
|
+
end
|
32
|
+
|
33
|
+
#两个字符串相减,得到两个字符串之间相减的数量
|
34
|
+
#例如:
|
35
|
+
# "abc"-"abc" ->0
|
36
|
+
# "abc110"-"abc100" ->10
|
37
|
+
# "110abc"-"100abc" ->10
|
38
|
+
def -(number)
|
39
|
+
match1 = /\d+/.match(self)
|
40
|
+
match2 = /\d+/.match(number)
|
41
|
+
(match1 && match2) ? match1[0].to_i - match2[0].to_i : 0
|
42
|
+
end
|
43
|
+
|
44
|
+
#从当前区段得到下一区段,区段的间隔由qty指定,区段包括首尾部分
|
45
|
+
#例如:
|
46
|
+
# "a100".region_to(1) ->"a100"
|
47
|
+
# "a100".region_to(2) ->"a101"
|
48
|
+
def region_to(qty=1)
|
49
|
+
raise "参数不允许为0" if qty==0
|
50
|
+
next_number(qty<0? qty+1: qty-1)
|
51
|
+
end
|
52
|
+
#计算两个区段之间的大小,区段是包含首尾部分
|
53
|
+
#例如:
|
54
|
+
# "a100".region_sizeof("a100") ->1
|
55
|
+
# "a100".region_sizeof("a101") ->2
|
56
|
+
def region_sizeof(number)
|
57
|
+
(self-number).abs+1
|
58
|
+
end
|
59
|
+
end
|
metadata
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: NextNumber
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- 尜芈爨
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-06-01 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.3'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.3'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description: next number
|
47
|
+
email: 1244002@qq.com
|
48
|
+
executables: []
|
49
|
+
extensions: []
|
50
|
+
extra_rdoc_files: []
|
51
|
+
files:
|
52
|
+
- Gemfile
|
53
|
+
- Rakefile
|
54
|
+
- lib/NextNumber.rb
|
55
|
+
- lib/NextNumber/version.rb
|
56
|
+
- lib/NextNumber/standard_types.rb
|
57
|
+
homepage: http://www.huolg.com
|
58
|
+
licenses:
|
59
|
+
- MIT
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options: []
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
requirements: []
|
77
|
+
rubyforge_project:
|
78
|
+
rubygems_version: 1.8.25
|
79
|
+
signing_key:
|
80
|
+
specification_version: 3
|
81
|
+
summary: order number
|
82
|
+
test_files: []
|