ztrening 0.0.3 → 0.0.4.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 (5) hide show
  1. data/History.txt +5 -0
  2. data/bin/zt +36 -32
  3. data/lib/ztrening.rb +67 -11
  4. data/test/test_ztrening.rb +3 -0
  5. metadata +5 -4
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 0.0.4.1 2010-08-05
2
+ * specs
3
+ * download with net/http
4
+ * minor fixes
5
+
1
6
  === 0.0.3 2010-06-30
2
7
 
3
8
  * fixed open
data/bin/zt CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
- # Copyright (c) 2010. All rights reserved.
3
+
4
+ # TODO: prebaciti ovo lib, nova klasa - eval 'CLI.exec ARGV'
4
5
 
5
6
  require 'rubygems'
6
7
  require File.expand_path(File.dirname(__FILE__) + "/../lib/ztrening")
@@ -11,6 +12,7 @@ USAGE = <<EOS
11
12
  usage: zt.rb [refresh, list, find, open]
12
13
  find [string]
13
14
  open [filename] => file mora imati '// zt [ime zadatka]' na 1. liniji
15
+ todo [add, del[ete]/rem[ove]]
14
16
  -h, --help
15
17
  EOS
16
18
 
@@ -23,11 +25,12 @@ if !ARGV[0] || ARGV[0]=='-h' || ARGV[0]=='--help'
23
25
  end
24
26
 
25
27
 
26
- if ARGV[0] == 'refresh'
28
+ if ARGV[0] == '-v' || ARGV[0] == '--version'
29
+ puts "Version: #{ZtreningM::VERSION}"
30
+ elsif %w(refresh download).include? ARGV[0]
27
31
  z = Ztrening.new :web
28
32
  puts 'New list downloaded'
29
33
  elsif ARGV[0] == 'open' && ARGV[1]
30
- # TODO: maknuti gore const file regex
31
34
  z = Ztrening.new
32
35
 
33
36
  if File.exists? ARGV[1]
@@ -64,45 +67,22 @@ elsif ARGV[0] == 'open' && ARGV[1]
64
67
  end
65
68
 
66
69
  if z.lista.nil? or z.lista.empty?
67
- hh = if ime.nil?; "im ID-om" else "im imenom" end
68
- puts "Nema zadataka s takv#{hh}"
70
+ hh = ime.nil? ? "ID-om" : "imenom"
71
+ puts "Nema zadataka s takvim #{hh}!"
69
72
  end
70
73
 
71
- hh = if ime.nil?; "ID" else "ime" end
74
+ hh = ime.nil? ? "ID" : "ime"
72
75
  puts "Oznaka zadatka iz datoteke: #{str} (#{hh})"
73
76
 
74
77
  puts "cnt: #{z.lista.count}"
75
- # if z.lista.count > 1
76
- # puts "Postoji vise zadataka koji sadrze '#{ime}';"
77
- # puts "Odaberi jedan:"
78
- # limit, ok = 10, 1
79
- # if z.lista.count > limit
80
- # puts "Broj nadjenih zadataka prelazi limit (#{limit}) !"
81
- # exit
82
- # end
83
- # z.lista.each_with_index { |l,idx| printf "%4s: %s\n", idx+1, l[1] }
84
- # while ok > 0
85
- # print " > "; STDOUT.flush
86
- # id = STDIN.gets.chomp.to_i
87
- # if id.nil? or id == '' or !id.is_a?(Integer)
88
- # puts " ?? err 1"
89
- # end
90
- # # id -= 1
91
- # if !(1..(z.lista.count)).include?(id)
92
- # puts "izvan rangea!"; ok=1
93
- # else ok=0 end
94
- # end
95
- # puts "Otvaram zadatak: #{z.lista[id.to_i-1][1]}"
96
- # z.open id-1
97
- # else
98
- # z.open :name => ime | :id => id
78
+
99
79
  z.open id
100
80
  end
