rubyhexagon 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.
@@ -0,0 +1,36 @@
1
+ =begin
2
+ Copyright 2014 Maxine Red <maxine_red1@yahoo.com>
3
+
4
+ This file is part of rubyhexagon.
5
+
6
+ rubyhexagon is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation, either version 3 of the License, or
9
+ (at your option) any later version.
10
+
11
+ rubyhexagon is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with rubyhexagon. If not, see <http://www.gnu.org/licenses/>.
18
+ =end
19
+
20
+ class Fixnum
21
+ def to_kb
22
+ (self/1024.0).round(2)
23
+ end
24
+
25
+ def to_mb
26
+ (self/(1024*1024.0)).round(2)
27
+ end
28
+
29
+ def days
30
+ 60*60*24*self
31
+ end
32
+
33
+ def pad(c,s=0)
34
+ "#{s}"*(c-self.to_s.length)+self.to_s
35
+ end
36
+ end
@@ -0,0 +1,84 @@
1
+ =begin
2
+ Copyright 2014 Maxine Red <maxine_red1@yahoo.com>
3
+
4
+ This file is part of rubyhexagon.
5
+
6
+ rubyhexagon is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation, either version 3 of the License, or
9
+ (at your option) any later version.
10
+
11
+ rubyhexagon is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with rubyhexagon. If not, see <http://www.gnu.org/licenses/>.
18
+ =end
19
+
20
+ require "json"
21
+
22
+ class String
23
+ # Make json parsing a lot easier and less to write.
24
+ def parse
25
+ JSON.parser.new(self).parse
26
+ end
27
+ # Remove all tags inside of a string.
28
+ def clean
29
+ self.gsub(/<.+?>/,"")
30
+ end
31
+ # Trim or expand a string to a certain length.
32
+ def pad(c,s=" ")
33
+ if self.length > c then
34
+ self[0,c-3]+"..."
35
+ elsif self.length < c then
36
+ self+s.to_s*(c-self.length)
37
+ else
38
+ self
39
+ end
40
+ end
41
+ # Make a string bold and colorful, with colors a user can understand. Not
42
+ # those cryptic numbers.
43
+ def bold(color=nil)
44
+ c = case color
45
+ when "black" then "\e[30;1m"
46
+ when "red" then "\e[31;1m"
47
+ when "green" then "\e[32;1m"
48
+ when "yellow" then "\e[33;1m"
49
+ when "blue" then "\e[34;1m"
50
+ when "purple" then "\e[35;1m"
51
+ when "cyan" then "\e[36;1m"
52
+ else "\e[37;1m"
53
+ end
54
+ c+self+"\e[0m"
55
+ end
56
+ # Same as bold, but just make a string colorful.
57
+ def color(color=nil)
58
+ c = case color
59
+ when "black" then "\e[30;0m"
60
+ when "red" then "\e[31;0m"
61
+ when "green" then "\e[32;0m"
62
+ when "yellow" then "\e[33;0m"
63
+ when "blue" then "\e[34;0m"
64
+ when "purple" then "\e[35;0m"
65
+ when "cyan" then "\e[36;0m"
66
+ else "\e[37;0m"
67
+ end
68
+ c+self+"\e[0m"
69
+ end
70
+ # indent a string and all lines that belong to it
71
+ def indent(indent)
72
+ s = self.split("#$/")
73
+ " "*indent+s.join("#$/"+" "*indent)
74
+ end
75
+ # It is just convenient to have a custom to_bool function. Only "true" gets
76
+ # turned into true, anything else is false.
77
+ def to_bool
78
+ if self.downcase == "true" then
79
+ true
80
+ else
81
+ false
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,30 @@
1
+ =begin
2
+ Copyright 2014 Maxine Red <maxine_red1@yahoo.com>
3
+
4
+ This file is part of rubyhexagon.
5
+
6
+ rubyhexagon is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation, either version 3 of the License, or
9
+ (at your option) any later version.
10
+
11
+ rubyhexagon is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with rubyhexagon. If not, see <http://www.gnu.org/licenses/>.
18
+ =end
19
+ class Time
20
+ # A general to_s function for Time objects.
21
+ def to_s
22
+ self.strftime("%b %e,%Y %I:%M %p")
23
+ end
24
+ # This methods takes a block and returns how long it took to execute that block.
25
+ def self.measure
26
+ s = Time.now
27
+ yield
28
+ return Time.now-s
29
+ end
30
+ end
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubyhexagon
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Maxine Red
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-02-15 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Rubyhexagon provides Ruby bindings for the e621 [dot] net API.
15
+ email: maxine_red1@yahoo.com
16
+ executables:
17
+ - fav-sync
18
+ - set-sync
19
+ - e621_search
20
+ - e621_server
21
+ extensions: []
22
+ extra_rdoc_files: []
23
+ files:
24
+ - lib/pool.rb
25
+ - lib/rubyhexagon.rb
26
+ - lib/standard/hash.rb
27
+ - lib/standard/http.rb
28
+ - lib/standard/error.rb
29
+ - lib/standard/string.rb
30
+ - lib/standard/time.rb
31
+ - lib/standard/int.rb
32
+ - lib/post.rb
33
+ - lib/search.rb
34
+ - lib/container.rb
35
+ - lib/config.rb
36
+ - lib/api.rb
37
+ - lib/set.rb
38
+ - bin/fav-sync
39
+ - bin/set-sync
40
+ - bin/e621_search
41
+ - bin/e621_server
42
+ homepage: https://github.com/maxine-red/rubyhexagon
43
+ licenses:
44
+ - GPL-3.0
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.9.2
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubyforge_project:
63
+ rubygems_version: 1.8.23
64
+ signing_key:
65
+ specification_version: 3
66
+ summary: Rubyhexagon, Ruby bindings for e621[dot]net.
67
+ test_files: []