Class: ElasticGraph::SchemaDefinition::SchemaArtifact
- Inherits:
-
Object
- Object
- ElasticGraph::SchemaDefinition::SchemaArtifact
- Defined in:
- lib/elastic_graph/schema_definition/schema_artifact_manager.rb
Instance Method Summary collapse
- #diff(color:) ⇒ Object
- #dump(output) ⇒ Object
- #existing_dumped_contents ⇒ Object
- #out_of_date? ⇒ Boolean
Instance Method Details
#diff(color:) ⇒ Object
447 448 449 450 451 452 453 454 455 456 457 458 |
# File 'lib/elastic_graph/schema_definition/schema_artifact_manager.rb', line 447 def diff(color:) return nil unless exists? ::Tempfile.create do |f| f.write(dumped_contents.chomp) f.fsync `git diff --no-index #{file_name} #{f.path}#{" --color" if color}` .gsub(file_name, "existing_contents") .gsub(f.path, "/updated_contents") end end |
#dump(output) ⇒ Object
423 424 425 426 427 428 429 430 431 432 433 |
# File 'lib/elastic_graph/schema_definition/schema_artifact_manager.rb', line 423 def dump(output) if out_of_date? dirname = File.dirname(file_name) FileUtils.mkdir_p(dirname) # Create directory if needed. ::File.write(file_name, dumped_contents) output.puts "Dumped schema artifact to `#{file_name}`." else output.puts "`#{file_name}` is already up to date." end end |
#existing_dumped_contents ⇒ Object
439 440 441 442 443 444 445 |
# File 'lib/elastic_graph/schema_definition/schema_artifact_manager.rb', line 439 def existing_dumped_contents return nil unless exists? # We drop the first 2 lines because it is the comment block containing dynamic elements. file_contents = ::File.read(file_name).split("\n").drop(2).join("\n") loader.call(file_contents) end |
#out_of_date? ⇒ Boolean
435 436 437 |
# File 'lib/elastic_graph/schema_definition/schema_artifact_manager.rb', line 435 def out_of_date? (_ = existing_dumped_contents) != desired_contents end |