lib/str_enum.rb in str_enum-0.1.4 vs lib/str_enum.rb in str_enum-0.1.5
- old
+ new
@@ -1,30 +1,7 @@
require "str_enum/version"
require "active_support"
+require "str_enum/model"
-module StrEnum
- def str_enum(column, values, validate: true, scopes: true, accessor_methods: true, prefix: false, suffix: false)
- values = values.map(&:to_s)
- validates column, presence: true, inclusion: {in: values} if validate
- values.each do |value|
- prefix = column if prefix == true
- suffix = column if suffix == true
- method_name = [prefix, value, suffix].select { |v| v }.join("_")
- scope method_name, -> { where(column => value) } if scopes && !respond_to?(method_name)
- if accessor_methods && !method_defined?("#{method_name}?")
- define_method "#{method_name}?" do
- read_attribute(column) == value
- end
- end
- end
- after_initialize do
- send("#{column}=", values.first) unless try(column)
- end
- define_singleton_method column.to_s.pluralize do
- values
- end
- end
-end
-
ActiveSupport.on_load(:active_record) do
- extend(StrEnum)
+ include(StrEnum::Model)
end