photish 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 065983f865e77de75e2248edfe93374ec4d1fe10
4
- data.tar.gz: 07eeac3a6faf3131980227b61cc2fcb4ccdfc690
3
+ metadata.gz: 1d2196afefb3930e090519fd81435fbba5c8347c
4
+ data.tar.gz: 5b2213f00cf0521772295fb2e21f84e764cfdbb1
5
5
  SHA512:
6
- metadata.gz: 8ca0b8fe9f7c0ab35bd28c369fbfc53fcf269e2107a39bfc9649270304bbb2984de91a31e60c9289312af4710f9b3491fced3bcb2a5f6e85c774ec60a63214e4
7
- data.tar.gz: 78e3cb4c65245c584a76a63d82bd8a8730ec62747a0084dc9667fd069d18019fd6432d2fa7195dc949abe101134762ad0aa66e810a27b2025e5ffb90a50c4c1f
6
+ metadata.gz: 3db008201ee711a28556bbd0c5b7d65f1e6dca3a6a0c775518c88e61881fd885f55ad11cfee2ab4b208144f4346dd92e6759bfd0f90f8146dc0c1ab4d079d5e0
7
+ data.tar.gz: 732b2b201fabfc21593277d1c633bc8a54d4d464d658085871a626e12b5fe02f627f3de53082fd86374723a8620736ca2b32e18d551d8d0d2874d8a766bb1d22
data/README.md CHANGED
@@ -216,6 +216,7 @@ File or Folder | Purpose
216
216
  --------------------------------- | -------
217
217
  `photos` | folder, for your photo collection and metadata
218
218
  `site` | folder for your templates, assets and static pages
219
+ `site/_plugins` | folder for plugins to be loaded from
219
220
  `site/_templates` | folder for your templates
220
221
  `site/_templates/layout.slim` | file for the basic layout for all pages
221
222
  `site/_templates/collection.slim` | template file for your collection page
@@ -278,6 +279,9 @@ logging:
278
279
  colorize: true
279
280
  level: 'info'
280
281
  output: ['stdout', 'file']
