picturama 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- picturama (0.0.3)
4
+ picturama (0.0.5)
5
5
  mini_magick (~> 3.6.0)
6
6
  stringex (~> 2.0.2)
7
7
 
@@ -20,7 +20,7 @@ module Picturama
20
20
  Dir["#{album_source}/*"].each { |album|
21
21
  if File.directory?(album)
22
22
  potential_album = Picturama::Album.new(:folder => album)
23
- albums.push(potential_album)
23
+ albums.push(potential_album) if potential_album.valid?
24
24
  end
25
25
  }
26
26
  albums
@@ -80,6 +80,10 @@ module Picturama
80
80
  end
81
81
  end
82
82
 
83
+ def valid?
84
+ has_thumbnails? && !info.nil?
85
+ end
86
+
83
87
  protected
84
88
 
85
89
  def generate_sorting(filter)
@@ -3,13 +3,17 @@ require 'picturama'
3
3
  module Picturama
4
4
  class Picture < File
5
5
 
6
- attr_accessor :thumbnail
6
+ attr_accessor :thumbnail, :resized, :metainfo
7
7
 
8
8
  def initialize(args)
9
9
  super
10
- @thumbnail = "#{File.dirname(path)}/thumbnails/#{Picturama::config['thumbnail_prefix']}#{File.basename(path)}"
11
- @resized = "#{File.dirname(path)}/resized/resized_#{File.basename(path)}"
12
- @metainfo = "#{File.dirname(path)}/resized/resized_#{File.basename(path)}.info"
10
+ @thumbnail = "#{File.dirname(path)}/thumbnails/#{Picturama::config['thumbnail_prefix']}#{basename}"
11
+ @resized = "#{File.dirname(path)}/resized/resized_#{basename}"
12
+ @metainfo = "#{File.dirname(path)}/resized/resized_#{basename}.info"
13
+ end
14
+
15
+ def basename
16
+ File.basename(path)
13
17
  end
14
18
 
15
19
  def info
@@ -29,5 +33,9 @@ module Picturama
29
33
  File.delete(@resized) if has_resized?
30
34
  end
31
35
 
36
+ def type
37
+ File.extname(path).split('.').last
38
+ end
39
+
32
40
  end
33
41
  end
@@ -1,3 +1,3 @@
1
1
  module Picturama
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.5'
3
3
  end
@@ -0,0 +1,43 @@
1
+ namespace :album do
2
+ desc "metadata handling for a given album"
3
+ namespace :metadata do
4
+ desc "generate metadata for an album in a given path"
5
+ task :generate do
6
+ puts ""
7
+ print "Type the album path: "
8
+ path = STDIN.gets.chomp
9
+ if File.directory?(path)
10
+ puts "Title:"
11
+ title = STDIN.gets.chomp
12
+ unless title.nil?
13
+ puts "Description (optional):"
14
+ description = STDIN.gets.chomp
15
+ puts "Author (optional):"
16
+ author = STDIN.gets.chomp
17
+ info = {"album" => {"title" => title, "description" => description, "author" => author}}
18
+ File.open("#{path}/.info.yml", 'w+') {|f| f.write(info.to_yaml) }
19
+ else
20
+ puts "Title cannot be empty. Run the task again"
21
+ end
22
+ else
23
+ puts "Sorry but #{path.inspect} entered is not a folder. Run the task again"
24
+ end
25
+ end
26
+
27
+ desc "retrieve metadata album based on path"
28
+ task :check do
29
+ puts ""
30
+ print "Type the album path: "
31
+ path = STDIN.gets.chomp
32
+ info_file = "#{path}/.info.yml"
33
+ if File.directory?(path) && File.exists?(info_file)
34
+ data = YAML.load_file(info_file)['album']
35
+ puts "Title: #{data['title']}"
36
+ puts "Description: #{data['description']}"
37
+ puts "Author: #{data['author']}"
38
+ else
39
+ puts "Sorry but #{path.inspect} entered is not a folder. Run the task again"
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,28 @@
1
+ namespace :thumbnail do
2
+
3
+ desc "Generate thumbnail for a given folder or just a single file"
4
+ task :generate, :source do |t, args|
5
+ if File.directory?(args[:source]) || File.exists?(args[:source])
6
+ size = Picturama::config['thumnail_default_size']
7
+ album = Picturama::Album.new(:folder => args[:source])
8
+ puts "Generating #{album.count_pictures} thumbnails for folder #{args[:source]}..."
9
+ puts "Size: #{size}"
10
+ unless album.has_broken_thumbnails?
11
+ puts "WARNING: Seems that this album has all his thumbnails properly generated. There are no broken thumbs."
12
+ end
13
+ album.init_thumbnails
14
+ album.pictures.each do |picture|
15
+ unless picture.has_thumbnail?
16
+ thumb = MiniMagick::Image.open(picture.path)
17
+ thumb.resize "#{size}"
18
+ thumb.format "jpg"
19
+ thumb.write picture.thumbnail
20
+ puts "Thumbnail generated for source #{File.basename(picture.path)}. Target destination #{File.basename(picture.thumbnail)}"
21
+ end
22
+ end
23
+ else
24
+ puts "Error => target destination #{args[:source]} does not exist"
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,14 @@
1
+ namespace :url do
2
+ desc "Normalize album names name for URL format"
3
+ task :sluglify, :source do |t, args|
4
+ albums = Picturama::albums(args[:source])
5
+ puts "In folder #{args[:source].inspect} I'm moving..."
6
+ albums.each do |album|
7
+ target_folder = "#{args[:source]}/#{album.folder.to_url}"
8
+ unless File.directory?(target_folder)
9
+ FileUtils.mv "#{args[:source]}/#{album.folder}", "#{target_folder}"
10
+ puts "#{album.folder.inspect} to #{album.folder.to_url.inspect}"
11
+ end
12
+ end
13
+ end
14
+ end
data/rakefile CHANGED
@@ -10,92 +10,6 @@ require "bundler/gem_tasks"
10
10
  require "rake"
