dtcterm 0.3.0 → 0.3.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/dtcterm +8 -0
  3. data/lib/dtcterm.rb +68 -7
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d842481e6c506a5203953357616a94012c6b21b2
4
- data.tar.gz: c76ce49a90611925641bf9515e33e123952032f7
3
+ metadata.gz: 023acd8ccbe9f7c99e94c7595280cc48ad64a084
4
+ data.tar.gz: e3af934e16a44283a054917eb14f43a38e327e04
5
5
  SHA512:
6
- metadata.gz: 93ae2dd1e594fa7621c1264115759a3e003f51b36b7703a12e828d0db855e201fe588069434a8330be3a6be6518dbc5e9364206889f45a98a01ec12a6ee0117f
7
- data.tar.gz: 3812a0e252d61ab02e2342070b9006a1dac0222ec6592c8b1381115f8568be4e101b7bc6d17515efa1e1f3ed832a697ee227224472bca129e583d9bc340face6
6
+ metadata.gz: 3d2e8b1dc788da1492b9fa151d95e7912a252b97dd5604467f954f6d98f8137f969f573bae959b0746e3b86d46d368096bfb85f43da9e0e0fc9fb4b3a2d6bf8b
7
+ data.tar.gz: 371a517345cc0b1f3b6cf0fc7c537c0b00ee1d2fd64f62dd366038fef4f7deddf31f50e2a4ed5c4cced03761a93d929132c1ff0379e6529ba2c21c2fcd4e1c5e
data/bin/dtcterm CHANGED
@@ -1,4 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ trap "SIGINT" do
4
+ exit 130
5
+ end
6
+
7
+ trap "SIGKILL" do
8
+ exit 130
9
+ end
10
+
3
11
  require 'dtcterm'
4
12
  Dtcterm.main(ARGV)
data/lib/dtcterm.rb CHANGED
@@ -27,38 +27,92 @@ module Dtcterm
27
27
  DTC_RANDOM_POSITIVE_URL = "http://danstonchat.com/random0.html"
28
28
  DTC_TOP_URL = "http://danstonchat.com/top50.html"
29
29
 
30
+ DEFAULT_COLOR = "37"
31
+
32
+
30
33
  def version
31
- '0.3.0'
34
+ '0.3.1'
32
35
  end
33
36
 
34
37
 
35
-
38
+ # Class that contains every usefull information for a quote
36
39
  class Quote
40
+
41
+ # Quote id.
37
42
  attr_accessor :id
43
+
44
+ # Link to the quote.
38
45
  attr_accessor :link
46
+
47
+ # The text as an array of [user, text]
39
48
  attr_accessor :quote
40
49
 
50
+ # Usernames existing in the quote
51
+ attr_accessor :usernames
52
+
53
+
41
54
  def initialize
42
55
  @id = 0
43
56
  @link = ""
44
57
  @quote = Array.new { Array.new(2) }
58
+ @usernames = {}
59
+
60
+ @colors = {
61
+ "red" => { :syn => "31", :set => false },
62
+ "green" => { :syn => "32", :set => false },
63
+ "yellow" => { :syn => "33", :set => false },
64
+ "blue" => { :syn => "34", :set => false },
65
+ "purple" => { :syn => "35", :set => false },
66
+ "cyan" => { :syn => "36", :set => false }
67
+ }
68
+ end
69
+
70
+ # Return the first color non set.
71
+ # If no colors available, then it returns the default one.
72
+ def self.get_color
73
+ @colors.each {
74
+ |key, val|
75
+ (val[:set] = true; return val[:syn]) unless val[:set]
76
+ }
77
+ DEFAULT_COLOR
45
78
  end
46
79
 
47
- def colorize(text)
48
- "\e[32m#{text}\e[0m"
80
+ # Add the user to the usernames list.
81
+ #
82
+ # Arguments:
83
+ # colors: (string)
84
+ def self.add_user(user)
85
+ @usernames[user] = get_color unless @usernames.has_key?(user)
49
86
  end
50
87
 
88
+ # Colorize the text from the given color
89
+ #
90
+ # Arguments:
91
+ # colors: (string)
92
+ # text: (string)
93
+ def self.colorize(color, text)
94
+ "\e[#{color}m#{text}\e[0m"
95
+ end
96
+
97
+ # Display the quote to stdout
51
98
  def display
52
99
  print "Quote ##{id}\n"
53
100
  print "Link: #{link}\n"
54
101
  @quote.each do |item|
55
- print "#{$using_color ? colorize(item[0]) : item[0]} #{item[1]}\n"
102
+ add_user(item[0])
103
+ print "#{$using_color \
104
+ ? colorize(@usernames[item[0]], item[0]) \
105
+ : item[0]} #{item[1]}\n"
56
106
  end
57
107
  end
58
108
  end
59
109
 
60
110
 
61
111
 
112
+ # Open the html page. Exit the script if it can't reach the server.
113
+ #
114
+ # Arguments:
115
+ # url: (string)
62
116
  def get_page_html(url)
63
117
  begin
64
118
  Nokogiri::HTML(open(url))
@@ -68,6 +122,10 @@ module Dtcterm
68
122
  end
69
123
  end
70
124
 
125
+ # Give the quote list from the html page.
126
+ #
127
+ # Arguments:
128
+ # html: (string)
71
129
  def get_quote_list(html)
72
130
  quote_list = Array.new
73
131
 
@@ -105,6 +163,10 @@ module Dtcterm
105
163
  quote_list
106
164
  end
107
165
 
166
+ # Display a list of quote
167
+ #
168
+ # Arguments:
169
+ # quote_list: (array)
108
170
  def display_quote_list(quote_list)
109
171
  quote_list.each do |quote|
110
172
  quote.display
@@ -112,9 +174,8 @@ module Dtcterm
112
174
  end
113
175
  end
114
176
 
115
-
116
-
117
177
  def main(options)
178
+ # Exit the program if a choice has already been made.
118
179
  def self.quote_already_set
119
180
  unless $dtc_choice.empty?
120
181
  puts("Un choix de quote a déjà été fait.")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dtcterm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Loïc Runarvot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-22 00:00:00.000000000 Z
11
+ date: 2014-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri