class StylesheetsDataset < Dataset::Base

  def load
    create_stylesheet "main", :content => "Main stylesheet content"
  end


  helpers do

    def create_stylesheet(name, attributes={})
      stylesheet = create_model :stylesheet,
                    name.downcase.to_sym,
                    stylesheet_params(
                        attributes.reverse_merge(:name => name) )
      if stylesheet.nil?
        throw "Error creating user dataset for #{name}"
      end
    end


    def stylesheet_params(attributes={})
      name = attributes[:name] || unique_stylesheet_name
      {
        :name => name,
        :content => "stylesheet content for #{name}"
      }.merge(attributes)
    end

    # Generic dataset lookup methods so we can write one spec example that handles both javascripts and
    # stylesheets.  JavascriptsDataset defines these differently.  Don't load both datasets at once.
    def text_assets(symbolic_name)
      stylesheets(symbolic_name)
    end


    def text_asset_id(symbolic_name)
      stylesheet_id(symbolic_name)
    end


    private

      @@unique_stylesheet_name_call_count = 0

      def unique_stylesheet_name
        @@unique_stylesheet_name_call_count += 1
        "stylesheet-#{@@unique_stylesheet_name_call_count}.css"
      end

  end

end