Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
Conflicts:
	models/audioformat.rb
	models/show.rb
  • Loading branch information
pfleidi committed Nov 28, 2013
2 parents a90b963 + 2d3bec9 commit 496f256
Show file tree
Hide file tree
Showing 75 changed files with 811 additions and 968 deletions.
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Original file line Diff line number Diff line change
@@ -1 +1 @@
2.0.0-p195 2.0.0-p247
19 changes: 12 additions & 7 deletions Gemfile
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ gem 'sinatra', :require => 'sinatra/base'
gem 'sinatra-assetpack', :require => 'sinatra/assetpack' gem 'sinatra-assetpack', :require => 'sinatra/assetpack'
gem 'sinatra-contrib' gem 'sinatra-contrib'
gem 'puma' gem 'puma'
gem 'json' gem 'settingslogic'


# Templating # Templating
gem 'redcarpet' gem 'redcarpet'
Expand All @@ -16,20 +16,25 @@ gem 'therubyracer'
gem 'builder' gem 'builder'


# Data # Data
gem 'scrivener' gem 'mlk', :git => 'https://github.com/pfleidi/mlk.git'

# Queue
gem 'sidekiq'
gem 'redis'


# Mail # Mail
gem 'pony' gem 'pony'


# Debugging # Debugging
group :development, :test do group :development, :test do
gem 'rake'
gem 'pry' gem 'pry'
gem 'pry-debugger' gem 'pry-byebug'
gem 'mocha' gem 'mocha'
gem 'shotgun' gem 'shotgun'
gem 'w3c_validators' gem 'w3c_validators'
end end

# Localisation

gem 'i18n'

# CLI

gem 'thor'
108 changes: 53 additions & 55 deletions Gemfile.lock
Original file line number Original file line Diff line number Diff line change
@@ -1,94 +1,91 @@
GIT
remote: https://github.com/pfleidi/mlk.git
revision: 1117bae620dc114a3839d897758f7177686fc56e
specs:
mlk (0.0.1)
scrivener

GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
backports (3.3.1) backports (3.3.5)
builder (3.2.2) builder (3.2.2)
celluloid (0.14.1) byebug (2.3.1)
timers (>= 1.0.0) columnize (~> 0.3.6)
debugger-linecache (~> 1.2.0)
coderay (1.0.9) coderay (1.0.9)
columnize (0.3.6) columnize (0.3.6)
commonjs (0.2.6) commonjs (0.2.7)
connection_pool (1.1.0)
debugger (1.6.0)
columnize (>= 0.3.1)
debugger-linecache (~> 1.2.0)
debugger-ruby_core_source (~> 1.2.1)
debugger-linecache (1.2.0) debugger-linecache (1.2.0)
debugger-ruby_core_source (1.2.2) i18n (0.6.5)
eventmachine (1.0.3)
jsmin (1.0.1) jsmin (1.0.1)
json (1.8.0) json (1.8.1)
less (2.3.2) less (2.4.0)
commonjs (~> 0.2.6) commonjs (~> 0.2.7)
libv8 (3.11.8.17) libv8 (3.16.14.3)
mail (2.5.4) mail (2.5.4)
mime-types (~> 1.16) mime-types (~> 1.16)
treetop (~> 1.4.8) treetop (~> 1.4.8)
metaclass (0.0.1) metaclass (0.0.1)
method_source (0.8.1) method_source (0.8.2)
mime-types (1.23) mime-types (1.25)
mini_portile (0.5.2)
mocha (0.14.0) mocha (0.14.0)
metaclass (~> 0.0.1) metaclass (~> 0.0.1)
nokogiri (1.5.10) multi_json (1.8.2)
nokogiri (1.6.0)
mini_portile (~> 0.5.0)
polyglot (0.3.3) polyglot (0.3.3)
pony (1.4.1) pony (1.5.1)
mail (> 2.0) mail (>= 2.0)
pry (0.9.12.2) pry (0.9.12.2)
coderay (~> 1.0.5) coderay (~> 1.0.5)
method_source (~> 0.8) method_source (~> 0.8)
slop (~> 3.4) slop (~> 3.4)
pry-debugger (0.2.2) pry-byebug (1.2.0)
debugger (~> 1.3) byebug (~> 2.2)
pry (~> 0.9.10) pry (~> 0.9.12)
puma (2.0.1) puma (2.6.0)
rack (>= 1.1, < 2.0) rack (>= 1.1, < 2.0)
rack (1.5.2) rack (1.5.2)
rack-protection (1.5.0) rack-protection (1.5.1)
rack rack
rack-test (0.6.2) rack-test (0.6.2)
rack (>= 1.0) rack (>= 1.0)
redcarpet (2.3.0) rake (10.1.0)
redis (3.0.4) redcarpet (3.0.0)
redis-namespace (1.3.0)
redis (~> 3.0.0)
ref (1.0.5) ref (1.0.5)
scrivener (0.2.0) scrivener (0.2.0)
settingslogic (2.0.9)
shotgun (0.9) shotgun (0.9)
rack (>= 1.0) rack (>= 1.0)
sidekiq (2.12.1) sinatra (1.4.4)
celluloid (>= 0.14.1)
connection_pool (>= 1.0.0)
json
redis (>= 3.0)
redis-namespace
sinatra (1.4.3)
rack (~> 1.4) rack (~> 1.4)
rack-protection (~> 1.4) rack-protection (~> 1.4)
tilt (~> 1.3, >= 1.3.4) tilt (~> 1.3, >= 1.3.4)
sinatra-assetpack (0.2.3) sinatra-assetpack (0.3.1)
backports
jsmin jsmin
rack-test rack-test
sinatra sinatra
tilt (>= 1.3.0) tilt (>= 1.3.0)
sinatra-contrib (1.4.0) sinatra-contrib (1.4.1)
backports (>= 2.0) backports (>= 2.0)
eventmachine multi_json
rack-protection rack-protection
rack-test rack-test
sinatra (~> 1.4.2) sinatra (~> 1.4.0)
tilt (~> 1.3) tilt (~> 1.3)
slim (2.0.0) slim (2.0.2)
temple (~> 0.6.5) temple (~> 0.6.6)
tilt (~> 1.3, >= 1.3.3) tilt (>= 1.3.3, < 2.1)
slop (3.4.5) slop (3.4.6)
temple (0.6.5) temple (0.6.7)
therubyracer (0.11.4) therubyracer (0.12.0)
libv8 (~> 3.11.8.12) libv8 (~> 3.16.14.0)
ref ref
thor (0.18.1)
tilt (1.4.1) tilt (1.4.1)
timers (1.1.0) treetop (1.4.15)
treetop (1.4.14)
polyglot polyglot
polyglot (>= 0.3.1) polyglot (>= 0.3.1)
w3c_validators (1.2) w3c_validators (1.2)
Expand All @@ -100,22 +97,23 @@ PLATFORMS


