phd 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/spec/ci.sh ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env sh
2
+ bundle && bundle exec rake spec
@@ -0,0 +1 @@
1
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
@@ -0,0 +1,5 @@
1
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
2
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
3
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
4
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
5
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
@@ -0,0 +1,4 @@
1
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
2
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
3
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
4
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
File without changes
@@ -0,0 +1,2 @@
1
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
2
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
@@ -0,0 +1,6 @@
1
+ require'spec_helper'
2
+ describe 'Phd web interface', :type => :request do
3
+ pending "displays svg graph"
4
+ pending "displays table of data"
5
+ pending "navigates through the file hierarchy"
6
+ end
data/spec/phd_spec.rb ADDED
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+ require 'phd'
3
+ require 'sqlite3'
4
+ describe 'Phd' do
5
+ before :all do
6
+ @date, @time = Time.now.strftime("%Y%m%d_%H%M%S").split(/_/)
7
+ @opts = {
8
+ directory: "spec/dummy",
9
+ database: "tmp/phd_#{@date}_#{@time}.db"
10
+ }
11
+ @db = Phd::DB::SQlite3.new @opts[:database]
12
+ @direct_db = SQLite3::Database.new @opts[:database]
13
+ end
14
+
15
+ after :all do
16
+ File.unlink(@opts[:database]) if File.exists?(@opts[:database])
17
+ end
18
+
19
+ it "initializes the database" do
20
+ #should have tables
21
+ %w{files stats}.each do |name|
22
+ @direct_db.get_first_value("SELECT name FROM sqlite_master WHERE type='table' AND name='#{name}';")
23
+ end
24
+ #table columns
25
+ files_columns = [[0, "id", "integer", 0, nil, 1], [1, "path", "text", 0, nil, 0]]
26
+ @direct_db.execute("pragma table_info(files)").should match_array(files_columns)
27
+ stats_columns = [[0, "id", "integer", 0, nil, 1], [1, "file_id", "integer", 0, nil, 0], [2, "date", "text", 0, nil, 0], [3, "time", "text", 0, nil, 0], [4, "inode", "integer", 0, nil, 0], [5, "size", "integer", 0, nil, 0], [6, "mtime", "integer", 0, nil, 0], [7, "is_dir", "integer", 0, nil, 0], [8, "depth", "integer", 0, nil, 0], [9, "node_left", "integer", 0, nil, 0], [10, "node_right", "integer", 0, nil, 0]]
28
+ @direct_db.execute("pragma table_info(stats)").should match_array(stats_columns)
29
+ end
30
+
31
+ it "indexes the directory" do
32
+ @indexer = Phd::Indexer.new(@db, @opts[:directory]).index(@opts)
33
+ #should have files
34
+ files_data = [[1, "spec/dummy/one.txt"], [2, "spec/dummy/three"], [3, "spec/dummy/three/five.txt"], [4, "spec/dummy/three/four.txt"], [5, "spec/dummy/three/six"], [6, "spec/dummy/three/six/seven.txt"], [7, "spec/dummy/two.txt"]]
35
+ @direct_db.execute("SELECT * FROM files").should match_array(files_data)
36
+ #should have specs
37
+ stats_data = [[1, 1, @date, @time, 33957578, 57, 1368225981, 0, 3, 2, 2], [2, 2, @date, @time, 33957582, 170, 1368225928, 1, 3, 3, 12], [3, 3, @date, @time, 33957587, 289, 1368226004, 0, 4, 5, 5], [4, 4, @date, @time, 33957584, 231, 1368225999, 0, 4, 7, 7], [5, 5, @date, @time, 33957588, 102, 1368225937, 1, 4, 8, 11], [6, 6, @date, @time, 33957589, 0, 1368225879, 0, 5, 10, 10], [7, 7, @date, @time, 33957579, 115, 1368225989, 0, 3, 14, 14]]
38
+ @direct_db.execute("SELECT * FROM stats").should match_array(stats_data)
39
+ end
40
+
41
+ pending "removes a date and time from the db" do
42
+ end
43
+ end
@@ -0,0 +1,21 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ require 'bundler'
3
+ require 'bundler/setup'
4
+ require 'rspec/autorun'
5
+ require 'capybara/rspec'
6
+
7
+ Dir["spec/support/**/*.rb"].each {|f| require f}
8
+
9
+ RSpec.configure do |config|
10
+ config.color_enabled = true
11
+ config.formatter = 'documentation'
12
+ # config.use_transactional_fixtures = false
13
+ config.order = "random"
14
+ end
15
+
16
+ module ::RSpec::Core
17
+ class ExampleGroup
18
+ include Capybara::DSL
19
+ include Capybara::RSpecMatchers
20
+ end
21
+ end
metadata ADDED
@@ -0,0 +1,220 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: phd
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Noel Peden
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-07-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sinatra
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: progress_bar
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: capybara
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: growl
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rb-fsevent
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ description: Phd is a tool to browse changes in disk space usage. It creates an sqlite3
154
+ index and creates SVG images of the usage. The svg uses area and color to display
155
+ both file size and size change relative to the compared date. Phd is a near complete
156
+ rewrite of philesight (http://zevv.nl/play/code/philesight/) with many changes.
157
+ email:
158
+ - noel@peden.biz
159
+ executables:
160
+ - phd
161
+ extensions: []
162
+ extra_rdoc_files: []
163
+ files:
164
+ - lib/phd/cli.rb
165
+ - lib/phd/db/sqlite3.rb
166
+ - lib/phd/indexer.rb
167
+ - lib/phd/server.rb
168
+ - lib/phd/version.rb
169
+ - lib/phd.rb
170
+ - lib/third/trollop.rb
171
+ - Gemfile
172
+ - Gemfile.lock
173
+ - LICENSE
174
+ - Rakefile
175
+ - README.md
176
+ - spec/ci.sh
177
+ - spec/dummy/one.txt
178
+ - spec/dummy/three/five.txt
179
+ - spec/dummy/three/four.txt
180
+ - spec/dummy/three/six/seven.txt
181
+ - spec/dummy/two.txt
182
+ - spec/phd_request_spec.rb
183
+ - spec/phd_spec.rb
184
+ - spec/spec_helper.rb
185
+ - Guardfile
186
+ - bin/phd
187
+ homepage: http://phd.peden.biz
188
+ licenses: []
189
+ metadata: {}
190
+ post_install_message:
191
+ rdoc_options: []
192
+ require_paths:
193
+ - lib
194
+ required_ruby_version: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - '>='
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ required_rubygems_version: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - '>='
202
+ - !ruby/object:Gem::Version
203
+ version: '0'
204
+ requirements: []
205
+ rubyforge_project:
206
+ rubygems_version: 2.0.3
207
+ signing_key:
208
+ specification_version: 4
209
+ summary: Use phd to view disk usage over time.
210
+ test_files:
211
+ - spec/ci.sh
212
+ - spec/dummy/one.txt
213
+ - spec/dummy/three/five.txt
214
+ - spec/dummy/three/four.txt
215
+ - spec/dummy/three/six/seven.txt
216
+ - spec/dummy/two.txt
217
+ - spec/phd_request_spec.rb
218
+ - spec/phd_spec.rb
219
+ - spec/spec_helper.rb
220
+ - Guardfile