class RichcssCLI::Cli

Public Instance Methods

init(extension="css") click to toggle source

elements |— … box |— … parts |— …

# File lib/richcss/cli.rb, line 57
def init(extension="css")
  if (extension.eql?("css") || extension.eql?("scss"))
    Richcss::Generators::Template.start([extension])
  else
    puts "Only support css or scss extension, default is css"
  end
end
install(part_name, part_version='') click to toggle source
# File lib/richcss/cli.rb, line 66
def install(part_name, part_version='')
    installed_parts = Richcss::Part.get_or_create_partfile()
    if part_version.eql?('')
      RestClient.get("http://www.cssparts.com/api/part/#{part_name}") { |response, request, result, &block|
        if response.code == 200
          body = JSON.parse(response.to_str)
          part_version = body["version"]
        elsif response.code == 400
          puts "Part: #{part_name} cannot be found."
          return
        else
          puts "Error #{response.code} retrieving Part: #{part_name}"
          return
        end
      }
    else
      RestClient.get("http://www.cssparts.com/api/part/#{part_name}", {:params => {'version' => part_version}}) { |response, request, result, &block|
        if response.code == 400
          puts "Part: #{part_name} #{part_version} does not exist."
          return
        elsif response.code != 200
          puts "Error #{response.code} retrieving Part: #{part_name} #{part_version}"
          return
        end
      }
    end

    if installed_parts.key?(part_name) and installed_parts[part_name].eql?(part_version)
        puts "Part #{part_name} v#{part_version} is already installed!"
        return
    end

    partfileList = ''
    dep_list = Richcss::Part.resolve_dependencies(part_name, part_version, installed_parts)

    if dep_list == nil
      puts "Failed to install #{part_name} #{part_version}"
      return
    end

    dep_list.each do |dep_name, dep_version|
      Richcss::Part.fetch(dep_name, dep_version)
      partfileList << dep_name << " " << dep_version.to_s << "\n"
    end

    File.open('parts/Partfile', 'wb') do |f|
      f.write(partfileList)
    end
end