friendly_extensions 0.0.66 → 0.0.69

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/string_and_more.rb +107 -91
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: beaab51fa38a34324b21d2870403e656aac2cb7b
4
- data.tar.gz: 678e03682c2a930971c13bb10719e5ee8cc64255
3
+ metadata.gz: c725237024baa680e26dfdb5d18efdc1a4a68fd3
4
+ data.tar.gz: 913e3aeeca23e2695134b9714b440a80da38306b
5
5
  SHA512:
6
- metadata.gz: e125164853958b09b6be5ee0018aad8dfc6bd3c0f9f2e25fe23a495a7b1b9324195f9fa18d1badf903c3a10b698f789e9f01323c103d39398f410ba653d3c750
7
- data.tar.gz: 3454e702a99f234eb593ad977c10e6c91389b86db06905e81617e4b478d2f57a66b6154b4ebf8114affb4128f978dc9aba0b59c4de2931d757d5bbbe5a21250c
6
+ metadata.gz: e35b6b2cc1dacc8ff9c7f509dceadfed154392d48c14568201a3387bc83dce55721d529accbd0de48fc19d52d4d0732109e7cd9aceba11b3316be00af8974f18
7
+ data.tar.gz: 3124a5eb010a03f4ed34984aa2336823c6c8435fd27de812cf33e8a74692618ab64ffc576ac017a782c0a87bde8b70ea22337679b1a272760cc26895fa95f858
@@ -22,6 +22,10 @@ module StringAndMore
22
22
 
23
23
  # Array with all strings which can be encrypted
24
24
  STRING_BASE = STRING_CHARSETS.values.join("")
25
+
26
+ # Encode String Base with custom secrect key
27
+ #SHUFFLED_STRING_BASE = STRING_CHARSETS.values.sort_by {|y| STRING_CHARSETS.values.map.with_index {|x,i| STRING_BASE.split("").reverse[i].hex * x.hex }[STRING_CHARSETS.values.index(y)] }
28
+
25
29
 
26
30
  # Returns random String, for Passwords, Captachs etc..
27
31
  # could create :upcase, :downcase, :numbers or :all
@@ -56,7 +60,7 @@ module StringAndMore
56
60
  end
57
61
 
58
62
  # Create string with german date format to Date
59
- def to_date
63
+ def to_date
60
64
  # Try German
61
65
  matched_date = self.match(/((0|1|2|3)[0-9]{1})\.(0[0-9]{1}|10|11|12)\.[0-9]{4}/)
62
66
 
@@ -70,7 +74,7 @@ module StringAndMore
70
74
  end
71
75
 
72
76
  raise ArgumentError, "String has no date like DD.MM.YYYY or YYYY-DD-MM" if matched_date.nil?
73
- end
77
+ end
74
78
 
75
79
 
76
80
  def to_number(type = :float)
@@ -134,143 +138,155 @@ module StringAndMore
134
138
  return str
135
139
  end
136
140
 
137
- def limit(l=20)
138
- if self.size > l
139
- s = self.size
140
- s2 = (((self.size-1)/2).round)
141
- first = self.slice(0..s2)
141
+ def limit(l=20)
142
+ if self.size > l
143
+ s = self.size
144
+ s2 = (((self.size-1)/2).round)
145
+ first = self.slice(0..s2)
142
146
  last = self.slice(s2+1..-1)
143
147
 
144
148
  l1 = (l/2).round
145
149
 
146
- "#{first.first(l1)}...#{last.last(l1)}"
147
- else
148
- return self
149
- end
150
- end
150
+ "#{first.first(l1)}...#{last.last(l1)}"
151
+ else
152
+ return self
153
+ end
154
+ end
151
155
 
152
156
 
153
157
 
154
158
 
155
- def to_datetime
156
- date = self.split(" ").first
157
- time = self.split(" ").last.split(":")
158
- DateTime.new(date.split(".")[2].to_i, date.split(".")[1].to_i, date.split(".")[0].to_i, time.first.to_i, time.last.to_i)
159
- end
159
+ def to_datetime
160
+ date = self.split(" ").first
161
+ time = self.split(" ").last.split(":")
162
+ DateTime.new(date.split(".")[2].to_i, date.split(".")[1].to_i, date.split(".")[0].to_i, time.first.to_i, time.last.to_i)
163
+ end
160
164
 
161
165
 
162
- def clear_html(options = {})
163
- ActionView::Base.full_sanitizer.sanitize(self, :tags => options[:tags] )
164
- end
166
+ def clear_html(options = {})
167
+ ActionView::Base.full_sanitizer.sanitize(self, :tags => options[:tags] )
168
+ end
165
169
 
166
- def replace_html(from, to)
167
- new_text = self
168
- new_text = new_text.gsub("<#{from}>", "<#{to}>")
170
+ def replace_html(from, to)
171
+ new_text = self
172
+ new_text = new_text.gsub("<#{from}>", "<#{to}>")
169
173
  new_text = new_text.gsub("</#{from}>", "</#{to}>")
170
174
  return new_text
171
- end
175
+ end
172
176
 
173
- def to_model
177
+ def to_model
174
178
  self.singularize.camelize.constantize
175
- end
179
+ end
176
180
 
177
- def to_a
178
- return [self]
179
- end
181
+ def to_a
182
+ return [self]
183
+ end
180
184
 
181
- #== HTML Styling
185
+ #== HTML Styling
182
186
  # as the function names say
183
187
 
