Class: FixtureOverlord::Model
- Inherits:
-
Object
- Object
- FixtureOverlord::Model
- Defined in:
- lib/fixture_overlord/model.rb
Class Method Summary collapse
- .create(hash, filename) ⇒ Object (also: create!)
- .init(hash, filename) ⇒ Object
Instance Method Summary collapse
- #can_convert_to_model? ⇒ Boolean
- #convert_to_model ⇒ Object
- #create_as_model ⇒ Object
-
#initialize(hash, filename) ⇒ Model
constructor
A new instance of Model.
- #model_name ⇒ Object
- #new_model_with_values ⇒ Object
- #respond_to_model_methods? ⇒ Boolean
- #sanitize_hash ⇒ Object
Constructor Details
#initialize(hash, filename) ⇒ Model
Returns a new instance of Model.
17 18 19 |
# File 'lib/fixture_overlord/model.rb', line 17 def initialize(hash, filename) @hash, @filename = hash, filename end |
Class Method Details
.create(hash, filename) ⇒ Object Also known as: create!
11 12 13 |
# File 'lib/fixture_overlord/model.rb', line 11 def create(hash, filename) new(hash, filename).create_as_model end |
.init(hash, filename) ⇒ Object
7 8 9 |
# File 'lib/fixture_overlord/model.rb', line 7 def init(hash, filename) new(hash, filename).new_model_with_values end |
Instance Method Details
#can_convert_to_model? ⇒ Boolean
37 38 39 40 41 |
# File 'lib/fixture_overlord/model.rb', line 37 def can_convert_to_model? model = model_name model.respond_to?(:superclass) && model.superclass == ::ActiveRecord::Base end |
#convert_to_model ⇒ Object
21 22 23 |
# File 'lib/fixture_overlord/model.rb', line 21 def convert_to_model model_name.new( sanitize_hash ) end |
#create_as_model ⇒ Object
29 30 31 |
# File 'lib/fixture_overlord/model.rb', line 29 def create_as_model model_name.create( sanitize_hash ) end |
#model_name ⇒ Object
33 34 35 |
# File 'lib/fixture_overlord/model.rb', line 33 def model_name @model_name ||= @filename.to_s.singularize.classify.constantize end |
#new_model_with_values ⇒ Object
25 26 27 |
# File 'lib/fixture_overlord/model.rb', line 25 def new_model_with_values model_name.new( sanitize_hash ) end |
#respond_to_model_methods? ⇒ Boolean
43 44 45 46 47 48 |
# File 'lib/fixture_overlord/model.rb', line 43 def respond_to_model_methods? model = convert_to_model model.respond_to?(:create!) || model.respond_to?(:create) || model.respond_to?(:build) end |
#sanitize_hash ⇒ Object
50 51 52 |
# File 'lib/fixture_overlord/model.rb', line 50 def sanitize_hash @hash.delete_if { |key,value| key.to_sym == :id } end |