282
+ url:
283
+ host: http://mydomain.com
284
+ base: 'subdirectory'
281
285
  ```
282
286
 
283
287
  The meanings and purpose of each field is defined below:
@@ -297,6 +301,9 @@ Field | Purpose
297
301
  `logging/colorize` | when outputting to `STDOUT`, `true` to use color, `false` for none
298
302
  `logging/level` | the default logging level, it is advised to keep this at `info`
299
303
  `logging/output` | the appenders for the logger, `stdout` goes to `STDOUT`, `file` goes to `log/photish.log`
304
+ `url` | a listing of the various url options
305
+ `url/host` | default is to leave this configuration blank, however if you would like URLs generated with a specific host prefix, you can define it here
306
+ `url/base` | default is to leave this configuration blank, if your website will be hosted in a sub folder and will not be accessible at the root of the host, you can specify the sub folder(s) here, this will also mean your website will be hosted in a sub folder when ran using `photish host`
300
307
 
301
308
  #### Customizing Templates
302
309
 
@@ -521,6 +528,15 @@ If the above code is saved to `site/_plugins/shout.rb` Photish will detect the
521
528
  plugin ruby file at runtime and it will load and make the method available in
522
529
  the template.
523
530
 
531
+ A Template Helper Plugin `self.is_for?(type)` method could potentially receive
532
+ any of the below types, simply return true for the types the Template Helper
533
+ Plugin supports:
534
+
535
+ 1. `Photish::Plugin::Type::Collection`
536
+ 1. `Photish::Plugin::Type::Album`
537
+ 1. `Photish::Plugin::Type::Photo`
538
+ 1. `Photish::Plugin::Type::Image`
539
+
524
540
  A usage example is below
525
541
 
526
542
  **site/_templates/photo.slim**
data/TODO.md CHANGED
@@ -15,3 +15,5 @@
15
15
  1. Share on RubyWebToolkit, StaticGen, etc
16
16
  1. RDoc documentation for classes
17
17
  1. More intelligent regeneration based on changes
18
+ 1. Change `init` to have `--example` and normal for barebones
19
+ 1. Add `Gemfile` to `init`
data/exe/photish CHANGED
@@ -8,5 +8,5 @@ if ENV['COVERAGE']
8
8
  SimpleCov.start CodeClimate::TestReporter.configuration.profile
9
9
  end
10
10
 
11
- require 'photish/cli/interface'
11
+ require 'photish'
12
12
  Photish::CLI::Interface.start
@@ -0,0 +1,30 @@
1
+ class Photish::Plugin::TmpdirDeploy
2
+
3
+ def initialize(config, log)
4
+ @config = config
5
+ @log = log
6
+ end
7
+
8
+ def deploy
9
+ tmpdir = Dir.mktmpdir
10
+ FileUtils.cp_r(config.output_dir, tmpdir)
11
+
12
+ log.info "Static site deployed to directory: #{tmpdir}"
13
+ log.info "Deployment to tmpdir successful"
14
+ end
15
+
16
+ private
17
+
18
+ attr_reader :config,
19
+ :log
20
+
21
+ def self.is_for?(type)
22
+ [
23
+ Photish::Plugin::Type::Deploy
24
+ ].include?(type)
25
+ end
26
+
27
+ def self.engine_name
28
+ 'tmpdir'
29
+ end
30
+ end
@@ -1,8 +1,3 @@
1
- require 'thor'
2
- require 'photish/command/generate'
3
- require 'photish/command/host'
4
- require 'photish/command/init'
5
-
6
1
  module Photish
7
2
  module CLI
8
3
  class Interface < Thor
@@ -22,6 +17,12 @@ module Photish
22
17
  def init
23
18
  Photish::Command::Init.new(options).execute
24
19
  end
20
+
21
+ desc "deploy", "Deploys the static site, using the specified engine"
22
+ method_option :engine, required: true
23
+ def deploy
24
+ Photish::Command::Deploy.new(options).execute
25
+ end
25
26
  end
26
27
  end
27
28
  end
@@ -0,0 +1,36 @@
1
+ module Photish
2
+ module Command
3
+ class Base
4
+ def initialize(runtime_config)
5
+ @runtime_config = runtime_config
6
+ @log = Logging.logger[self]
7
+ end
8
+
9
+ def execute
10
+ setup_logging
11
+ begin
12
+ run
13
+ rescue => e
14
+ log.fatal "An exception occured #{e.class} \"#{e.message}\" #{e.backtrace.join("\n")}"
15
+ false
16
+ end
17
+ end
18
+
19
+ protected
20
+
21
+ attr_reader :runtime_config,
22
+ :log
23
+
24
+ def config
25
+ @config ||= Photish::Config::AppSettings.new(runtime_config)
26
+ .config
27
+ end
28
+
29
+ private
30
+
31
+ def setup_logging
32
+ Photish::Log::Logger.instance.setup_logging(config)
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,44 @@
1
+ module Photish
2
+ module Command
3
+ class Deploy < Base
4
+ def run
5
+ load_all_plugins
6
+ log.info "Requested engine: #{engine}"
7
+
8
+ return no_engine_found unless engine
9
+
10
+ log.info "Deploying with engine #{engine_class}"
11
+ engine_class.new(config, log).deploy
12
+ end
13
+
14
+ private
15
+
16
+ delegate :engine,
17
+ :site_dir,
18
+ to: :config
19
+
20
+
21
+ def no_engine_found
22
+ log.info "No engine found..."
23
+ end
24
+
25
+ def load_all_plugins
26
+ Photish::Plugin::Repository.reload(log, site_dir)
27
+ end
28
+
29
+ def engine_class
30
+ @engine ||= deploy_plugins.find do |p|
31
+ p.engine_name == engine
32
+ end
33
+ end
34
+
35
+ def deploy_plugins
36
+ Photish::Plugin::Repository.plugins_for(deploy_plugin_type)
37
+ end
38
+
39
+ def deploy_plugin_type
40
+ Photish::Plugin::Type::Deploy
41
+ end
42
+ end
43
+ end
44
+ end
@@ -1,19 +1,7 @@
1
- require 'photish/log/logger'
2
- require 'photish/config/app_settings'
3
- require 'photish/gallery/collection'
4
- require 'photish/render/site'
5
-
6
1
  module Photish
7
2
  module Command
8
- class Generate
9
- def initialize(runtime_config)
10
- @runtime_config = runtime_config
11
- @log = Logging.logger[self]
12
- end
13
-
14
- def execute
15
- Photish::Log::Logger.instance.setup_logging(config)
16
-
3
+ class Generate < Base
4
+ def run
17
5
  log_important_config_values
18
6
  load_all_plugins
19
7
  log_album_and_photo_names
@@ -23,22 +11,16 @@ module Photish
23
11
 
24
12
  private
25
13
 
26
- attr_reader :runtime_config,
27
- :log
14
+ delegate :output_dir,
15
+ :site_dir,
16
+ :photo_dir,
17
+ :qualities,
18
+ :templates,
19
+ :url,
20
+ to: :config
28
21
 
29
22
  def load_all_plugins
30
- Dir[File.join(site_dir, '_plugins', '*.rb')].each do |file|
31
- require file
32
- end
33
-
34
- Photish::Plugin::Repository.all_plugins.each do |plugin|
35
- log.info "Found plugin #{plugin}"
36
- end
37
- end
38
-
39
- def config
40
- @config ||= Photish::Config::AppSettings.new(runtime_config)
41
- .config
23
+ Photish::Plugin::Repository.reload(log, site_dir)
42
24
  end
43
25
 
44
26
  def log_important_config_values
@@ -61,29 +43,14 @@ module Photish
61
43
  .all_for(collection)
62
44
  end
63
45
 
64
- def photo_dir
65
- config.val(:photo_dir)
66
- end
67
-
68
- def output_dir
69
- config.val(:output_dir)
70
- end
71
-
72
- def site_dir
73
- config.val(:site_dir)
74
- end
75
-
76
46
  def collection
77
- @collection ||= Gallery::Collection.new(photo_dir, qualities)
78
- end
79
-
80
- def qualities
81
- config.val(:qualities)
82
- .map { |quality| OpenStruct.new(quality) }
47
+ @collection ||= Gallery::Collection.new(photo_dir,
48
+ qualities_mapped,
49
+ url)
83
50
  end
84
51
 
85
- def templates
86
- OpenStruct.new(config.val(:templates))
52
+ def qualities_mapped
53
+ qualities.map { |quality| OpenStruct.new(quality) }
87
54
  end
88
55
  end
89
56
  end
@@ -1,17 +1,7 @@
1
- require 'photish/log/logger'
2
- require 'photish/log/access_log'
3
- require 'webrick'
4
- require 'listen'
5
-
6
1
  module Photish
7
2
  module Command
8
- class Host
9
- def initialize(runtime_config)
10
- @runtime_config = runtime_config
11
- @log = Logging.logger[self]
12
- end
13
-
14
- def execute
3
+ class Host < Base
4
+ def run
15
5
  Photish::Log::Logger.instance.setup_logging(config)
16
6
 
17
7
  log.info "Site will be running at http://0.0.0.0:#{port}/"
@@ -23,8 +13,11 @@ module Photish
23
13
 
24
14
  private
25
15
 
26
- attr_reader :runtime_config,
27
- :log
16
+ delegate :port,
17
+ :output_dir,
18
+ :site_dir,
19
+ :photo_dir,
20
+ to: :config
28
21
 
29
22
  def start_http_server_with_listener
30
23
  trap 'INT' do server.shutdown end
@@ -34,11 +27,6 @@ module Photish
34
27
  log.info "Photish host has shutdown"
35
28
  end
36
29
 
37
- def config
38
- @config ||= Photish::Config::AppSettings.new(runtime_config)
39
- .config
40
- end
41
-
42
30
  def server
43
31
  @server ||= WEBrick::HTTPServer.new(Port: port,
44
32
  DocumentRoot: output_dir,
@@ -58,7 +46,7 @@ module Photish
58
46
 
59
47
  def paths_to_monitor
60
48
  [site_dir,
61
- photos_dir]
49
+ photo_dir]
62
50
  end
63
51
 
64
52
  def access_log
@@ -73,22 +61,6 @@ module Photish
73
61
  Photish::Command::Generate.new(runtime_config)
74
62
  .execute
75
63
  end
76
-
77
- def port
78
- config.val(:port)
79
- end
80
-
81
- def output_dir
82
- config.val(:output_dir)
83
- end
84
-
85
- def site_dir
86
- config.val(:site_dir)
87
- end
88
-
89
- def photos_dir
90
- config.val(:photo_dir)
91
- end
92
64
  end
93
65
  end
94
66
  end
@@ -1,33 +1,16 @@
1
- require 'photish/log/logger'
2
-
3
1
  module Photish
4
2
  module Command
5
- class Init
6
- def initialize(runtime_config)
7
- @runtime_config = runtime_config
8
- @log = Logging.logger[self]
9
- end
10
-
11
- def execute
12
- Photish::Log::Logger.instance.setup_logging(config)
13
-
3
+ class Init < Base
4
+ def run
14
5
  FileUtils.cp_r(config_file, Dir.pwd)
15
6
  FileUtils.cp_r(gitignore_file, File.join(Dir.pwd, '.gitignore'))
16
- FileUtils.cp_r(photos_dir, Dir.pwd)
7
+ FileUtils.cp_r(photo_dir, Dir.pwd)
17
8
  FileUtils.cp_r(site_dir, Dir.pwd)
18
9
  log.info "Photish site initiated successfully"
19
10
  end
20
11
 
21
12
  private
22
13
 
23
- attr_reader :runtime_config,
24
- :log
25
-
26
- def config
27
- @config ||= Photish::Config::AppSettings.new(runtime_config)
28
- .config
29
- end
30
-
31
14
  def config_file
32
15
  asset_path('config.yml')
33
16
  end
@@ -36,7 +19,7 @@ module Photish
36
19
  asset_path('gitignore')
37
20
  end
38
21
 
39
- def photos_dir
22
+ def photo_dir
40
23
  asset_path('photos')
41
24
  end
42
25
 
@@ -1,31 +1,41 @@
1
- require 'photish/config/settings'
2
- require 'photish/config/location'
3
-
4
1
  module Photish
5
2
  module Config
6
3
  class AppSettings
7
4
  def initialize(runtime_config)
8
- @runtime_config = runtime_config
5
+ @runtime_config = symbolize(runtime_config)
9
6
  end
10
7
 
11
8
  def config
12
- @config ||= Config::Settings
13
- .new(default_config)
14
- .override(file_config)
15
- .override(runtime_config)
9
+ @config ||= RecursiveOpenStruct.new(prioritized_config)
16
10
  end
17
11
 
18
12
  private
19
13
 
20
14
  attr_reader :runtime_config
21
15
 
16
+ def prioritized_config
17
+ {}.merge(default_config)
18
+ .merge(file_config)
19
+ .merge(runtime_config)
20
+ end
21
+
22
22
  def file_config
23
- config_location = Config::Location.new(runtime_config[:site_dir])
24
- Config::FileConfig.new(config_location.path).hash
23
+ symbolize(FileConfig.new(file_config_location)
24
+ .hash)
25
25
  end
26
26
 
27
27
  def default_config
28
- Config::DefaultConfig.new.hash
28
+ symbolize(DefaultConfig.new.hash)
29
+ end
30
+
31
+ def file_config_location
32
+ FileConfigLocation.new(runtime_config[:site_dir])
33
+ .path
34
+ end
35
+
36
+ def symbolize(hash)
37
+ (hash || {})
38
+ .deep_symbolize_keys
29
39
  end
30
40
  end
31
41
  end
@@ -23,6 +23,10 @@ module Photish
23
23
  colorize: true,
24
24
  output: ['stdout', 'file'],
25
25
  level: 'info'
26
+ },
27
+ url: {
28
+ host: '/',
29
+ base: nil
26
30
  }
27
31
  }
28
32
  end
@@ -1,5 +1,3 @@
1
- require 'yaml'
2
-
3
1
  module Photish
4
2
  module Config
5
3
  class FileConfig
@@ -1,6 +1,6 @@
1
1
  module Photish
2
2
  module Config
3
- class Location
3
+ class FileConfigLocation
4
4
  FILE_NAME = 'config.yml'
5
5
 
6
6
  def initialize(site_dir)
@@ -1,13 +1,3 @@
1
- require 'photish/gallery/photo'
2
- require 'photish/gallery/traits/urlable'
3
- require 'photish/gallery/traits/albumable'
4
- require 'photish/gallery/traits/metadatable'
5
- require 'photish/gallery/traits/breadcrumbable'
6
- require 'photish/plugin/pluginable'
7
- require 'active_support'
8
- require 'active_support/core_ext'
9
- require 'filemagic'
10
-
11
1
  module Photish
12
2
  module Gallery
13
3
  class Album
@@ -17,7 +7,9 @@ module Photish
17
7
  include Photish::Gallery::Traits::Breadcrumbable
18
8
  include Photish::Plugin::Pluginable
19
9
 
20
- delegate :qualities, to: :parent, allow_nil: true
10
+ delegate :qualities,
11
+ :url_info,
12
+ to: :parent, allow_nil: true
21
13
 
22
14
  def initialize(parent, path)
23
15
  super
@@ -1,9 +1,3 @@
1
- require 'photish/gallery/album'
2
- require 'photish/gallery/traits/albumable'
3
- require 'photish/gallery/traits/metadatable'
4
- require 'photish/gallery/traits/breadcrumbable'
5
- require 'photish/plugin/pluginable'
6
-
7
1
  module Photish
8
2
  module Gallery
9
3
  class Collection
@@ -13,12 +7,14 @@ module Photish
13
7
  include Photish::Gallery::Traits::Breadcrumbable
14
8
  include Photish::Plugin::Pluginable
15
9
 
16
- attr_reader :qualities
10
+ attr_reader :qualities,
11
+ :url_info
17
12
 
18
- def initialize(path, qualities)
13
+ def initialize(path, qualities, url_info)
19
14
  super
20
15
  @path = path
21
16
  @qualities = qualities
17
+ @url_info = url_info
22
18
  end
23
19
 
24
20
  def name
@@ -26,7 +22,7 @@ module Photish
26
22
  end
27
23
 
28
24
  def base_url_parts
29
- []
25
+ [url_info.base].flatten.compact
30
26
  end
31
27
 
32
28
  def plugin_type
@@ -1,7 +1,3 @@
1
- require 'active_support'
2
- require 'active_support/core_ext'
3
- require 'photish/plugin/pluginable'
4
-
5
1
  module Photish
6
2
  module Gallery
7
3
  class Image
@@ -12,6 +8,9 @@ module Photish
12
8
  :params,
13
9
  to: :quality, prefix: true, allow_nil: true
14
10
 
11
+ delegate :url_info,
12
+ to: :parent, allow_nil: true
13
+
15
14
  attr_reader :path
16
15
 
17
16
  def initialize(parent, path, quality)
@@ -1,12 +1,3 @@
1
- require 'photish/gallery/traits/urlable'
2
- require 'photish/gallery/traits/metadatable'
3
- require 'photish/gallery/traits/breadcrumbable'
4
- require 'photish/gallery/image'
5
- require 'photish/plugin/pluginable'
6
- require 'active_support'
7
- require 'active_support/core_ext'
8
- require 'mini_exiftool'
9
-
10
1
  module Photish
11
2
  module Gallery
12
3
  class Photo
@@ -15,7 +6,9 @@ module Photish
15
6
  include Photish::Gallery::Traits::Breadcrumbable
16
7
  include Photish::Plugin::Pluginable
17
8
 
18
- delegate :qualities, to: :parent, allow_nil: true
9
+ delegate :qualities,
10
+ :url_info,
11
+ to: :parent, allow_nil: true
19
12
 
20
13
  def initialize(parent, path)
21
14
  super
@@ -1,5 +1,3 @@
1
- require 'nokogiri'
2
-
3
1
  module Photish
4
2
  module Gallery
5
3
  module Traits
@@ -1,6 +1,3 @@
1
- require 'yaml'
2
- require 'recursive_open_struct'
3
-
4
1
  module Photish
5
2
  module Gallery
6
3
  module Traits
@@ -1,11 +1,9 @@
1
- require 'cgi'
2
-
3
1
  module Photish
4
2
  module Gallery
5
3
  module Traits
6
4
  module Urlable
7
5
  def url
8
- '/' + url_parts.join('/')
6
+ [host, url_parts].flatten.join('/')
9
7
  end
10
8
 
11
9
  def url_parts
@@ -18,6 +16,14 @@ module Photish
18
16
 
19
17
  private
20
18
 
19
+ def host
20
+ normalized_host || ''
21
+ end
22
+
23
+ def normalized_host
24
+ url_info.host.try(:chomp, '/')
25
+ end
26
+
21
27
  def slugify(word)
22
28
  CGI.escape(word.downcase.gsub(' ', '-'))
23
29
  end
@@ -1,5 +1,3 @@
1
- require 'logging'
2
-
3
1
  module Photish
4
2
  module Log
5
3
  class Logger
@@ -24,19 +22,19 @@ module Photish
24
22
  private
25
23
 
26
24
  def logging_level(config)
27
- config.val(:logging)[:level].to_sym
25
+ config.logging.level.to_sym
28
26
  end
29
27
 
30
28
  def colorize?(config)
31
- config.val(:logging)[:colorize]
29
+ config.logging.colorize
32
30
  end
33
31
 
34
32
  def output_to_stdout?(config)
35
- config.val(:logging)[:output].include?('stdout')
33
+ config.logging.output.include?('stdout')
36
34
  end
37
35
 
38
36
  def output_to_file?(config)
39
- config.val(:logging)[:output].include?('file')
37
+ config.logging.output.include?('file')
40
38
  end
41
39
 
42
40
  def setup_color_scheme
@@ -1,6 +1,3 @@
1
- require 'photish/plugin/type'
2
- require 'photish/plugin/repository'
3
-
4
1
  module Photish
5
2
  module Plugin
6
3
  module Pluginable
@@ -1,8 +1,18 @@
1
-
2
1
  module Photish
3
2
  module Plugin
4
3
  module Repository
5
4
  class << self
5
+ def reload(log, site_dir)
6
+ log.info "Loading plugins..."
7
+ Dir[File.join(site_dir, '_plugins', '*.rb')].each do |file|
8
+ load file
9
+ end
10
+
11
+ all_plugins.each do |plugin|
12
+ log.info "Found plugin #{plugin}"
13
+ end
14
+ end
15
+
6
16
  def plugins_for(type)
7
17
  all_plugins.reject { |m| !m.is_for?(type) }
8
18
  end
@@ -2,9 +2,10 @@ module Photish
2
2
  module Plugin
3
3
  module Type
4
4
  module Collection; end
5
- module Album; end
6
- module Photo; end
7
- module Image; end
5
+ module Album; end
6
+ module Photo; end
7
+ module Image; end
8
+ module Deploy; end
8
9
  end
9
10
  end
10
11
  end
@@ -1,6 +1,3 @@
1
- require 'photish/cli/interface'
2
- require 'rake'
3
-
4
1
  module Photish
5
2
  module Rake
6
3
  class Task
@@ -1,5 +1,3 @@
1
- require 'mini_magick'
2
-
3
1
  module Photish
4
2
  module Render
5
3
  class ImageConversion
@@ -1,5 +1,3 @@
1
- require 'tilt'
2
-
3
1
  module Photish
4
2
  module Render
5
3
  class Page
@@ -1,6 +1,3 @@
1
- require 'photish/render/page'
2
- require 'photish/render/image_conversion'
3
-
4
1
  module Photish
5
2
  module Render
6
3
  class Site
@@ -1,3 +1,3 @@
1
1
  module Photish
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/photish.rb CHANGED
@@ -1,4 +1,50 @@
1
- require "photish/version"
1
+ # 3rd Party
2
+ require 'mini_magick'
3
+ require 'logging'
4
+ require 'tilt'
5
+ require 'rake'
6
+ require 'active_support'
7
+ require 'active_support/core_ext'
8
+ require 'mini_exiftool'
9
+ require 'webrick'
10
+ require 'listen'
11
+ require 'yaml'
12
+ require 'thor'
13
+ require 'filemagic'
14
+ require 'recursive_open_struct'
15
+ require 'cgi'
16
+
17
+ # Photish
18
+ require 'photish/plugin/type'
19
+ require 'photish/plugin/pluginable'
20
+ require 'photish/plugin/repository'
21
+ require 'photish/command/base'
22
+ require 'photish/command/generate'
23
+ require 'photish/command/host'
24
+ require 'photish/command/init'
25
+ require 'photish/command/deploy'
26
+ require 'photish/cli/interface'
27
+ require 'photish/log/logger'
28
+ require 'photish/log/logger'
29
+ require 'photish/log/access_log'
30
+ require 'photish/log/logger'
31
+ require 'photish/config/default_config'
32
+ require 'photish/config/file_config'
33
+ require 'photish/config/file_config_location'
34
+ require 'photish/config/app_settings'
35
+ require 'photish/gallery/traits/urlable'
36
+ require 'photish/gallery/traits/albumable'
37
+ require 'photish/gallery/traits/metadatable'
38
+ require 'photish/gallery/traits/breadcrumbable'
39
+ require 'photish/gallery/photo'
40
+ require 'photish/gallery/album'
41
+ require 'photish/gallery/image'
42
+ require 'photish/gallery/collection'
43
+ require 'photish/render/page'
44
+ require 'photish/render/site'
45
+ require 'photish/render/image_conversion'
46
+ require 'photish/rake/task'
47
+ require 'photish/version'
2
48
 
3
49
  module Photish
4
50
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: photish
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henry Lawson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-28 00:00:00.000000000 Z
11
+ date: 2015-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -328,6 +328,7 @@ files:
328
328
  - lib/photish/assets/photos/Small Dogs/Sleepy Dog.yml
329
329
  - lib/photish/assets/photos/Small Dogs/Squishy Dogs/Big Ear Dog.jpg
330
330
  - lib/photish/assets/site/_plugins/footer_links.rb
331
+ - lib/photish/assets/site/_plugins/tmpdir_deploy.rb
331
332
  - lib/photish/assets/site/_plugins/yell_loud.rb
332
333
  - lib/photish/assets/site/_templates/album.slim
333
334
  - lib/photish/assets/site/_templates/collection.slim
@@ -337,14 +338,15 @@ files:
337
338
  - lib/photish/assets/site/images/crumbs.gif
338
339
  - lib/photish/assets/site/styles/basic.css
339
340
  - lib/photish/cli/interface.rb
341
+ - lib/photish/command/base.rb
342
+ - lib/photish/command/deploy.rb
340
343
  - lib/photish/command/generate.rb
341
344
  - lib/photish/command/host.rb
342
345
  - lib/photish/command/init.rb
343
346
  - lib/photish/config/app_settings.rb
344
347
  - lib/photish/config/default_config.rb
345
348
  - lib/photish/config/file_config.rb
346
- - lib/photish/config/location.rb
347
- - lib/photish/config/settings.rb
349
+ - lib/photish/config/file_config_location.rb
348
350
  - lib/photish/gallery/album.rb
349
351
  - lib/photish/gallery/collection.rb
350
352
  - lib/photish/gallery/image.rb
@@ -1,34 +0,0 @@
1
- require 'yaml'
2
- require 'active_support'
3
- require 'active_support/core_ext'
4
- require 'photish/config/default_config'
5
- require 'photish/config/file_config'
6
-
7
- module Photish
8
- module Config
9
- class Settings
10
- def initialize(config = nil)
11
- @config = compact_symbolize(config)
12
- end
13
-
14
- def val(key)
15
- config[key.to_sym]
16
- end
17
-
18
- def override(hash)
19
- cleaned_hash = compact_symbolize(hash)
20
- self.class.new(config.merge(cleaned_hash))
21
- end
22
-
23
- private
24
-
25
- attr_reader :config
26
-
27
- def compact_symbolize(hash)
28
- (hash || {})
29
- .compact
30
- .deep_symbolize_keys
31
- end
32
- end
33
- end
34
- end