lib/nanoc/data_sources/filesystem.rb in nanoc-3.8.0 vs lib/nanoc/data_sources/filesystem.rb in nanoc-4.0.0a1

- old
+ new

@@ -1,20 +1,12 @@ # encoding: utf-8 module Nanoc::DataSources # Provides functionality common across all filesystem data sources. + # + # @api private module Filesystem - # The VCS that will be called when adding, deleting and moving files. If - # no VCS has been set, or if the VCS has been set to `nil`, a dummy VCS - # will be returned. - # - # @return [Nanoc::Extra::VCS, nil] The VCS that will be used. - def vcs - @vcs ||= Nanoc::Extra::VCSes::Dummy.new - end - attr_writer :vcs - # See {Nanoc::DataSource#up}. def up end # See {Nanoc::DataSource#down}. @@ -27,39 +19,20 @@ def layouts_dir_name config.fetch(:layouts_dir, 'layouts') end - # See {Nanoc::DataSource#setup}. - def setup - # Create directories - [content_dir_name, layouts_dir_name].each do |dir| - FileUtils.mkdir_p(dir) - vcs.add(dir) - end - end - # See {Nanoc::DataSource#items}. def items - load_objects(content_dir_name, 'item', Nanoc::Item) + load_objects(content_dir_name, 'item', Nanoc::Int::Item) end # See {Nanoc::DataSource#layouts}. def layouts - load_objects(layouts_dir_name, 'layout', Nanoc::Layout) + load_objects(layouts_dir_name, 'layout', Nanoc::Int::Layout) end - # See {Nanoc::DataSource#create_item}. - def create_item(content, attributes, identifier, params = {}) - create_object(content_dir_name, content, attributes, identifier, params) - end - - # See {Nanoc::DataSource#create_layout}. - def create_layout(content, attributes, identifier, params = {}) - create_object(layouts_dir_name, content, attributes, identifier, params) - end - protected # Creates a new object (item or layout) on disk in dir_name according to # the given identifier. The file will have its attributes taken from the # attributes hash argument and its content from the content argument. @@ -86,14 +59,14 @@ meta_filename = filename_for(base_filename, meta_ext) content_filename = filename_for(base_filename, content_ext) # Read content and metadata is_binary = content_filename && !@site.config[:text_extensions].include?(File.extname(content_filename)[1..-1]) - if is_binary && klass == Nanoc::Item + if is_binary && klass == Nanoc::Int::Item meta = (meta_filename && YAML.load_file(meta_filename)) || {} content_or_filename = content_filename - elsif is_binary && klass == Nanoc::Layout + elsif is_binary && klass == Nanoc::Int::Layout raise "The layout file '#{content_filename}' is a binary file, but layouts can only be textual" else meta, content_or_filename = parse(content_filename, meta_filename, kind) end @@ -101,13 +74,9 @@ attributes = { filename: content_filename, content_filename: content_filename, meta_filename: meta_filename, extension: content_filename ? ext_of(content_filename)[1..-1] : nil, - # WARNING :file is deprecated; please create a File object manually - # using the :content_filename or :meta_filename attributes. - # TODO: [in nanoc 4.0] remove me - file: content_filename ? Nanoc::Extra::FileProxy.new(content_filename) : nil }.merge(meta) # Get identifier if meta_filename identifier = identifier_for_filename(meta_filename[(dir_name.length + 1)..-1])