DEPENDENCIES DEPENDENCIES
builder builder
json i18n
less less
mlk!
mocha mocha
pony pony
pry pry
pry-debugger pry-byebug
puma puma
rack rack
rake
redcarpet redcarpet
redis settingslogic
scrivener
shotgun shotgun
sidekiq
sinatra sinatra
sinatra-assetpack sinatra-assetpack
sinatra-contrib sinatra-contrib
slim slim
therubyracer therubyracer
thor
w3c_validators w3c_validators
32 changes: 20 additions & 12 deletions Rakefile
Original file line number Original file line Diff line number Diff line change
@@ -1,17 +1,18 @@
require 'rake/testtask' require 'rake/testtask'


require_relative 'lib/podding'
require_relative 'models/init'

source_dir = File.dirname(__FILE__) + '/source'
FileStorage.base_path = source_dir
Model.storage_engine = FileStorage

# Model stuff # Model stuff


desc 'Validate all entries of all models' desc 'Validate all entries of all models'
task :model_validate do task :model_validate do
Model.defined_models.each do |model| require 'mlk'
require 'mlk/storage_engines/file_storage'
require_relative 'lib/podding'
require_relative 'models/init'

source_dir = File.dirname(__FILE__) + '/source'
Mlk::FileStorage.base_path = source_dir
Mlk::Model.storage_engine = Mlk::FileStorage
Mlk::Model.defined_models.each do |model|
model.all.each do |entry| model.all.each do |entry|
unless entry.valid? unless entry.valid?
puts "Found invalid data in #{ model.name }: #{ entry.path } (#{ entry.errors.inspect })" puts "Found invalid data in #{ model.name }: #{ entry.path } (#{ entry.errors.inspect })"
Expand All @@ -24,14 +25,21 @@ end


# Tests # Tests


desc 'Execute all the tests'
task :test do
Rake::Task["unit"].invoke
Rake::Task["integration"].invoke
end

Rake::TestTask.new do |t| Rake::TestTask.new do |t|
t.name = 'test' t.name = 'integration'
t.pattern = 'test/integration/**/test_*.rb' t.pattern = 'spec/integration/**/test_*.rb'
t.verbose = true t.verbose = true
end end


