Module: Pluto

Defined in:
lib/pluto/config.rb,
lib/pluto/models.rb,
lib/pluto/schema.rb,
lib/pluto/version.rb,
lib/pluto/connecter.rb,
lib/pluto/models/feed.rb,
lib/pluto/models/item.rb,
lib/pluto/models/site.rb,
lib/pluto/models/utils.rb,
lib/pluto/models/forward.rb,
lib/pluto/models/subscription.rb

Defined Under Namespace

Modules: Model Classes: Configuration, Connecter, CreateDb, Test

Constant Summary collapse

MAJOR =
1
MINOR =
6
PATCH =
2
VERSION =
[MAJOR,MINOR,PATCH].join('.')
Models =

note: convenience alias for Model lets you use include Pluto::Models

Model

Class Method Summary collapse

Class Method Details

.auto_migrate!Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/pluto/models.rb', line 67

def self.auto_migrate!
  # first time? - auto-run db migratation, that is, create db tables
  unless LogDb::Model::Log.table_exists?
    LogDb.create # add logs table
  end

  unless ConfDb::Model::Prop.table_exists?
    ConfDb.create # add props table
  end

  ## fix: change to Model from Models
  unless ActivityDb::Models::Activity.table_exists?
    ActivityDb::CreateDb.new.up    # todo/check - use ActivityDb.create if exists???
  end

  unless Model::Feed.table_exists?
    Pluto.create
  end
end


14
15
16
17
# File 'lib/pluto/version.rb', line 14

def self.banner
  ### todo: add RUBY_PATCHLEVEL or RUBY_PATCH_LEVEL  e.g. -p124
  "pluto-models/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
end

.configObject



28
29
30
# File 'lib/pluto/config.rb', line 28

def self.config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

lets you use

Pluto.configure do |config|
   config.debug        = true
   config.logger.level = :debug
end

Yields:



24
25
26
# File 'lib/pluto/config.rb', line 24

def self.configure
  yield( config )
end

.connect(config = {}) ⇒ Object

convenience shortcut without (w/o) automigrate



89
90
91
# File 'lib/pluto/models.rb', line 89

def self.connect( config={} )  # convenience shortcut without (w/o) automigrate
  Connecter.new.connect( config )
end

.connect!(config = {}) ⇒ Object

convenience shortcut w/ automigrate



93
94
95
96
# File 'lib/pluto/models.rb', line 93

def self.connect!( config={} )  # convenience shortcut w/ automigrate
  Pluto.connect( config )
  Pluto.auto_migrate!
end

.createObject



54
55
56
57
# File 'lib/pluto/models.rb', line 54

def self.create
  CreateDb.new.up
  ConfDb::Model::Prop.create!( key: 'db.schema.planet.version', value: VERSION )
end

.create_allObject



59
60
61
62
63
64
# File 'lib/pluto/models.rb', line 59

def self.create_all
  LogDb.create # add logs table
  ConfDb.create # add props table
  ActivityDb::CreateDb.new.up    # todo/check - use ActivityDb.create if exists???
  Pluto.create
end

.generatorObject

Note: moved from pluto-merge (add here because pluto-merge gem is optional)

fix: remove generator in pluto-merge!!! (duplicate)


21
22
23
# File 'lib/pluto/version.rb', line 21

def self.generator   # convenience alias for banner (matches HTML generator meta tag)
  "Pluto #{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
end

.rootObject



26
27
28
# File 'lib/pluto/version.rb', line 26

def self.root
  "#{File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )}"
end

.setup_in_memory_dbObject



99
100
101
102
103
104
105
106
107
108
109
# File 'lib/pluto/models.rb', line 99

def self.setup_in_memory_db
  # Database Setup & Config
  ActiveRecord::Base.logger = Logger.new( STDOUT )
  ## ActiveRecord::Base.colorize_logging = false - no longer exists - check new api/config setting?

  Pluto.connect( adapter: 'sqlite3',
                 database: ':memory:' )

  ## build schema
  Pluto.create_all
end

.versionObject



10
11
12
# File 'lib/pluto/version.rb', line 10

def self.version
  VERSION
end