Quickeebooks:Online::Model::Journal Entry 지원 추가
묘사
QBO 내 일기장 분록에 대한 지원이 추가됐다.나는 모델 이름의 복수 형식에 대해 조정을 해야 했다. 단지 모델 이름 뒤에's'를 추가했을 뿐이다.나의 결말은:
self::REST_RESOURCE.underscore.dasherize.pluralize
내가 진정으로 원하는 것은 hyphenate
방법이지만, 그것은 존재하지 않는다.너는 더욱 효과적인 방법을 생각해 낼 수 있니?주요 용례는 일기장 전환->일기장 분록과 판매영수증->판매영수증이다.그래서 우리는 반드시 pluralize
로'y'로 끝나는 모델을 처리해야 한다.토론 #1
나는 실시간 목록을 만들고 업데이트했다.이것이 바로 내가 다원화 문제를 발견한 이유이다. 나는 이것에 대해 갱신을 해야 한다.일기 기록에는 두 줄의 항목이 필요한데, 하나는 대출 계좌에 사용되고, 다른 하나는 대출 계좌를 가리키는 것이다.
파일:http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0400_QuickBooks_Online/JournalEntry
토론 #2
걱정되는 것은 문자열 방법인 '밑줄 긋기', 'dasherize','pluralize '가 모두 Active Support에 있다는 것이다. 이것은 Quickeebooks가 Rails 프로그램 내부에서 실행될 때 정상적으로 작동하지만 외부에서 붕괴될 수 있다는 것을 의미한다.ActiveSupport를 종속성으로 가져오지 않는 것이 좋습니다.특정 요구 사항이 있는 모델(예: Journal Entry)에서 "resource for collection"만 덮어쓰고 하드 인코딩 문자열인 "journal entries"만 되돌려 주는 것은 잘못된 것입니까?
2013년 3월 27일 오전 9:46, 닉 하몬드[email protected]쓰기:
Added support for journal entries within QBO. I also had to make a few tweaks to the pluralization of the model names, it was just appending an 's' to the model name.
I ended up with this:
self::REST_RESOURCE.underscore.dasherize.pluralize
What I'd really like is a hyphenate method but that doesn't exist. Can you think of a more efficient way to do this? The main use cases are converting JournalEntry -> journal-entries and SalesReceipt -> sales-receipts. So we definitely need pluralize on there to work with models ending in 'y'.
You can merge this Pull Request by running
git pull https://github.com/nickhammond/quickeebooks journal_entry Or view, comment on, or merge it at:
https://github.com/ruckus/quickeebooks/pull/52
Commit Summary
move note about file cleanup to correct location Merge branch 'master' of git://github.com/ruckus/quickeebooks implement Quickeebooks::Online::Model::JournalEntry model Create Quickeebooks::Online::Service::JournalEntry tweaks to the pluralization and conversion from Class to Rest names entity_id isn't always required, depends on the account_id specified File Changes
M README.md (4) M lib/quickeebooks.rb (4) M lib/quickeebooks/common/online_entity_model.rb (2) M lib/quickeebooks/common/online_line_item_model_methods.rb (2) A lib/quickeebooks/online/model/journal_entry.rb (27) A lib/quickeebooks/online/model/journal_entry_header.rb (15) A lib/quickeebooks/online/model/journal_entry_line_item.rb (22) A lib/quickeebooks/online/service/journal_entry.rb (16) M spec/quickeebooks/common/online_line_item_model_methods_spec.rb (11) A spec/quickeebooks/online/journal_entry_spec.rb (26) A spec/quickeebooks/online/services/journal_entry_spec.rb (75) A spec/xml/online/journal_entries.xml (38) A spec/xml/online/journal_entry.xml (32) A spec/xml/online/journal_entry2.xml (32) Patch Links:
https://github.com/ruckus/quickeebooks/pull/52.patch https://github.com/ruckus/quickeebooks/pull/52.diff
토론 #셋
내가 이런 방법을 사용하는 유일한 이유는 우리가ActiveModel에 의존하여 검증하는 것이다.ActiveModel은 파일에서 확인한 ActiveSupport에 따라 다릅니다.자물쇠
activemodel (3.2.12)
activesupport (= 3.2.12)
builder (~> 3.0.0)
사상아마도 우리는 그 확장을 직접 선택할 수 있을 것이다. 예를 들어 require 'active_support/core_ext/inflections'
.Active Model로 설치된 이상 계속 사용할 수 있지만, 이 경우 GEM 파일에 추가해야 할 수도 있습니다.토론 #4
응, 네 말이 맞아. 나는 Active 모델이Active Support에 의존하는 줄 몰랐어.액티브 모델을 1순위로 꼽았을 때 나는 확실히 자신에게 "거대한 보석처럼 보이니 검증만 하면 된다"고 말한 뒤 한숨을 깊게 쉬었다.
아마도 이 결정을 재평가할 좋은 시기일 것이다.우리는 이런 간단한gem을 사용할 수 있다. 검증만 제공하고, 다른 것은 아무것도 제공하지 않는다.http://rubygems.org/gems/validatable
토론 #5
이 보석은 3년째 갱신이 안 된 것 같아-https://github.com/jnunemaker/validatable그러나 그것이 작용하지 않는다는 것은 아니다.현재 Active Model에 인증 모듈만 포함되어 있습니다.하지만 나는 API가 거의 똑같다는 것을 좋아한다.토론 #6
하, 네, 자세히 보지 못했어요. 거의 제가 찾은 첫 번째예요.나는 좀 더 파서 새로운 열이 무엇인지 볼 것이다.하지만 이는 다음과 같습니다.
- Active Model을 삭제하고 고급 검증 라이브러리를 사용합니다
- Active Support는 포함되지 않으며, 이러한 특수 자원 문자열을 기본적으로 하드코딩하는 방법을 찾았습니다. 다시 쓰기
resource_for_collection
또는 다른 방법 토론 #7
을 통해서만 가능할 수도 있습니다. 이것은 Active Model::Translation에 달려 있기 때문에 Active Support처럼 선택되어서는 안 됩니다.require 'active_model/validations'
발굴을 해봤는데 지금까지 제가 제일 좋아하는 건요.https://github.com/franckverrot/activevalidators.많은 보석들이 매우 낡거나 액티브 모델처럼 깨끗한 인터페이스가 없다.ActiveModel 자체는 AR에서 추출된 것이기 때문에 모델과 관련된 함수를 사용할 수 있기 때문에 작은 조수 라이브러리일 것입니다.그것은 마치 당신의 루비 프로젝트에 사용되는 독립된 루비 조수 같다.http://www.rubyinside.com/rails-3-0s-activemodel-how-to-give-ruby-classes-some-activerecord-magic-2937.html나는 Active Model을 보존하는 것에 찬성한다. 그러면 우리는 Active Model::Validations를 사용할 수 있고, 우리가 필요로 하는 Active Support 세션만 선택할 수 있다.나는 우리가 하고 있는 굴절 변화에 대해 하드코딩을 할 수 있다고 생각한다. 예를 들어
토론 #8
또는PLURAL_RESTFUL_RESOURCE
, 네가 언급한 것처럼.REST_RESOURCES
괜찮습니다. 이gem는activemodel과 일련의 다른 의존항에 의존하고 우리를 같은 위치에 두었습니다. s.add_dependency 'rake' , '>= 0.8.7'
s.add_dependency 'activemodel' , '>= 3.0.0'
s.add_dependency 'phony' , '~> 1.7.4'
s.add_dependency 'countries' , '~> 0.8.2'
s.add_dependency 'mail'
s.add_dependency 'date_validator'
토론 #9
는 좋은 토론 주제로 코드의 질과 의존성을 중시하는 것이 매우 중요하다.그러나 우리도 실용주의를 실천하자.작은 공간을 차지하는 검증을 지원하기 위한 재구축은 좋은 목표이지만 QBO의 이 중요한 기능을 방해하지 말아야 한다는 것이 자신의 제안이다.
토론 #10
@아주 공평합니다.@nickhammond는 현재 ActiveSupport 문자열 조작 방법을 포기하고
토론 #11
모델에서resource_for_collection
방법을 대체합니다.class << self
def resource_for_collection
self::REST_RESOURCE
end
end
JournalEntry
는'일기장 분록'을 수동으로 자원을 수집하는 것으로 설정하고 라이브 API에 대한 빠른 목록 검사를 실시했다.토론 #12
너무 좋아요. 고마워요!Reference
이 문제에 관하여(Quickeebooks:Online::Model::Journal Entry 지원 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/ruckus/quickeebooks/issues/52텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)