bin/console in usable-1.1.1 vs bin/console in usable-1.2.0
- old
+ new
@@ -8,26 +8,56 @@
# (If you use this, don't forget to add pry to your Gemfile!)
# require "pry"
# Pry.start
-module VersionKit
+module VersionMixin
def save_version
"Saving up to #{self.class.usable_config.max_versions} versions to #{self.class.usable_config.table_name}"
end
def destroy_version
"Deleting versions from #{self.class.usable_config.table_name}"
end
end
+module Mixin
+ def name
+ "defined by Mixin"
+ end
+
+ def from_mixin
+ "always here"
+ end
+
+ # @description Usable will apply the :only to just the methods defined by this module
+ module UsableSpec
+ def from_spec
+ "can be excluded"
+ end
+
+ def name
+ "defined by UsableSpec"
+ end
+ end
+end
+
class Model
extend Usable
- usable VersionKit, only: :save_version do |config|
+ usable VersionMixin, only: :save_version do |config|
config.max_versions = 10
config.table_name = 'custom_versions'
end
+
+ def save
+ self.class.usable_method(self, :save_version).call
+ end
+end
+
+class Example
+ extend Usable
+ usable Mixin, only: [:name, :from_spec]
end
require "irb"
IRB.start