11
11
  require "rake/testtask"
12
12
 
13
- namespace :thumbnail do
13
+ Dir.glob('lib/tasks/*.rake').each {|r| import r}
14
14
 
15
- desc "Generate thumbnail for a given folder or just a single file"
16
- task :generate, :source do |t, args|
17
- if File.directory?(args[:source]) || File.exists?(args[:source])
18
- size = Picturama::config['thumnail_default_size']
19
- album = Picturama::Album.new(:folder => args[:source])
20
- puts "Generating #{album.count_pictures} thumbnails for folder #{args[:source]}..."
21
- puts "Size: #{size}"
22
- unless album.has_broken_thumbnails?
23
- puts "WARNING: Seems that this album has all his thumbnails properly generated. There are no broken thumbs."
24
- end
25
- album.init_thumbnails
26
- album.pictures.each do |picture|
27
- unless picture.has_thumbnail?
28
- thumb = MiniMagick::Image.open(picture.path)
29
- thumb.resize "#{size}"
30
- thumb.format "jpg"
31
- thumb.write picture.thumbnail
32
- puts "Thumbnail generated for source #{File.basename(picture.path)}. Target destination #{File.basename(picture.thumbnail)}"
33
- end
34
- end
35
- else
36
- puts "Error => target destination #{args[:source]} does not exist"
37
- end
38
- end
39
-
40
- end
41
-
42
- namespace :url do
43
- desc "Normalize album names name for URL format"
44
- task :sluglify, :source do |t, args|
45
- albums = Picturama::albums(args[:source])
46
- puts "In folder #{args[:source].inspect} I'm moving..."
47
- albums.each do |album|
48
- target_folder = "#{args[:source]}/#{album.folder.to_url}"
49
- unless File.directory?(target_folder)
50
- FileUtils.mv "#{args[:source]}/#{album.folder}", "#{target_folder}"
51
- puts "#{album.folder.inspect} to #{album.folder.to_url.inspect}"
52
- end
53
- end
54
- end
55
- end
56
-
57
- namespace :album do
58
- desc "metadata handling for a given album"
59
- namespace :metadata do
60
- desc "generate metadata for an album in a given path"
61
- task :generate do
62
- puts ""
63
- print "Type the album path: "
64
- path = STDIN.gets.chomp
65
- if File.directory?(path)
66
- puts "Title:"
67
- title = STDIN.gets.chomp
68
- unless title.nil?
69
- puts "Description (optional):"
70
- description = STDIN.gets.chomp
71
- puts "Author (optional):"
72
- author = STDIN.gets.chomp
73
- info = {"album" => {"title" => title, "description" => description, "author" => author}}
74
- File.open("#{path}/.info.yml", 'w+') {|f| f.write(info.to_yaml) }
75
- else
76
- puts "Title cannot be empty. Run the task again"
77
- end
78
- else
79
- puts "Sorry but #{path.inspect} entered is not a folder. Run the task again"
80
- end
81
- end
82
-
83
- desc "retrieve metadata an album based on path"
84
- task :check do
85
- puts ""
86
- print "Type the album path: "
87
- path = STDIN.gets.chomp
88
- info_file = "#{path}/.info.yml"
89
- if File.directory?(path) && File.exists?(info_file)
90
- data = YAML.load_file(info_file)['album']
91
- puts "Title: #{data['title']}"
92
- puts "Description: #{data['description']}"
93
- puts "Author: #{data['author']}"
94
- else
95
- puts "Sorry but #{path.inspect} entered is not a folder. Run the task again"
96
- end
97
- end
98
- end
99
- end
100
-
101
- task :default
15
+ task :default
@@ -22,5 +22,13 @@ describe "For a given picture in a given album" do
22
22
  @picture.has_thumbnail?.should be_false
23
23
  end
24
24
 
25
+ it "checks the image basename" do
26
+ @picture.basename.should == 'king.jpg'
27
+ end
28
+
29
+ it "checks the image extension" do
30
+ @picture.type.downcase.should == 'jpg'
31
+ end
32
+
25
33
 
26
34
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: picturama
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-09 00:00:00.000000000 Z
12
+ date: 2013-06-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mini_magick
@@ -80,6 +80,9 @@ files:
80
80
  - lib/picturama/album.rb
81
81
  - lib/picturama/picture.rb
82
82
  - lib/picturama/version.rb
83
+ - lib/tasks/album.rake
84
+ - lib/tasks/thumbnail.rake
85
+ - lib/tasks/url.rake
83
86
  - picturama.gemspec
84
87
  - rakefile
85
88
  - spec/album_spec.rb
@@ -104,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
107
  version: '0'
105
108
  segments:
106
109
  - 0
107
- hash: 760458003
110
+ hash: -319223615
108
111
  required_rubygems_version: !ruby/object:Gem::Requirement
109
112
  none: false
110
113
  requirements:
@@ -113,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
116
  version: '0'
114
117
  segments:
115
118
  - 0
116
- hash: 760458003
119
+ hash: -319223615
117
120
  requirements: []
118
121
  rubyforge_project:
119
122
  rubygems_version: 1.8.24