Sha256: 32802ebe32518ac79ba582ce9f67856bac5d7c2b6ff4c7ffaf15ada6bcbaac29
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module ToFactory class FileWriter def initialize FileUtils.mkdir_p(ToFactory.factories) end def write(definitions) definitions.each do |klass, representations| write_to(name_from klass) do wrap_factories(representations.map(&:definition)) end end end private def name_from(klass) klass.name.underscore.gsub /^"|"$/, "" end def write_to(name) mkdir(name) File.open(File.join(ToFactory.factories, "#{name}.rb"), "w") do |f| f << yield end end def wrap_factories(definitions) if ToFactory.new_syntax? modern_header(definitions) else definitions.join("\n\n") end end def modern_header(definitions) out = "FactoryGirl.define do\n" out << definitions.join("\n") out << "\nend\n" end def mkdir(name) return unless name.to_s["/"] dir = name.to_s.split("/")[0..-2] FileUtils.mkdir_p File.join(ToFactory.factories, dir) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
to_factory-0.2.0 | lib/to_factory/file_writer.rb |