Documentation
ΒΆ
Overview ΒΆ
Example (Render) ΒΆ
Example_render demonstrates usage of Render and RenderDiff methods.
p := &product{
ID: 12345,
Name: "Example Item",
Price: 10000,
DiscountedPrice: 9000,
DiscountRate: 10,
}
prev := &product{
Price: 11000, // Previous was more expensive
}
// 1. Basic Render
fmt.Println("--- Render ---")
fmt.Println(renderProduct(p, false, ""))
// 2. Diff Render
fmt.Println("\n--- RenderDiff ---")
fmt.Println(formatProductItem(p, false, mark.Mark("π"), prev))
Output: --- Render --- β Example Item β’ νμ¬ κ°κ²© : 10,000μ β 9,000μ (10%) --- RenderDiff --- β Example Item π β’ νμ¬ κ°κ²© : 10,000μ β 9,000μ (10%) β’ μ΄μ κ°κ²© : 11,000μ
Index ΒΆ
Examples ΒΆ
Constants ΒΆ
View Source
const ( // TaskID λ§μΌμ»¬λ¦¬(https://www.kurly.com/) μλΉμ€μ μ°λλλ Taskμ κ³ μ μλ³μμ λλ€. TaskID contract.TaskID = "KURLY" // WatchProductPriceCommand λ§μΌμ»¬λ¦¬ μνμ κ°κ²© λ³νλ₯Ό κ°μνλ Commandμ κ³ μ μλ³μμ λλ€. // μ΄ Commandλ μ§μ λ μν λͺ©λ‘μ μ£ΌκΈ°μ μΌλ‘ μ€ν¬λννμ¬ κ°κ²© λ³λμ μΆμ νκ³ , // λ³νκ° κ°μ§λλ©΄ ν λ κ·Έλ¨ λ±μ ν΅ν΄ μλ¦Όμ μ μ‘ν©λλ€. WatchProductPriceCommand contract.TaskCommandID = "WatchProductPrice" )
Variables ΒΆ
View Source
var ( // ErrWatchListFileEmpty watch_list_file μ€μ μ΄ μ‘΄μ¬νμ§ μκ±°λ κ³΅λ°±μΌ λ λ°νν©λλ€. ErrWatchListFileEmpty = apperrors.New(apperrors.InvalidInput, "watch_list_fileμ΄ μ€μ λμ§ μμκ±°λ 곡백μ λλ€") // ErrWatchListFileNotCSV watch_list_file κ²½λ‘κ° .csv νμ₯μλ‘ λλμ§ μμ λ λ°νν©λλ€. ErrWatchListFileNotCSV = apperrors.New(apperrors.InvalidInput, "watch_list_fileμ .csv νμΌ κ²½λ‘μ¬μΌ ν©λλ€") // ErrCSVStreamReadFailed CSV μ€νΈλ¦Όμ 첫 λ°μ΄νΈλ₯Ό μ½λ μ€ μ€λ₯κ° λ°μνμ λ λ°νλλ μλ¬μ λλ€. ErrCSVStreamReadFailed = apperrors.New(apperrors.InvalidInput, "CSV μ€νΈλ¦Όμ μμ λΆλΆμ μ½λ μ€ μ€λ₯κ° λ°μνμ΅λλ€. λ°μ΄ν°κ° λΉμ΄μκ±°λ μ¬λ°λ₯΄μ§ μμ μΈμ½λ©μΌ μ μμ΅λλ€") // ErrBOMRecovery BOM κ²μ¬ ν λ²νΌλ₯Ό μλ μνλ‘ λ³΅κ΅¬νμ§ λͺ»νμ λ λ°νλλ μλ¬μ λλ€. ErrBOMRecovery = apperrors.New(apperrors.Internal, "BOM(Byte Order Mark) κ²μ¬ ν λ²νΌ μνλ₯Ό 볡ꡬνλ μ€ μ€λ₯κ° λ°μνμ΅λλ€") // ErrCSVParse CSV λ°μ΄ν° νμ± μ€ μ€λ₯κ° λ°μνμ λ λ°νλλ μλ¬μ λλ€. ErrCSVParse = apperrors.New(apperrors.InvalidInput, "CSV λ°μ΄ν° νμ± μ€ μ€λ₯κ° λ°μνμ΅λλ€. νμΌ μΈμ½λ©μ΄λ νμμ νμΈν΄ μ£ΌμΈμ") // ErrCSVEmpty CSV νμΌμ μ±κ³΅μ μΌλ‘ μ½μμ§λ§ μ€μ νμ΄ ν 건λ μμ λ λ°νλλ μλ¬μ λλ€. ErrCSVEmpty = apperrors.New(apperrors.InvalidInput, "CSV λ°μ΄ν°κ° λΉμ΄μμ΅λλ€. νμΌ λ΄μ©μ νμΈν΄ μ£ΌμΈμ") // ErrCSVInvalidHeader CSV νμΌμ 첫 λ²μ§Έ ν(ν€λ)μ μ»¬λΌ μκ° λΆμ‘±ν λ λ°νλλ μλ¬μ λλ€. ErrCSVInvalidHeader = apperrors.New(apperrors.InvalidInput, "CSV ν€λ νμμ΄ μ¬λ°λ₯΄μ§ μμ΅λλ€. νμ 컬λΌ(no, name, status)μ΄ ν¬ν¨λμ΄ μλμ§ νμΈν΄ μ£ΌμΈμ") // ErrCSVAllRecordsFiltered CSV νμΌμ λͺ¨λ λ°μ΄ν° νμ΄ νν°λ§λμ΄ μ ν¨ν μν λ μ½λκ° ν 건λ λ¨μ§ μμμ λ λ°νλλ μλ¬μ λλ€. ErrCSVAllRecordsFiltered = apperrors.New(apperrors.InvalidInput, "μ²λ¦¬ν μ μλ μ ν¨ν μν λ μ½λκ° μμ΅λλ€. λͺ¨λ νμ΄ νμ λ°μ΄ν°(μνλ²νΈ, μνλͺ ) λλ½μΌλ‘ μΈν΄ νν°λ§λμμ΅λλ€") )
Functions ΒΆ
This section is empty.
Types ΒΆ
type WatchListLoader ΒΆ
type WatchListLoader interface {
// Load λ°μ΄ν° μμ€λ‘λΆν° κ°μ λμ μν λ μ½λ λͺ©λ‘μ μ½μ΄ λ°νν©λλ€.
//
// λ°νλλ [][]stringμ κ° μμλ νλμ μν λ μ½λμ΄λ©°,
// columnID, columnName, columnStatus μΈλ±μ€λ‘ κ° νλμ μ κ·Όν©λλ€.
Load() ([][]string, error)
}
WatchListLoader κ°μ λμ μν λͺ©λ‘μ λ‘λνλ μΈν°νμ΄μ€μ λλ€.
λ°μ΄ν° μμ€(CSV νμΌ, λ°μ΄ν°λ² μ΄μ€, μ격 API λ±)λ₯Ό μΆμννμ¬ μ€ν λ‘μ§μ΄ λ°μ΄ν° μΆμ²μ μμ‘΄νμ§ μλλ‘ λΆλ¦¬ν©λλ€. ν μ€νΈ μμλ μ΄ μΈν°νμ΄μ€λ₯Ό ꡬνν Mockμ μ£Όμ νμ¬ νμΌ I/O μμ΄ κ²μ¦ν μ μμ΅λλ€.
func NewCSVWatchListLoader ΒΆ
func NewCSVWatchListLoader(filePath string) WatchListLoader
NewCSVWatchListLoader μ£Όμ΄μ§ filePathμ CSV νμΌμ μ½λ WatchListLoaderλ₯Ό μμ±ν©λλ€.
Click to show internal directories.
Click to hide internal directories.