101
81
  elsif ARGV[0] == 'find'
102
- if ARGV[1]
82
+ if ARGV[1..ARGC-1]
103
83
  z = Ztrening.new
104
84
  #z.find ARGV[1..32].join ' '
105
- if ARGV[1].grep '.'
85
+ if ARGV[1][/.+/]
106
86
  z.find ARGV[1]
107
87
  z.lista_txt
108
88
  else
@@ -115,6 +95,30 @@ elsif ARGV[0] == 'find'
115
95
  elsif ARGV[0] == 'list'
116
96
  z = Ztrening.new
117
97
  z.lista_txt
98
+ # elsif ARGV[0] == 'todo'
99
+ # if %w[show list ls].include? ARGV[1]
100
+ # elsif %w[add].include? ARGV[1]
101
+ # elsif %w[del rem delete remove].include? ARGV[1]
102
+ # end
103
+ # TODO: zt set ZADATAK STATUS
104
+ # elsif ARGV[0] == 'set'
105
+ # if ARGV[1]
106
+ # z = Ztrening.new
107
+ # # set ID/NAME STATUS
108
+ # z.set ARGV[1], ARGV[2]
109
+ # else
110
+ # puts USAGE
111
+ # exit
112
+ # end
113
+ elsif ARGV[0] == 'init'
114
+ (puts USAGE; exit) if !ARGV[1].nil? # TODO: manual dir as arg1
115
+ z = Ztrening.new
116
+ if !z.in_zaddir?
117
+ z.create_zaddir `pwd`.chop
118
+ else
119
+ puts "Vec postoji zaddir conf file u ovom dir-u"
120
+ exit
121
+ end
118
122
  else
119
123
  puts USAGE
120
124
  exit
data/lib/ztrening.rb CHANGED
@@ -1,18 +1,22 @@
1
1
  $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+ require 'net/http'
3
4
 
4
5
  class Array
5
6
  def moj_keys() Hash[*self.collect { |v| [v, true] }.flatten] end
6
7
  end
7
8
 
8
9
  module ZtreningM
9
- VERSION = '0.0.3'
10
+ VERSION = '0.0.4.1'
10
11
 
11
12
  class Ztrening
12
13
  def initialize(*opts)
13
- @list_fname = 'lista.txt'
14
- @cmd_dwl = "wget -q http://z-trening.com/training.php\?all_tasks\=1 -O #{@list_fname}"
15
- @link_base = 'http://z-trening.com/tasks.php?show_task=_ID_'
14
+ @list_fname = 'ztlista.txt'
15
+ # @cmd_dwl = "wget -q http://z-trening.com/training.php\?all_tasks\=1 -O #{@list_fname}"
16
+ @dwl_link = "z-trening.com|/training.php\?all_tasks\=1"
17
+ @link_base = 'http://z-trening.com/tasks.php?show_task=_ID_'
18
+ @ztdir_fname = '.ztconf' # bolje ztdata; file sa conf vars
19
+ @todo_fname = '_PROJDIR_/todo.txt'
16
20
 
17
21
  @lista ||= []
18
22
  @opts = opts.moj_keys
@@ -22,7 +26,7 @@ module ZtreningM
22
26
  if !@opts[:web].nil?
23
27
  web
24
28
  execout = exec
25
- (puts execerrmsg; exit) if execout.nil? || execout.empty?
29
+ (puts execerrmsg; exit) if (execout.nil? || execout.empty?)
26
30
  @lista = parse(execout)
27
31
  else
28
32
  if !File.exists? @list_fname
@@ -33,6 +37,7 @@ module ZtreningM
33
37
  (puts execerrmsg; exit) if execout.nil? || execout.empty?
34
38
  @lista = parse(execout)
35
39
  end
40
+ @lista.sort!
36
41
  end
37
42
 
38
43
  def find(str)
@@ -49,7 +54,7 @@ module ZtreningM
49
54
  ll=[]
