lib/mirage/client/template.rb in mirage-3.0.0.alpha.3 vs lib/mirage/client/template.rb in mirage-3.0.0.alpha.4
- old
+ new
@@ -1,14 +1,19 @@
require 'ostruct'
require 'json'
require 'httparty'
require 'hashie/mash'
+require 'client/template/configuration'
+require 'client/template/model'
+
module Mirage
class Template
+
include HTTParty
+ include Model::InstanceMethods
class << self
alias_method :backedup_get, :get
def get url
@@ -17,95 +22,24 @@
response_config = response_hashie.response
request_config = response_hashie.request
template = new(response_hashie.endpoint, response_config.body)
- template.id = response_hashie.id
- template.default = response_config['default']
- template.delay = response_config.delay
- template.content_type = response_config.content_type
- template.status = response_config.status
- template.headers = response_config.headers
+ template.id response_hashie.id
+ template.default response_config['default']
+ template.delay response_config.delay
+ template.content_type response_config.content_type
+ template.status response_config.status
+ template.headers response_config.headers
- template.required_parameters = request_config.parameters
- template.required_body_content = request_config.body_content
- template.http_method = request_config.http_method
- template.url = url
- template.requests_url = response_hashie.requests_url
- template.required_headers = request_config.headers
+ template.required_parameters request_config.parameters
+ template.required_body_content request_config.body_content
+ template.http_method request_config.http_method
+ template.url url
+ template.requests_url response_hashie.requests_url
+ template.required_headers request_config.headers
template
end
end
-
- format :json
-
- attr_accessor :content_type, :http_method, :default, :status, :delay, :required_parameters, :required_body_content, :required_headers, :endpoint, :id, :url, :requests_url, :headers
- attr_reader :value
-
-
- def initialize endpoint, response, default_config=TemplateConfiguration.new
-
- @endpoint = endpoint
- @content_type = default_config.content_type
- @value = response
- @http_method = default_config.http_method
- @status = default_config.status
- @delay = default_config.delay
- @required_parameters = {}
- @required_headers = {}
- @required_body_content = []
- @headers = {}
- @default = default_config.default
- end
-
- def create
- @id = self.class.put("#{@endpoint}", :body => self.to_json, :headers => {'content-type' => 'application/json'})['id']
- self
- end
-
- def delete
- self.class.delete(url)
- Request.delete requests_url
- end
-
-
- def to_json
- {
- :response => {
- :body => Base64.encode64(@value),
- :status => status,
- :default => default,
- :content_type => content_type,
- :headers => headers
-
- },
- :request => {
- :parameters => encode_regexs(required_parameters),
- :headers => encode_regexs(required_headers),
- :body_content => encode_regexs(required_body_content),
- :http_method => http_method,
- },
- :delay => delay
- }.to_json
- end
-
-
- def encode_regexs hash_or_array
- case hash_or_array
- when Array
- hash_or_array.collect { |value| encode(value) }
- else
- encoded = {}
- hash_or_array.each do |key, value|
- encoded[key] = encode(value)
- end
- encoded
- end
- end
-
- def encode(value)
- value.is_a?(Regexp) ? "%r{#{value.source}}" : value
- end
-
end
end
\ No newline at end of file