lucky
v1.3.0

목표 : 버그 방지, 대부분의 성능 문제를 잊고 테스트를 디버깅하고 수정하는 대신 코드에 더 많은 시간을 소비합니다.
요약하면, 멋진 웹 애플리케이션을 빠르고 재미 있고 쉽게 작성하십시오.
Lucky에는 신선한 새로운 가이드 세트가있어 쉽게 시작할 수 있습니다.
대화방에서 인사하거나 질문을하십시오.
또는 Lucky JumpStart와 함께 실제 작업 앱을 복사 할 수 있습니다.
Lucky를 설치하려면 운영 체제를위한 운이 좋은 가이드 설치를 읽으십시오. 가이드는 새로운 운이 좋은 응용 프로그램을 생성하는 데 사용되는 명령 줄 유틸리티 설치를 안내합니다.
트위터에서 @luckyframework를 팔로우하여 최신 상태를 유지하십시오.
API (메인)
class Api::Users::Show < ApiAction
get " /api/users/:user_id " do
user = UserQuery .find(user_id)
json UserSerializer .new(user)
end
endget "/sign_in" 같은 사용자 정의 경로를 설정할 수 있습니다.user_id 경로 매개 변수가 있으므로 user_id 메소드가 생성됩니다.json 사용하여 JSON을 렌더링하십시오. 재사용 가능한 JSON 응답에 대한 직렬 제를 추출하십시오. # Set up the model
class User < BaseModel
table do
column last_active_at : Time
column last_name : String
column nickname : String ?
end
end? 열이 nil 일 수있는 유형에. Crystal은 작동하지 않는 방법을 부르지 않는 것을 기억하는 데 도움이됩니다.last_active_at 및 last_name 이 nilable로 표시되지 않기 때문에 Last_active_at 및 last_name)에 대한 PRESENTION 유효성 검사를 설정합니다. # Add some methods to help query the database
class UserQuery < User::BaseQuery
def recently_active
last_active_at.gt( 1 .week.ago)
end
def sorted_by_last_name
last_name.lower.desc_order
end
end
# Query the database
UserQuery .new.recently_active.sorted_by_last_nameUser::BaseQuery 모델을 정의 할 때 자동으로 생성됩니다. 쿼리를 사용자 정의하기 위해 상속합니다.String 열의 lower 메소드를 사용하여 Postgres가 소문자로 모든 것을 정렬하는지 확인하십시오.gt 사용하여 사용자를 1 주일보다 더 많이 활성화시킵니다. Lucky는 복잡한 쿼리를 만들기위한 강력한 추상화와 특정 방법을 입력하기위한 많은 강력한 추상화를 가지고 있습니다 (예 : lower ). class Users::Index < BrowserAction
get " /users " do
users = UserQuery .new.sorted_by_last_name
render IndexPage , users: users
end
end
class Users::IndexPage < MainLayout
needs users : UserQuery
def content
render_new_user_button
render_user_list
end
private def render_new_user_button
link " New User " , to: Users :: New
end
private def render_user_list
ul class: " user-list " do
users.each do | user |
li do
link user.name, to: Users :: Show .with(user.id)
text " - "
text user.nickname || " No Nickname "
end
end
end
end
endneeds users : UserQuery 컴파일러에게 유형의 사용자 UserQuery 의 사용자에게 전달되어야한다고 말합니다.Users::New 만 사용하십시오. 다음 with 사용하여 매개 변수를 전달합니다. Users::Show.with(user.id) . 더 이상 Path Helpers를 기억하려고하지 않고 도우미가 복수화되었는지 여부 - 경로에 매개 변수를 전달하는 것을 잊어 버린 경우 Lucky는 컴파일 타임에 알려줄 것입니다.column nickname : String? nilable로서, text user.nickname nil 하지 않았기 때문에 텍스트 user.nickname을 사용하면 운이 좋은 페이지를 컴파일하지 못할 것입니다. 대신 우리는 "No Nickname" 을 추가합니다. 더 이상 우연히 HTML에서 빈 텍스트를 인쇄하지 않습니다! 크리스탈 의존성을 설치해야합니다.
shards install 실행하십시오crystal spec 실행하십시오. Contributing.md를 참조하십시오
우리는 행운을 쌓기 위해 열심히 일한 모든 커뮤니티 회원을 사랑합니다. 당신이 그 사람들 중 하나라면, 우리는 당신에게 티셔츠를주고 싶습니다!
셔츠를 얻으려면 Lucky에 상당한 기여를하셨습니다. 여기에는 버그 수정 및 기능 구현이 포함 된 PR을 제출하고 다른 회원이 문제를 해결하고 Lucky를 사용하여 실제 응용 프로그램을 배포하는 것과 같은 것들이 포함됩니다!
셔츠를 주장하려면이 양식을 채우십시오.
Paulcsmith Paul Smith- 럭키의 원래 제작자
Contrib.rocks로 만들어졌습니다.
lucky watch 센트리를 크게 기반으로합니다. 감사합니다 @samueleaton!