Class: RabbitMQ::Definition::FileDefinition
- Inherits:
-
Object
- Object
- RabbitMQ::Definition::FileDefinition
- Defined in:
- lib/rabbitmq_definition/file_definition.rb
Constant Summary collapse
- RELEVANT_KEYS =
%i(rabbit_version version vhosts queues bindings exchanges)
- SCHEMA_PATH =
'db/rabbitmq_definition.json'
Class Method Summary collapse
Instance Method Summary collapse
- #as_json ⇒ Object
- #destroy ⇒ Object
-
#initialize(definition) ⇒ FileDefinition
constructor
A new instance of FileDefinition.
- #save ⇒ Object
- #to_json ⇒ Object
Constructor Details
#initialize(definition) ⇒ FileDefinition
Returns a new instance of FileDefinition.
24 25 26 27 28 29 30 |
# File 'lib/rabbitmq_definition/file_definition.rb', line 24 def initialize(definition) RELEVANT_KEYS.each do |key| default_value = ["rabbit_version", "version"].include?(key.to_s) ? nil : [] self.send("#{key}=", definition[key] || definition[key.to_s] || default_value) end self.version = Time.now.utc.strftime("%Y%m%d%H%M%S").to_s end |
Class Method Details
.exists? ⇒ Boolean
13 14 15 |
# File 'lib/rabbitmq_definition/file_definition.rb', line 13 def exists? File.exist?(file_path) end |
.file_path ⇒ Object
9 10 11 |
# File 'lib/rabbitmq_definition/file_definition.rb', line 9 def file_path Rails.root.join(SCHEMA_PATH) end |
.read ⇒ Object
17 18 19 20 21 |
# File 'lib/rabbitmq_definition/file_definition.rb', line 17 def read return nil unless exists? json = File.read(file_path) new JSON.parse(json) end |
Instance Method Details
#as_json ⇒ Object
32 33 34 35 36 37 |
# File 'lib/rabbitmq_definition/file_definition.rb', line 32 def as_json RELEVANT_KEYS.reduce({}) do |hash, key| hash[key] = send(key) hash end end |
#destroy ⇒ Object
49 50 51 |
# File 'lib/rabbitmq_definition/file_definition.rb', line 49 def destroy File.delete(self.class.file_path) end |
#save ⇒ Object
43 44 45 46 47 |
# File 'lib/rabbitmq_definition/file_definition.rb', line 43 def save File.open(self.class.file_path, 'w') do |f| f.write(to_json) end end |
#to_json ⇒ Object
39 40 41 |
# File 'lib/rabbitmq_definition/file_definition.rb', line 39 def to_json JSON.pretty_generate(as_json) end |