Module: Writefully

Defined in:
lib/writefully.rb,
lib/writefully/cli.rb,
lib/writefully/asset.rb,
lib/writefully/taxon.rb,
lib/writefully/tools.rb,
lib/writefully/engine.rb,
lib/writefully/loader.rb,
lib/writefully/source.rb,
lib/writefully/content.rb,
lib/writefully/indices.rb,
lib/writefully/process.rb,
lib/writefully/storage.rb,
lib/writefully/version.rb,
lib/writefully/workers.rb,
lib/writefully/postable.rb,
app/models/writefully/tag.rb,
app/models/writefully/post.rb,
app/models/writefully/site.rb,
lib/writefully/news_agency.rb,
lib/writefully/tools/eraser.rb,
lib/writefully/tools/hammer.rb,
lib/writefully/tools/pencil.rb,
lib/writefully/tools/pigeon.rb,
lib/writefully/tools/retryer.rb,
app/models/writefully/tagging.rb,
lib/writefully/tools/dispatcher.rb,
lib/writefully/tools/stationery.rb,
lib/writefully/workers/handyman.rb,
app/models/writefully/authorship.rb,
lib/writefully/tools/initializer.rb,
lib/writefully/tools/synchronizer.rb,
lib/writefully/workers/journalist.rb,
lib/writefully/workers/base_worker.rb,
app/helpers/writefully/flash_helper.rb,
app/helpers/writefully/posts_helper.rb,
app/helpers/writefully/sites_helper.rb,
app/helpers/writefully/application_helper.rb,
app/controllers/writefully/hooks_controller.rb,
app/controllers/writefully/posts_controller.rb,
app/controllers/writefully/sites_controller.rb,
app/controllers/writefully/profiles_controller.rb,
app/controllers/writefully/sessions_controller.rb,
app/controllers/writefully/application_controller.rb,
app/controllers/writefully/authorships_controller.rb

Defined Under Namespace

Modules: ApplicationHelper, FlashHelper, Indices, Postable, PostsHelper, SitesHelper, Source, Storage, Tools, Workers Classes: ApplicationController, Asset, Authorship, AuthorshipsController, CLI, Content, Engine, HooksController, NewsAgency, Post, PostsController, Process, ProfilesController, SessionsController, Site, SitesController, Tag, Tagging, Taxon

Constant Summary collapse

SCOPES =
%w(repo public_repo user write:repo_hook)
QUEUE =
{ 
  top:    -> (c, job) { c.lpush "jobs", job },
  bottom: -> (c, job) { c.rpush "jobs", job }
}
VERSION =
"0.8.2"

Class Method Summary collapse

Class Method Details

.add_job(worker, message, position = nil) ⇒ Object



28
29
30
31
# File 'lib/writefully/loader.rb', line 28

def add_job worker, message, position = nil
  position_selector = position || :bottom
  Writefully.redis.with { |c| QUEUE[position_selector].call(c, convert_job(worker, message)) }
end

.config_from(path = nil) ⇒ Object



58
59
60
61
62
# File 'lib/writefully/loader.rb', line 58

def config_from(path = nil)
  YAML::load(ERB.new(IO.read(path)).result)[env]
rescue Errno::ENOENT
  $stdout.puts "config/writefully.yml does not exist"
end

.config_ymlObject



65
66
67
# File 'lib/writefully/loader.rb', line 65

def config_yml
  Rails.root.join('config', 'writefully.yml') if defined?(Rails)
end

.convert_job(worker, message) ⇒ Object



33
34
35
# File 'lib/writefully/loader.rb', line 33

def convert_job worker, message
   Marshal.dump({worker: worker, message: message})
end

.db_configObject



54
55
56
# File 'lib/writefully/loader.rb', line 54

def db_config
  YAML::load(ERB.new(IO.read(File.join(options[:app_directory], 'config', 'database.yml'))).result)[env]
end

.envObject



37
38
39
# File 'lib/writefully/loader.rb', line 37

def env
  ENV["RACK_ENV"] || ENV["RAILS_ENV"] || 'development'
end

.github_appObject



41
42
43
44
# File 'lib/writefully/loader.rb', line 41

def github_app
  @_github_app ||= Github.new(client_id:     options[:github_client], 
                              client_secret: options[:github_secret])
end

.log_locationObject



50
51
52
# File 'lib/writefully/loader.rb', line 50

def log_location
  env == 'development' ? STDOUT : Writefully.options[:logfile]
end

.loggerObject



46
47
48
# File 'lib/writefully/loader.rb', line 46

def logger
  @logger ||= Logger.new(log_location)
end

.optionsObject



17
18
19
# File 'lib/writefully/loader.rb', line 17

def options
  @_options ||= config_from(config_yml)
end

.options=(config) ⇒ Object



13
14
15
# File 'lib/writefully/loader.rb', line 13

def options=(config)
  @_options = config
end

.redisObject



21
22
23
24
25
26
# File 'lib/writefully/loader.rb', line 21

def redis
  r = Redis.new(host: 'localhost', port: 6379)
  @_redis ||= ConnectionPool.new(size: 5, timeout: 5) do 
    Redis::Namespace.new(:"#{env}:writefully", redis: r)
  end
end