Skip to content

Commit e427d13

Browse files
author
Michael L. Artz
committed
Merge branch 'release/v0.0.3'
2 parents fdd929e + 2b7bd4f commit e427d13

File tree

10 files changed

+47
-28
lines changed

10 files changed

+47
-28
lines changed

lib/rflow.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@
1616
require 'rflow/components'
1717
require 'rflow/connections'
1818

19-
include Log4r
2019

2120
class RFlow
21+
include Log4r
22+
2223
class Error < StandardError; end
2324

2425
LOG_PATTERN_FORMAT = '%l [%d] %c (%p) - %M'
@@ -45,7 +46,7 @@ class << self
4546
# end
4647

4748
def self.initialize_logger(log_file_path, log_level='INFO', include_stdout=nil)
48-
rflow_logger = Logger.new 'rflow.log'
49+
rflow_logger = Logger.new((configuration['rflow.application_name'] rescue File.basename(log_file_path)))
4950
rflow_logger.level = LNAMES.index log_level
5051
# TODO: Remove this once all the logging puts in its own
5152
# Class.Method names.
@@ -351,7 +352,7 @@ def self.run(config_database_path, daemonize=nil)
351352
end
352353

353354
Dir.chdir configuration['rflow.application_directory_path']
354-
355+
355356
initialize_logger(configuration['rflow.log_file_path'], configuration['rflow.log_level'], !daemonize)
356357

357358
application_name = configuration['rflow.application_name']

lib/rflow/configuration.rb

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
require 'rflow/util'
2-
require 'rflow/configuration/setting'
3-
require 'rflow/configuration/component'
4-
require 'rflow/configuration/port'
5-
require 'rflow/configuration/connection'
6-
72

83
class RFlow
94

@@ -23,6 +18,12 @@ class Configuration
2318
class ConfigurationInvalid < StandardError; end
2419

2520

21+
# A class to hold DB config and connection information
22+
class ConfigDB < ActiveRecord::Base
23+
self.abstract_class = true
24+
end
25+
26+
2627
# A collection class for data extensions that supports a naive
2728
# prefix-based 'inheritance' on lookup. When looking up a key
2829
# with [] all existing keys will be examined to determine if the
@@ -131,14 +132,16 @@ def self.add_available_component(component)
131132
end
132133

133134

134-
# Connect to the configuration sqlite database.
135+
# Connect to the configuration sqlite database, but use the
136+
# ConfigDB subclass to protect the connection information from
137+
# other ActiveRecord apps (i.e. Rails)
135138
def self.establish_config_database_connection(config_database_path)
136139
RFlow.logger.debug "Establishing connection to config database (#{Dir.getwd}) '#{config_database_path}'"
137140
ActiveRecord::Base.logger = RFlow.logger
138-
ActiveRecord::Base.establish_connection(:adapter => "sqlite3",
139-
:database => config_database_path)
141+
ConfigDB.establish_connection(:adapter => "sqlite3",
142+
:database => config_database_path)
140143
end
141-
144+
142145

143146
# Using default ActiveRecord migrations, attempt to migrate the
144147
# database to the latest version.
@@ -162,7 +165,12 @@ def self.process_config_file(config_file_path)
162165
# version, and process a config file if provided.
163166
def self.initialize_database(config_database_path, config_file_path=nil)
164167
RFlow.logger.debug "Initializing config database (#{Dir.getwd}) '#{config_database_path}'"
165-
establish_config_database_connection(config_database_path)
168+
169+
RFlow.logger.debug "Establishing connection to config database (#{Dir.getwd}) '#{config_database_path}'"
170+
ActiveRecord::Base.logger = RFlow.logger
171+
ActiveRecord::Base.establish_connection(:adapter => "sqlite3",
172+
:database => config_database_path)
173+
166174
migrate_database
167175

168176
expanded_config_file_path = File.expand_path config_file_path if config_file_path
@@ -272,5 +280,11 @@ def available_components
272280
end
273281
end
274282

283+
# Load the models
284+
require 'rflow/configuration/setting'
285+
require 'rflow/configuration/component'
286+
require 'rflow/configuration/port'
287+
require 'rflow/configuration/connection'
288+
275289
# Incorporate various config file processors
276290
require 'rflow/configuration/ruby_dsl'

lib/rflow/configuration/component.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
class RFlow
55
class Configuration
6-
class Component < ActiveRecord::Base
6+
class Component < ConfigDB
77
include UUIDKeyed
88
include ActiveModel::Validations
99