50
55
  @lista.each { |e| ll << e if e[1] == str }
51
56
  @lista = ll
52
- puts "find_by_name lista cnt: #{@lista.count}"
57
+ # puts "find_by_name lista cnt: #{@lista.count}"
53
58
  end
54
59
 
55
60
  def find_by_id(id)
@@ -77,10 +82,6 @@ module ZtreningM
77
82
  @lista
78
83
  end
79
84
 
80
- # def lista=(l)
81
- # @lista=l
82
- # end
83
-
84
85
  def lista_txt
85
86
  puts 'Zadatci:'
86
87
  @lista.each { |l| puts "Zadatak: #{l[1]}" }
@@ -99,6 +100,53 @@ module ZtreningM
99
100
  puts '</ul>' if opts[:li]
100
101
  end
101
102
 
103
+
104
+ # get_zaddir
105
+ def findzaddir
106
+ # nadji DirName s datotekom '.ztprojdir', prema gore
107
+ # false ako nema
108
+
109
+ for n in (0..32)
110
+ p = ('../'*n)
111
+ return File.expand_path(p) if File.file?("#{p}#{@ztdir_fname}")
112
+ return false if File.expand_path p == "/"
113
+ end
114
+
115
+ end
116
+
117
+ def create_zaddir(dir) #(args) - koristi hash i symbole
118
+ # TODO: args: string dirname='', bool templates, ...
119
+ if File.directory? dir
120
+ File.open("#{File.dirname dir}/@ztdir_fname", "w"){ |f|
121
+ f.write(<<EOS)
122
+ todo_file = todo.txt
123
+ status_file = status.txt
124
+ EOS
125
+ }
126
+ FileUtils.touch "#{File.dirname dir}/todo.txt"
127
+ FileUtils.touch "#{File.dirname dir}/status.txt"
128
+ puts "Napravljen ztdir u dir-u #{dir}"
129
+ else
130
+ puts "Dir #{dir} ne postoji, ne mogu napraviti zaddir!"
131
+ return false
132
+ end
133
+ end
134
+
135
+ def in_zaddir?
136
+ (@ztdir_fname && File.exists?("./#{@ztdir_fname}")) || false
137
+ end
138
+
139
+ def set(arg)
140
+ if arg.start_with? '500000'
141
+ id = arg
142
+ else
143
+ find_by_name arg
144
+ id = @lista[0][0]
145
+ end
146
+ # TODO: set()
147
+ end
148
+
149
+
102
150
  private
103
151
 
104
152
  def link(id)
@@ -106,6 +154,7 @@ module ZtreningM
106
154
  end
107
155
 
108
156
  def exec
157
+ # FIXME: open(@list_fname).read > stdin od thread-a
109
158
  t = Thread.new { `#{cmd}` }
110
159
  return t.value.split "\r\n"
111
160
  end
@@ -118,7 +167,14 @@ module ZtreningM
118
167
 
119
168
  def web
120
169
  puts 'Downloading list ...'
121
- %x[#{@cmd_dwl}]
170
+ # %x[#{@cmd_dwl}]
171
+ link = @dwl_link.split '|'
172
+ Net::HTTP.start(link[0]) { |http|
173
+ resp = http.get(link[1])
174
+ File.open(@list_fname, "wb") { |file|
175
+ file.write(resp.body)
176
+ }
177
+ }
122
178
  end
123
179
 
124
180
  def cmd
@@ -8,4 +8,7 @@ class TestZtrening < Test::Unit::TestCase
8
8
  def test_truth
9
9
  assert true
10
10
  end
11
+
12
+
13
+
11
14
  end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ztrening
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 93
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ - 1
11
+ version: 0.0.4.1
11
12
  platform: ruby
12
13
  authors:
13
14
  - BKrsta
@@ -15,7 +16,7 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2010-06-30 00:00:00 +02:00
19
+ date: 2010-08-06 00:00:00 +02:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency