libsessho 1.5

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 (3) hide show
  1. checksums.yaml +7 -0
  2. data/src/libsessho.rb +129 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ac9fabfdc2f7439dc1e10395b4c5911f218dc3f4
4
+ data.tar.gz: d8a5fc176ec73b452541823ab55ff0a89c041cef
5
+ SHA512:
6
+ metadata.gz: a549983774a2965056afb03a33827db040f4d599a69ba25aa3b28751c7c3886ec960a79e26fb0d590385d8939e13647c82ee190b8c257d196bb079f3ef25f024
7
+ data.tar.gz: bbe47f9c3db6704d4b3cabc4120897059d1a5e8437cff793f02d127b5dd1ecec8f2af92bd54309563fb137fb74d1c0c493c446954e3eb047225090cfa1662163
data/src/libsessho.rb ADDED
@@ -0,0 +1,129 @@
1
+ # META_VERSION 1.5
2
+
3
+ # This program is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU General Public License,
5
+ # version 2, as published by the Free Software Foundation.
6
+ #
7
+ # This program is distributed in the hope that it will be
8
+ # useful, but WITHOUT ANY WARRANTY; without even the implied
9
+ # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
10
+ # PURPOSE. See the GNU General Public License for more details.
11
+ #
12
+ # You should have received a copy of the GNU General Public
13
+ # License along with this program; if not, write to the Free
14
+ # Software Foundation, Inc., 59 Temple Place, Suite 330,
15
+ # Boston, MA 02111-1307 USA.
16
+
17
+ =begin
18
+ class Version
19
+ def initialize(_1,_2=0,_3=0,_4=0)
20
+ @verstr = [_1,_2,_3,_4].map(&:to_s)
21
+ end
22
+ end
23
+ =end
24
+
25
+ def upd_check
26
+ require 'net/http'
27
+ require 'timeout'
28
+ onln_content = nil
29
+ begin
30
+ Timeout.timeout(2) { onln_content = Net::HTTP.get(URI("https://raw.githubusercontent.com/sesshomariu/libsessho/master/libsessho.rb")) }
31
+ rescue
32
+ return [false,""]
33
+ else
34
+ onln_version = onln_content.match(/META_VERSION \d+\.\d+/).to_s.split[-1].to_f
35
+ this_version = File.read(__FILE__).match(/META_VERSION \d+\.\d+/).to_s.split[-1].to_f
36
+ upd_av = (onln_version>this_version)
37
+ return [upd_av, (upd_av ? onln_content : "")]
38
+ end
39
+ end
40
+
41
+ $0==__FILE__&&( # not imported
42
+ upd_av, onln_cont = upd_check
43
+ upd_av ? puts("Update available. Updating...") : puts("No update available(or could not check repository).")
44
+ upd_av&&File.write(__FILE__,onln_cont)
45
+ exit
46
+ )
47
+
48
+ _UPD_upd_av, _UPD_onln_cont = upd_check
49
+ at_exit{_UPD_upd_av&&File.write(__FILE__,_UPD_onl_cont)}
50
+ Signal.trap("INT"){exit} # ensure proper exit
51
+
52
+
53
+ module Libsessho # error module / api module / dunno
54
+ class StringNotDivideableError<StandardError;end
55
+ end
56
+
57
+ def warning_msg(msg)
58
+ puts "\e[31m#{msg}\e[39m"
59
+ end
60
+
61
+ class String
62
+ def splitAt(pos)
63
+ raise ArgumentError,"Index out of range" if pos>=self.length
64
+ p2 = self.split("")
65
+ p1 = p2.shift(pos)
66
+ [p1,p2].map(&:join)
67
+ end
68
+ def substr(pos)
69
+ raise ArgumentError,"Index out of range" if pos>=self.length
70
+ self[pos,self.length]
71
+ end
72
+ def supstr(pos)
73
+ raise ArgumentError,"Index out of range" if pos>=self.length
74
+ self[0,pos]
75
+ end
76
+ def divide(by,supprErr=false)
77
+ supprErr||(self.length%by==0||raise(Libsessho::StringNotDivideableError,"Length of string is not divideable by #{by}"))
78
+ retarr = Array.new
79
+ s = self.split("")
80
+ until s.empty?
81
+ retarr.push s.shift(by)
82
+ end
83
+ return retarr.map(&:join)
84
+ end
85
+ def dropFileEnding
86
+ self.split(".").reverse[1,self.length].reverse.join(".")
87
+ end
88
+ def matches(s)
89
+ matcharr = Array.new
90
+ self.split("").each_with_index{|c,i|c==s&&matcharr<<i}
91
+ return matcharr
92
+ end
93
+ end
94
+
95
+ class Array
96
+ def intersect(sa);self.select{|i|sa.include?(i)};end
97
+ def subarr(pos)
98
+ raise ArgumentError,"Index out of range" if pos>=self.length
99
+ self[pos,self.length]
100
+ end
101
+ def suparr(pos)
102
+ raise ArgumentError,"Index out of range" if pos>=self.length
103
+ self[0,pos]
104
+ end
105
+ def matches(s)
106
+ matcharr = Array.new
107
+ self.each_with_index{|c,i|c==s&&matcharr<<i}
108
+ return matcharr
109
+ end
110
+ end
111
+
112
+ def publicIP
113
+ require 'net/http'
114
+ return Net::HTTP.get(URI('https://api.ipify.org'))
115
+ end
116
+
117
+ def publicIPv6
118
+ require 'net/http'
119
+ Net::HTTP.get(URI("http://whatismyip.org")).match(/\h{,4}:\h{,4}:\h{,4}:\h{,4}:\h{,4}:\h{,4}:\h{,4}:\h{,4}/).to_s
120
+ end
121
+
122
+ def backtrack_call
123
+ raise NotImplementedError
124
+ end
125
+
126
+ def localIP
127
+ require 'socket'
128
+ Socket.ip_address_list.map{|i|i.inspect.split(" ")[-1].split(">")[0]}.select{|i|i.match(/^\d{,3}\.\d{,3}\.\d{,3}.\d{,3}$/)}.select{|i|i!="127.0.0.1"}[0]
129
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: libsessho
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.5'
5
+ platform: ruby
6
+ authors:
7
+ - sesshomariu
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-01-11 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email:
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - src/libsessho.rb
20
+ homepage:
21
+ licenses:
22
+ - GPL-3.0
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.6.8
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Core library for scripts written by sessho/sesshomariu
44
+ test_files: []