rarity 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -14,6 +14,12 @@ Rarity makes use of:
14
14
 
15
15
  You will need to install these prior to running rarity.
16
16
 
17
+ Additionally, the sqlite3 gem is used for the tracking database. This has the following package dependencies on Ubuntu:
18
+
19
+ * libsqlite3-dev
20
+
21
+ Gem dependencies are installed automatically when installing rarity.
22
+
17
23
  ## Installation
18
24
 
19
25
  Add this line to your application's Gemfile:
@@ -49,3 +55,7 @@ You can find more help with:
49
55
  3. Commit your changes (`git commit -am 'Added some feature'`)
50
56
  4. Push to the branch (`git push origin my-new-feature`)
51
57
  5. Create new Pull Request
58
+
59
+ ## License
60
+
61
+ See the LICENSE file. Long story short, MIT, go crazy.
@@ -21,7 +21,7 @@ class Rarity::Optimiser
21
21
  if ext == ".png"
22
22
  `#{png_cmd} "#{path}"`
23
23
  type = :png
24
- @tracker.mark_done(path, @options)
24
+ @tracker.mark_done(path, @options, {:before=>start_size, :after=>File.size(path), :filetype=>type, :time=>(Time.now-start)})
25
25
  elsif ext == ".gif"
26
26
  type = :gif
27
27
  # ooh, okay, so if we're a gif, are we animated?
@@ -32,7 +32,7 @@ class Rarity::Optimiser
32
32
  if (fc.split(":")[1].to_i rescue 1) > 0
33
33
  # We have more than one frame! We're animated or strange. gifsicle.
34
34
  `#{gif_cmd} "#{path}"`
35
- @tracker.mark_done(path, @options)
35
+ @tracker.mark_done(path, @options, {:before=>start_size, :after=>File.size(path), :filetype=>type, :time=>(Time.now-start)})
36
36
  else
37
37
  # We're single frame, PNG probably does better
38
38
  opo = `#{png_cmd} "#{path}"`
@@ -42,12 +42,12 @@ class Rarity::Optimiser
42
42
  File.delete(path)
43
43
  # Changed format, so update path
44
44
  path = pngpath
45
- @tracker.mark_done(path, @options)
45
+ @tracker.mark_done(path, @options, {:before=>start_size, :after=>File.size(path), :filetype=>type, :time=>(Time.now-start)})
46
46
  else
47
47
  # Clean up the PNG we tried and gifsicle it.
48
48
  File.delete(path.gsub(File.extname(path),".png"))
49
49
  `#{gif_cmd} "#{path}"`
50
- @tracker.mark_done(path, @options)
50
+ @tracker.mark_done(path, @options, {:before=>start_size, :after=>File.size(path), :filetype=>type, :time=>(Time.now-start)})
51
51
  end
52
52
  end
53
53
  else
@@ -59,18 +59,18 @@ class Rarity::Optimiser
59
59
  File.delete(path)
60
60
  # Changed format, so update path
61
61
  path = pngpath
62
- @tracker.mark_done(path, @options)
62
+ @tracker.mark_done(path, @options, {:before=>start_size, :after=>File.size(path), :filetype=>type, :time=>(Time.now-start)})
63
63
  else
64
64
  # Clean up the PNG we tried and gifsicle it.
65
65
  File.delete(path.gsub(File.extname(path),".png"))
66
66
  `#{gif_cmd} "#{path}"`
67
- @tracker.mark_done(path, @options)
67
+ @tracker.mark_done(path, @options, {:before=>start_size, :after=>File.size(path), :filetype=>type, :time=>(Time.now-start)})
68
68
  end
69
69
  end
70
70
  elsif ext == ".jpg" or ext == ".jpeg"
71
71
  type = :jpg
72
72
  `#{jpg_cmd} "#{path}"`
73
- @tracker.mark_done(path, @options)
73
+ @tracker.mark_done(path, @options, {:before=>start_size, :after=>File.size(path), :filetype=>type, :time=>(Time.now-start)})
74
74
  else
75
75
  puts "Skipped file, not a recognised file type"
76
76
  end
@@ -1,9 +1,11 @@
1
1
  class Rarity::Runner
2
+ # Initialises a new runner
2
3
  def initialize(options)
3
4
  @directory = options[:directory]
4
5
  @tracker = Rarity::Tracker.new
5
6
  @optimiser = Rarity::Optimiser.new(@tracker, {:png_o_level => options[:pnglevel]})
6
7
  end
8
+ # Runs optimisations recursively.
7
9
  def run
8
10
  recursively_optimise(@directory)
9
11
  end
@@ -2,7 +2,7 @@ require 'sequel'
2
2
  class Rarity::Tracker
3
3
 
4
4
  def initialize
5
- @db_path = File.expand_path("~/.spike.sqlite")
5
+ @db_path = File.expand_path("~/.rarity.sqlite")
6
6
  @first_run = !File.exists?(@db_path)
7
7
  @db = Sequel.sqlite(@db_path)
8
8
  if @first_run
@@ -10,8 +10,13 @@ class Rarity::Tracker
10
10
  primary_key :id
11
11
  String :path
12
12
  Integer :png_o_level
13
+ Integer :before_bytes
14
+ Integer :after_bytes
15
+ String :filetype
16
+ Float :time_taken
13
17
  end
14
18
  end
19
+ puts "Tracker initialised with a total of #{@db[:images].count} records"
15
20
  end
16
21
  def import_from_old_format
17
22
  @path = File.expand_path("~/.optimdone.dat")
@@ -22,13 +27,13 @@ class Rarity::Tracker
22
27
  end
23
28
  puts "Imported #{@done.size} entries that we have already optimised from the old land, you can now delete ~/.optimdone.dat"
24
29
  end
25
- def mark_done(path, options)
30
+ def mark_done(path, options, results)
26
31
  cleanpath = path.gsub("\n","").gsub("\r","").chomp
27
32
  if !is_done?(path, options)
28
33
  if @db[:images][:path=>cleanpath]
29
- @db[:images][:path=>cleanpath] = {:png_o_level => options[:png_o_level]}
34
+ @db[:images][:path=>cleanpath] = {:png_o_level => options[:png_o_level], :after_bytes=>results[:after], :time_taken=>(results[:time]+ @db[:images][:path=>cleanpath].time_taken)}
30
35
  else
31
- @db[:images].insert(:path=>cleanpath, :png_o_level=>options[:png_o_level])
36
+ @db[:images].insert(:path=>cleanpath, :png_o_level=>options[:png_o_level], :before_bytes=>results[:before], :after_bytes=>results[:after], :filetype=>results[:filetype].to_s, :time_taken=>results[:time])
32
37
  end
33
38
  end
34
39
  end
@@ -1,3 +1,3 @@
1
1
  module Rarity
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 0
9
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - James Harrison