lib/rflow/configuration/connection.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
class RFlow
55
class Configuration
6-
class Connection < ActiveRecord::Base
6+
class Connection < ConfigDB
77
class ConnectionInvalid < StandardError; end
88

99
include UUIDKeyed

lib/rflow/configuration/port.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
class RFlow
55
class Configuration
6-
class Port < ActiveRecord::Base
6+
class Port < ConfigDB
77
include UUIDKeyed
88
include ActiveModel::Validations
99

lib/rflow/configuration/ruby_dsl.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,10 @@ def process_connection_spec(connection_spec)
135135
input_port.save!
136136

137137
# Create a unique ZMQ address
138-
zmq_address = "ipc://run/rflow.#{output_component.uuid}.#{output_port.uuid}"
139-
if connection_spec[:output_port_key]
140-
zmq_address << ".#{connection_spec[:output_port_key].gsub(/[^\w]/, '').downcase}"
141-
end
138+
# zmq_address = "ipc://run/rflow.#{output_component.uuid}.#{output_port.uuid}"
139+
# if connection_spec[:output_port_key]
140+
# zmq_address << ".#{connection_spec[:output_port_key].gsub(/[^\w]/, '').downcase}"
141+
# end
142142

143143
connection = RFlow::Configuration::ZMQConnection.new(:name => connection_spec[:name],
144144
:output_port_key => connection_spec[:output_port_key],

lib/rflow/configuration/setting.rb

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
class RFlow
55
class Configuration
6-
class Setting < ActiveRecord::Base
6+
class Setting < ConfigDB
77
class SettingInvalid < StandardError; end
88

99
include ActiveModel::Validations
@@ -15,8 +15,8 @@ class SettingInvalid < StandardError; end
1515
'rflow.application_name' => 'rflow',
1616

1717
'rflow.application_directory_path' => '.',
18-
'rflow.pid_directory_path' => lambda {File.join(Setting['rflow.application_directory_path'], 'run')},
19-
'rflow.log_directory_path' => lambda {File.join(Setting['rflow.application_directory_path'], 'log')},
18+
'rflow.pid_directory_path' => 'run', #lambda {File.join(Setting['rflow.application_directory_path'], 'run')},
19+
'rflow.log_directory_path' => 'log', #lambda {File.join(Setting['rflow.application_directory_path'], 'log')},
2020

2121
'rflow.log_file_path' => lambda {File.join(Setting['rflow.log_directory_path'], Setting['rflow.application_name'] + '.log')},
2222
'rflow.pid_file_path' => lambda {File.join(Setting['rflow.pid_directory_path'], Setting['rflow.application_name'] + '.pid')},
@@ -35,8 +35,10 @@ class SettingInvalid < StandardError; end
3535
]
3636

3737

38-
validate :valid_directory_path, :if => :directory_path?
39-
validate :valid_writable_path, :if => :directory_path?
38+
# TODO: fix these validations, as they run without the
39+
#application directory path context for subdirectories
40+
#validate :valid_directory_path, :if => :directory_path?
41+
#validate :valid_writable_path, :if => :directory_path?
4042

4143
# TODO: Think about making this a regex check to pull in other,
4244
# externally-defined settings

lib/rflow/connections/zmq_connection.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ def zmq_context
3030

3131
attr_accessor :socket
3232

33-
REQUIRED_OPTIONS = ['_socket_type', '_address', '_responsibility']
33+
REQUIRED_OPTION_SUFFIXES = ['_socket_type', '_address', '_responsibility']
3434

3535
def self.configuration_errors(configuration)
3636
# TODO: Normalize/validate configuration
3737
missing_config_elements = []
3838

3939
['input', 'output'].each do |direction_prefix|
40-
REQUIRED_OPTIONS.each do |option_suffix|
40+
REQUIRED_OPTION_SUFFIXES.each do |option_suffix|
4141
config_element = "#{direction_prefix}#{option_suffix}"
4242
unless configuration.include? config_element
4343
missing_config_elements << config_element

lib/rflow/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
class RFlow
2-
VERSION = "0.0.2"
2+
VERSION = "0.0.3"
33
end # class RFlow

spec/fixtures/config.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
config.setting('rflow.log_level', 'DEBUG')
77
config.setting('rflow.application_directory_path', '../tmp')
88

9+
config.setting('rflow.application_name', 'testapp')
10+
911
# Add schemas to the list of available. Not convinced this is necessary
1012
# config.schema('schemaname', 'schematype', 'schemadata')
1113

0 commit comments

Comments
 (0)