Rake::TestTask.new do |t| Rake::TestTask.new do |t|
t.name = 'spec' t.name = 'unit'
t.pattern = 'test/spec/**/test_*.rb' t.pattern = 'spec/unit/**/test_*.rb'
t.verbose = true t.verbose = true
end end

24 changes: 19 additions & 5 deletions app.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
require 'net/http' require 'net/http'
require 'net/https' require 'net/https'
require 'json' require 'json'
require 'i18n'

require 'mlk'
require 'mlk/storage_engines/file_storage'


require_relative 'lib/podding' require_relative 'lib/podding'


Expand All @@ -33,16 +37,16 @@ class Podding < Sinatra::Base
set :public_folder, source_dir + '/assets' set :public_folder, source_dir + '/assets'
set :views, source_dir + '/templates' set :views, source_dir + '/templates'


FileStorage.base_path = source_dir Mlk::FileStorage.base_path = source_dir
Model.storage_engine = FileStorage Mlk::Model.storage_engine = Mlk::FileStorage


configure :production do configure :production do
# ... # ...
end end


configure :development do configure :development do
require 'pry' require 'pry'
require 'pry-debugger' require 'pry-byebug'
end end


helpers do helpers do
Expand All @@ -53,13 +57,23 @@ class Podding < Sinatra::Base
require_relative 'controllers/init' require_relative 'controllers/init'
require_relative 'models/init' require_relative 'models/init'
require_relative 'helpers/init' require_relative 'helpers/init'
require_relative 'filters/init'


Less.paths << source_dir + "/css" Less.paths << source_dir + "/css"


assets do assets do
serve '/js', from: 'source/js' # serve '/js', from: 'source/javascript'
serve '/css', from: 'source/css' serve '/css', from: 'source/css'
serve '/images', from: 'source/images' serve '/images', from: 'source/assets/images'
end

# Configure localisation

I18n.load_path += Dir[File.join(source_dir, 'locales', '*.yml').to_s]
if Settings["language"]
I18n.locale = Settings.language
else
I18n.locale = "en"
end end


# Load all helpers # Load all helpers
Expand Down
7 changes: 3 additions & 4 deletions controllers/archive.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class Podding < Sinatra::Base
get "/archive" do get "/archive" do
@page = Page.first(name: "archive") @page = Page.first(name: "archive")


# workaround until the finding engine is properly implemented # TODO: Use real finding engine
all_episodes = Episode.all all_episodes = Episode.all
episodes = [] episodes = []
for episode in all_episodes for episode in all_episodes
Expand All @@ -14,9 +14,8 @@ class Podding < Sinatra::Base
end end
end end


episodes.sort!{ |first, second| first.date <=> second.date }.reverse! # sort newest episodes first episodes.sort!{ |first, second| first.date <=> second.date }.reverse!
@episodes = episodes.group_by{ |episode| episode.date.year } # group them in a hash by year @episodes = episodes.group_by{ |episode| episode.date.year }



slim :archive slim :archive


Expand Down
28 changes: 19 additions & 9 deletions controllers/feed.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,17 +1,27 @@
#encoding: utf-8 #encoding: utf-8


class Podding < Sinatra::Base class Podding < Sinatra::Base
get "/feed/:show_name/:audio_format/feed.xml" do |show_name, audio_format| get "/feed/:show_name/:audio_format/feed" do |show_name, audio_format|
@episodes = Episode.find_match(show: show_name) @episodes = []
Episode.all.each do |episode|
@episodes << episode if episode.audioformats.include?(audio_format) and episode.show.name == show_name
end
@show = Show.first(name: show_name) @show = Show.first(name: show_name)
@audio_format = audio_format @audioformat = Audioformat.first(name: audio_format)
builder :atom builder :rss
end end


get "/feed/:audio_format/feed.xml" do |audio_format| get "/feed/:audio_format/feed" do |audio_format|
@episodes = Episode.find_match(:audioformats => audio_format) @episodes = []
@audio_format = audio_format Episode.all.each do |episode|
@episodes << episode if episode.audioformats.include?(audio_format)
end
@audioformat = Audioformat.first(name: audio_format)
@episodes.inspect.to_s @episodes.inspect.to_s
builder :atom builder :rss
end end
end
get "feed/itunes" do
redirect "feed/aac/feed"
end
end
Loading

0 comments on commit 496f256

Please sign in to comment.