Sha256: b8e1972b02c664ae10481d7cb0085c74afa177e3663c1e1ccaf9e3c08b65539e
Contents?: true
Size: 1013 Bytes
Versions: 4
Compression:
Stored size: 1013 Bytes
Contents
module Rapidash module Resourceable def self.included(base) base.extend ClassMethods end module ClassMethods def resource(*names) mod = self.to_s.split("::")[0...-1] if mod.empty? mod = Kernel else mod = Kernel.const_get(mod.join("::")) end names.each do |name| klass = mod.const_get(name.to_s.capitalize) define_method(name) do |*args| if self.respond_to?(:url) options = {:previous_url => self.url} if args[args.length].is_a?(Hash) args[args.length].merge!(options) else args << options end end client = self client = self.client if self.respond_to?(:client) klass.new(client, *args) end define_method("#{name}!".to_sym) do |*args| self.send(name, *args).call! end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
rapidash-0.1.2 | lib/rapidash/resourceable.rb |
rapidash-0.1.1 | lib/rapidash/resourceable.rb |
rapidash-0.1.0 | lib/rapidash/resourceable.rb |
rapidash-0.0.6 | lib/rapidash/resourceable.rb |