ruby 关于自定义DSL的演示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 关于自定义DSL的演示相关的知识,希望对你有一定的参考价值。
class Preference
# Not allow dynamic attributes
not_allow_dinamic_attributes
has_rest_method create: '/checkout/preferences'
has_rest_method read: '/checkout/preferences/:id'
has_rest_method update: '/checkout/preferences/:id'
# Setting the relations between objects
relation_has_many :items
relation_has_one :payer
relation_has_one :shipment
# Setting the strong attributes
has_strong_attribute :auto_return, validation: {valid_values: ["approved", "all"]}
has_strong_attribute :back_urls, type: Hash
has_strong_attribute :notification_url, type: String, lenght: 500
has_strong_attribute :id, type: String, read_only: true
has_strong_attribute :init_point, type: String, read_only: true
has_strong_attribute :operation_type, type: String, read_only: true
has_strong_attribute :additional_info, type: String, lenght: 600
has_strong_attribute :external_reference, type: String, lenght: 256
has_strong_attribute :expires, type: Boolean
has_strong_attribute :expiration_date_from, type: Date
has_strong_attribute :expiration_date_to, type: Date
has_strong_attribute :collector_id, type: Integer, read_only: true
has_strong_attribute :client_id, type: Integer, read_only: true
has_strong_attribute :marketplace, type: String
has_strong_attribute :marketplace_fee, type: Float
has_strong_attribute :differential_pricing, type: Hash
has_strong_attribute :payment_methods, type: Hash
# Custom Behavior :
def save
remote_save{|response| self.id = response["id"]}
end
end
以上是关于ruby 关于自定义DSL的演示的主要内容,如果未能解决你的问题,请参考以下文章
带参数的 Ruby DSL 定义方法
Ruby DSL 体验?
Ruby 中的简单 DSL
DSL-让你的 Ruby 代码更优秀
您将如何在 Ruby 中设计这样的 DSL?
在 ruby DSL 实现中捕获规范文件名?