184
- def bold
188
+ def bold
185
189
  "<b>#{self}</b>".html_safe
186
- end
190
+ end
187
191
 
188
- def ital
192
+ def ital
189
193
  "<i>#{self}</i>".html_safe
190
- end
194
+ end
191
195
 
192
- def span
196
+ def span
193
197
  "<span>#{self}</span>".html_safe
194
- end
198
+ end
195
199
 
196
- def uline
200
+ def uline
197
201
  "<u>#{self}</u>".html_safe
198
- end
202
+ end
199
203
 
200
204
  def nbsp
201
205
  self.gsub(" ", "&nbsp;").html_safe
202
206
  end
203
207
 
204
- def replace_entities(mode = :html, options = {})
205
- str = self
206
- Chars2Remove::ENTITIES.each do |orig, rep|
207
- str = str.gsub(orig, rep[mode])
208
- end
209
- return str.html_safe
210
- end
208
+ def replace_entities(mode = :html, options = {})
209
+ str = self
210
+ Chars2Remove::ENTITIES.each do |orig, rep|
211
+ str = str.gsub(orig, rep[mode])
212
+ end
213
+ return str.html_safe
214
+ end
211
215
 
212
- def add_brs
213
- return self.gsub("\n", "<br />")
214
- end
216
+ def add_brs
217
+ return self.gsub("\n", "<br />")
218
+ end
215
219
 
216
- #== colorization in console
220
+ #== colorization in console
217
221
 
218
- def colorize(color_code)
219
- "\e[#{color_code};40m#{self}\e[0m"
220
- end
222
+ def colorize(color_code)
223
+ "\e[#{color_code};40m#{self}\e[0m"
224
+ end
221
225
 
222
- def red
223
- colorize(31)
224
- end
226
+ def red
227
+ colorize(31)
228
+ end
225
229
 
226
- def green
227
- colorize(32)
228
- end
230
+ def green
231
+ colorize(32)
232
+ end
229
233
 
230
- def yellow
231
- colorize(33)
232
- end
234
+ def yellow
235
+ colorize(33)
236
+ end
233
237
 
234
- def pink
235
- colorize(35)
236
- end
238
+ def pink
239
+ colorize(35)
240
+ end
237
241
 
238
242
 
239
- #== Numerische encription
240
- # cool thing for simple encrypt and decrypt strings
243
+ #== Numerische encription
244
+ # cool thing for simple encrypt and decrypt strings
241
245
 
242
- def numberize(options = {})
243
- # Basisarray das alle zeichen enthält die verschlüsselt werden können
244
- string_array = STRING_BASE.split("")
245
-
246
- # Nur Zahlen und buchstaben für die verschlüsselung/mix nehmen wg. URLs
247
- string_array_filtered = string_array.select {|s| !s.match(/[a-zA-Z0-9\-_]/).nil? }
248
- splitted = self.split("")
246
+ def numberize(options = {})
247
+ # Basisarray das alle zeichen enthält die verschlüsselt werden können
248
+ string_array = STRING_BASE.split("")
249
+
250
+ if options[:token]
251
+ string_array = string_array.sort_by {|x| x.hash*options[:token].inspect.bytes.join("").to_i}
252
+ end
253
+
254
+ # Nur Zahlen und buchstaben für die verschlüsselung/mix nehmen wg. URLs
255
+ string_array_filtered = string_array.select {|s| !s.match(/[a-zA-Z0-9\-_]/).nil? }
256
+ splitted = self.split("")
249
257
 
250
- numbered_string = ""
258
+ numbered_string = ""
251
259
 
252
- splitted.each do |s|
253
- position = string_array.index(s)
254
- if !position.nil?
255
- numbered_string << (position.to_s.rjust(2, "0")+string_array_filtered[rand(string_array_filtered.size-1)])
256
- end
257
- end
260
+ splitted.each do |s|
261
+ position = string_array.index(s)
262
+ if !position.nil?
263
+ numbered_string << (position.to_s.rjust(2, "0")+string_array_filtered[rand(string_array_filtered.size-1)])
264
+ end
265
+ end
258
266
 
259
- return options[:base_64] == true ? Base64.encode64(numbered_string) : numbered_string
260
- end
267
+ return options[:base_64] == true ? Base64.encode64(numbered_string) : numbered_string
268
+ end
261
269
 
262
- def denumberize(options = {})
263
- string_array = STRING_BASE.split("")
264
- real_string = ""
265
- (options[:base_64] == true ? Base64.decode64(self) : self ).scan(/[0-9]{2}.{1}/).each do |s|
266
- real_string << string_array[s.first(2).to_i]
267
- end
268
- return real_string
269
- end
270
+ def denumberize(options = {})
271
+ string_array = STRING_BASE.split("")
272
+
273
+ if options[:token]
274
+ string_array = string_array.sort_by {|x| x.hash*options[:token].inspect.bytes.join("").to_i}
275
+ end
276
+
277
+ real_string = ""
278
+ (options[:base_64] == true ? Base64.decode64(self) : self ).scan(/[0-9]{2}.{1}/).each do |s|
279
+ real_string << string_array[s.first(2).to_i]
280
+ end
281
+ return real_string
282
+ end
283
+
284
+
285
+
270
286
 
271
287
 
272
-
273
288
  end
289
+
274
290
 
275
291
  Symbol.class_eval do
276
292
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: friendly_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.66
4
+ version: 0.0.69
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Eck
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-26 00:00:00.000000000 Z
11
+ date: 2014-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails