QSID 0.4 → 1.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.
Files changed (2) hide show
  1. data/lib/QSID.rb +195 -140
  2. metadata +1 -1
data/lib/QSID.rb CHANGED
@@ -1,149 +1,204 @@
1
1
  =begin
2
- /***
3
- * QSID
4
- * @author - Skylar Schipper
5
- * @copyright - (2011 - 2012) (c) QuietSight Inc
6
- * (All rights reserved)
7
- *
8
- * QSID.rb
9
- * 10/09/2011
10
- *
11
- /////////////////////////////////////////////////////////
12
-
13
- Redistribution and use in source and binary forms, with or without
14
- modification, are permitted provided that the following conditions are met:
15
- *Redistributions of source code must retain the above copyright
16
- notice, this list of conditions and the following disclaimer.
17
- *Redistributions in binary form must reproduce the above copyright
18
- notice, this list of conditions and the following disclaimer in the
19
- documentation and/or other materials provided with the distribution.
20
- *Neither the name of Skylar Schipper nor the names of any contributors may
21
- be used to endorse or promote products derived from this software without
22
- specific prior written permission.
23
-
24
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
25
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
- DISCLAIMED. IN NO EVENT SHALL SKYLAR SCHIPPER OR QUIET SIGHT INC BE LIABLE FOR ANY
28
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
-
35
- /////////////////////////////////////////////////////////
36
- *
37
- *
38
- *
39
- *
40
- *
41
- *
42
- ***/
43
- =end
44
-
45
- class QSID
46
-
47
- ## This is what is called to create a new ID
48
- def self.newID
49
- self.id = self._makeID
50
- return self.id
51
- end
52
-
53
- private
54
- # Timestamp
55
- def self.timestamp
56
- @timestamp
57
- end
58
- def self.timestamp=(time)
59
- @timestamp = time
60
- end
61
- # Year
62
- def self.year
63
- @year
64
- end
65
- def self.year=(year)
66
- @year = year
67
- end
68
- # Month
69
- def self.month
70
- @month
71
- end
72
- def self.month=(month)
73
- if month < 10
74
- month = "0#{month}"
75
- end
76
- @month = month
77
- end
78
- # Day
79
- def self.day
80
- @day
81
- end
82
- def self.day=(day)
83
- if day < 10
84
- day = "0#{day}"
85
- end
86
- @day = day
87
- end
88
- # Metadata
89
- def self.meta
90
- @meta
91
- end
92
- def self.meta=(meta)
93
- @meta = meta
94
- end
95
- # rand 1
96
- def self.rand1
97
- @rand1
98
- end
99
- def self.rand1=(r1)
100
- @rand1 = r1
101
- end
102
- # rand 2
103
- def self.rand2
104
- @rand2
105
- end
106
- def self.rand2=(r2)
107
- @rand2 = r2
108
- end
2
+ /***
3
+ * QSID
4
+ * @author - Skylar Schipper
5
+ * @copyright - (2011 - 2012) (c) QuietSight Inc
6
+ * (All rights reserved)
7
+ *
8
+ * QSID.rb
9
+ * 10/09/2011
10
+ *
11
+ /////////////////////////////////////////////////////////
109
12
 
110
- def self.id
111
- @id
112
- end
113
- def self.id=(id)
114
- @id = id
115
- end
13
+ Redistribution and use in source and binary forms, with or without
14
+ modification, are permitted provided that the following conditions are met:
15
+ *Redistributions of source code must retain the above copyright
16
+ notice, this list of conditions and the following disclaimer.
17
+ *Redistributions in binary form must reproduce the above copyright
18
+ notice, this list of conditions and the following disclaimer in the
19
+ documentation and/or other materials provided with the distribution.
20
+ *Neither the name of Skylar Schipper nor the names of any contributors may
21
+ be used to endorse or promote products derived from this software without
22
+ specific prior written permission.
116
23
 
24
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
25
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
+ DISCLAIMED. IN NO EVENT SHALL SKYLAR SCHIPPER OR QUIET SIGHT INC BE LIABLE FOR ANY
28
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
117
34
 
118
- def self._makeID
119
- time = Time.now
120
- id = ''
121
- self.year = time.year.to_i - 2000
122
- self.month = time.month
123
- self.day = time.day
124
- self.timestamp = time.to_i
125
- self.meta = self.__genMeta
126
- self.rand1 = self.__genRand1
127
- self.rand2 = self.__genRand2
128
- id = id + "#{self.year}"
129
- id = id + "#{self.month}"
130
- id = id + "#{self.day}"
131
- id = id + "#{self.timestamp}"
132
- id = id + "#{self.meta}"
133
- id = id + "#{self.rand1}"
134
- id = id + "#{self.rand2}"
135
-
136
- return id
35
+ /////////////////////////////////////////////////////////
36
+ *
37
+ *
38
+ *
39
+ *
40
+ *
41
+ *
42
+ ***/
43
+ =end
44
+ module QSID
45
+ def self.newID
46
+ self::Helper.makeID
137
47
  end
138
48
 
139
- def self.__genMeta
140
- self.meta = 13000
141
- return self.meta
142
- end
143
- def self.__genRand1
144
- return rand(999999-100000)
49
+ ###
50
+ #
51
+ # => Parser
52
+ #
53
+ ###
54
+ class Parser
55
+ @id = nil
56
+ def id
57
+ @id
58
+ end
59
+ def id=(id)
60
+ @id = id
61
+ end
62
+
63
+ def initialize(id)
64
+ @id = id
65
+ end
66
+
67
+ # => Year
68
+ def year
69
+ @id[0..1]
70
+ end
71
+ # => Month
72
+ def month
73
+ @id[2..3]
74
+ end
75
+ # => Day
76
+ def day
77
+ @id[4..5]
78
+ end
79
+ # => Timestamp
80
+ def timestamp
81
+ @id[6..15]
82
+ end
83
+ # => Metadata
84
+ def metadata
85
+ @id[16..21]
86
+ end
87
+ def meta(m)
88
+ meta = self.metadata
89
+ if m == 0
90
+ meta[0..0]
91
+ elsif m == 1
92
+ meta[1..1]
93
+ elsif m == 2
94
+ meta[2..2]
95
+ elsif m == 3
96
+ meta[3..3]
97
+ elsif m == 4
98
+ meta[4..4]
99
+ elsif m == 5
100
+ meta[5..5]
101
+ end
102
+ end
103
+
104
+ # => Rand1
105
+ def rand1
106
+ @id[22..27]
107
+ end
108
+ # => Rand2
109
+ def rand2
110
+ @id[28..32]
111
+ end
112
+
113
+ # => Is Valid
114
+ def valid?
115
+ meta = self.metadata
116
+ id = meta[0..0].to_i
117
+ if id != 1
118
+ false
119
+ else
120
+ true
121
+ end
122
+ end
123
+
124
+ def created_by
125
+ meta = self.metadata
126
+ cb = meta[1..1].to_i
127
+ if cb == 1
128
+ "PHP"
129
+ elsif cb == 2
130
+ "Objective-C"
131
+ elsif cb == 3
132
+ "Ruby"
133
+ elsif cb == 4
134
+ "Java"
135
+ elsif cb == 5
136
+ "Javascript"
137
+ elsif cb == 6
138
+ "C"
139
+ end
140
+ end
141
+
145
142
  end
146
- def self.__genRand2
147
- return rand(9999-1000)
143
+ ###
144
+ #
145
+ # => Helper Class
146
+ #
147
+ ###
148
+ class Helper
149
+ def self.makeID
150
+ time = Time.now
151
+ id = ''
152
+ id = id + "#{self.year(time.year)}"
153
+ id = id + "#{self.month(time.month)}"
154
+ id = id + "#{self.day(time.day)}"
155
+ id = id + "#{time.to_i}"
156
+ id = id + "#{self.__genMeta}"
157
+ id = id + "#{self.__genRand1}"
158
+ id = id + "#{self.__genRand2}"
159
+ id
160
+ end
161
+
162
+
163
+ ###
164
+ ## => Begin Private Methods
165
+ ###
166
+ private
167
+ ###
168
+ ## => Year
169
+ ###
170
+ def self.year(year)
171
+ year.to_i - 2000
172
+ end
173
+ ###
174
+ ## => Months
175
+ ###
176
+ def self.month(month)
177
+ if month < 10
178
+ month = "0#{month}"
179
+ end
180
+ month
181
+ end
182
+
183
+ ###
184
+ ## => Day
185
+ ###
186
+ def self.day(day)
187
+ if day < 10
188
+ day = "0#{day}"
189
+ end
190
+ day
191
+ end
192
+
193
+ def self.__genMeta
194
+ 130000
195
+ end
196
+ def self.__genRand1
197
+ rand(999999-100000)
198
+ end
199
+ def self.__genRand2
200
+ rand(9999-1000)
201
+ end
202
+
148
203
  end
149
204
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: QSID
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '1.0'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: