danwrong-evil 0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +1 -0
- data/Manifest +22 -0
- data/Rakefile +11 -0
- data/assets/config.ru +8 -0
- data/assets/evil.css +24 -0
- data/assets/evil.js +0 -0
- data/bin/evil +28 -0
- data/evil.gemspec +48 -0
- data/lib/evil/application.rb +21 -0
- data/lib/evil/models/config_pair.rb +11 -0
- data/lib/evil/models/plugin.rb +13 -0
- data/lib/evil/models/template.rb +28 -0
- data/lib/evil/models/whitelist.rb +32 -0
- data/lib/evil/models.rb +17 -0
- data/lib/evil/setup/db_tool.rb +25 -0
- data/lib/evil/setup/generator.rb +60 -0
- data/lib/evil/setup/migration.rb +54 -0
- data/lib/evil.rb +15 -0
- data/test/harness/config.ru +9 -0
- data/test/harness/evil.db +0 -0
- data/test/harness/public/javascripts/evil.js +0 -0
- data/test/harness/public/stylesheets/evil.css +24 -0
- data/test/harness/tmp/restart.txt +0 -0
- metadata +140 -0
data/CHANGELOG
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
v0.1 Initial release
|
data/Manifest
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
assets/config.ru
|
2
|
+
assets/evil.css
|
3
|
+
assets/evil.js
|
4
|
+
bin/evil
|
5
|
+
CHANGELOG
|
6
|
+
lib/evil/application.rb
|
7
|
+
lib/evil/models/config_pair.rb
|
8
|
+
lib/evil/models/plugin.rb
|
9
|
+
lib/evil/models/template.rb
|
10
|
+
lib/evil/models/whitelist.rb
|
11
|
+
lib/evil/models.rb
|
12
|
+
lib/evil/setup/db_tool.rb
|
13
|
+
lib/evil/setup/generator.rb
|
14
|
+
lib/evil/setup/migration.rb
|
15
|
+
lib/evil.rb
|
16
|
+
Rakefile
|
17
|
+
test/harness/config.ru
|
18
|
+
test/harness/evil.db
|
19
|
+
test/harness/public/javascripts/evil.js
|
20
|
+
test/harness/public/stylesheets/evil.css
|
21
|
+
test/harness/tmp/restart.txt
|
22
|
+
Manifest
|
data/Rakefile
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'echoe'
|
2
|
+
|
3
|
+
Echoe.new("evil") do |p|
|
4
|
+
p.author = "Dan Webb"
|
5
|
+
p.email = 'dan@danwebb.net'
|
6
|
+
p.summary = "A simple framework for creating sites from 3rd party data and services"
|
7
|
+
p.url = "http://www.evilmashups.com"
|
8
|
+
p.runtime_dependencies = ["sinatra", "activerecord",
|
9
|
+
"sqlite3-ruby", "clip", "haml"]
|
10
|
+
p.retain_gemspec = true
|
11
|
+
end
|
data/assets/config.ru
ADDED
data/assets/evil.css
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
body {
|
2
|
+
background: black;
|
3
|
+
color: white;
|
4
|
+
font-family: Monaco, Courier, fixed-width;
|
5
|
+
text-align: center;
|
6
|
+
}
|
7
|
+
|
8
|
+
#page {
|
9
|
+
width: 60%;
|
10
|
+
margin: 3em auto;
|
11
|
+
text-align: left;
|
12
|
+
background: #333;
|
13
|
+
}
|
14
|
+
|
15
|
+
#banner {
|
16
|
+
padding: 0.2em 1em;
|
17
|
+
}
|
18
|
+
|
19
|
+
#content {
|
20
|
+
margin: 0.5em;
|
21
|
+
padding: 0.5em;
|
22
|
+
background: #111;
|
23
|
+
}
|
24
|
+
|
data/assets/evil.js
ADDED
File without changes
|
data/bin/evil
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'clip'
|
5
|
+
require 'evil'
|
6
|
+
|
7
|
+
options = Clip do |p|
|
8
|
+
end
|
9
|
+
|
10
|
+
command = options.remainder.first
|
11
|
+
|
12
|
+
case command
|
13
|
+
when "init"
|
14
|
+
path = options.remainder[1]
|
15
|
+
Evil::Setup::Generator.new(path).generate!
|
16
|
+
when "whitelist"
|
17
|
+
pattern = options.remainder[1]
|
18
|
+
path = options.remainder[2]
|
19
|
+
Evil::Setup::DbTool.new(path || Dir.pwd).whitelist pattern
|
20
|
+
when 'unwhitelist'
|
21
|
+
pattern = options.remainder[1]
|
22
|
+
path = options.remainder[2]
|
23
|
+
Evil::Setup::DbTool.new(path || Dir.pwd).remove_from_whitelist pattern
|
24
|
+
else
|
25
|
+
puts "Command not recognised...either init, whitelist or unwhitelist"
|
26
|
+
end
|
27
|
+
|
28
|
+
|
data/evil.gemspec
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{evil}
|
5
|
+
s.version = "0.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Dan Webb"]
|
9
|
+
s.date = %q{2009-03-18}
|
10
|
+
s.default_executable = %q{evil}
|
11
|
+
s.description = %q{A simple framework for creating sites from 3rd party data and services}
|
12
|
+
s.email = %q{dan@danwebb.net}
|
13
|
+
s.executables = ["evil"]
|
14
|
+
s.extra_rdoc_files = ["bin/evil", "CHANGELOG", "lib/evil/application.rb", "lib/evil/models/config_pair.rb", "lib/evil/models/plugin.rb", "lib/evil/models/template.rb", "lib/evil/models/whitelist.rb", "lib/evil/models.rb", "lib/evil/setup/db_tool.rb", "lib/evil/setup/generator.rb", "lib/evil/setup/migration.rb", "lib/evil.rb"]
|
15
|
+
s.files = ["assets/config.ru", "assets/evil.css", "assets/evil.js", "bin/evil", "CHANGELOG", "lib/evil/application.rb", "lib/evil/models/config_pair.rb", "lib/evil/models/plugin.rb", "lib/evil/models/template.rb", "lib/evil/models/whitelist.rb", "lib/evil/models.rb", "lib/evil/setup/db_tool.rb", "lib/evil/setup/generator.rb", "lib/evil/setup/migration.rb", "lib/evil.rb", "Rakefile", "test/harness/config.ru", "test/harness/evil.db", "test/harness/public/javascripts/evil.js", "test/harness/public/stylesheets/evil.css", "test/harness/tmp/restart.txt", "Manifest", "evil.gemspec"]
|
16
|
+
s.has_rdoc = true
|
17
|
+
s.homepage = %q{http://www.evilmashups.com}
|
18
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Evil", "--main", "README.textile"]
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.rubyforge_project = %q{evil}
|
21
|
+
s.rubygems_version = %q{1.3.1}
|
22
|
+
s.summary = %q{A simple framework for creating sites from 3rd party data and services}
|
23
|
+
|
24
|
+
if s.respond_to? :specification_version then
|
25
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
26
|
+
s.specification_version = 2
|
27
|
+
|
28
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
29
|
+
s.add_runtime_dependency(%q<sinatra>, [">= 0"])
|
30
|
+
s.add_runtime_dependency(%q<activerecord>, [">= 0"])
|
31
|
+
s.add_runtime_dependency(%q<sqlite3-ruby>, [">= 0"])
|
32
|
+
s.add_runtime_dependency(%q<clip>, [">= 0"])
|
33
|
+
s.add_runtime_dependency(%q<haml>, [">= 0"])
|
34
|
+
else
|
35
|
+
s.add_dependency(%q<sinatra>, [">= 0"])
|
36
|
+
s.add_dependency(%q<activerecord>, [">= 0"])
|
37
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
38
|
+
s.add_dependency(%q<clip>, [">= 0"])
|
39
|
+
s.add_dependency(%q<haml>, [">= 0"])
|
40
|
+
end
|
41
|
+
else
|
42
|
+
s.add_dependency(%q<sinatra>, [">= 0"])
|
43
|
+
s.add_dependency(%q<activerecord>, [">= 0"])
|
44
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
45
|
+
s.add_dependency(%q<clip>, [">= 0"])
|
46
|
+
s.add_dependency(%q<haml>, [">= 0"])
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'sinatra'
|
2
|
+
require 'evil/models'
|
3
|
+
|
4
|
+
configure do
|
5
|
+
Sinatra.register Evil::Models
|
6
|
+
|
7
|
+
set :sessions => true,
|
8
|
+
:static => File.join(Evil.app_root, 'public'),
|
9
|
+
:views => File.join(Evil.gem_root, 'views'),
|
10
|
+
:haml => { :format => :html5 }
|
11
|
+
|
12
|
+
connect_to_database
|
13
|
+
end
|
14
|
+
|
15
|
+
include Evil::Models
|
16
|
+
|
17
|
+
get '/admin' do
|
18
|
+
@thing = Whitelist.find(:first).pattern
|
19
|
+
haml :index
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Evil
|
2
|
+
|
3
|
+
module Models
|
4
|
+
|
5
|
+
class Template < ActiveRecord::Base
|
6
|
+
set_table_name :evil_templates
|
7
|
+
|
8
|
+
validates_presence_of :route, :source
|
9
|
+
validates_uniqueness_of :route
|
10
|
+
validates_format_of :route, :with => /^((\/)|(((\/|\.):?[a-z0-9\_]+)+))$/
|
11
|
+
|
12
|
+
after_save :reload_template_routes
|
13
|
+
after_destroy :reload_template_routes
|
14
|
+
|
15
|
+
has_many :cached_pages
|
16
|
+
|
17
|
+
named_scope :in_order, :order => 'position ASC'
|
18
|
+
|
19
|
+
protected
|
20
|
+
|
21
|
+
def reload_template_routes
|
22
|
+
Evil::Routes.reload_template_routes
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Evil
|
2
|
+
|
3
|
+
module Models
|
4
|
+
|
5
|
+
class Whitelist < ActiveRecord::Base
|
6
|
+
set_table_name :evil_whitelists
|
7
|
+
|
8
|
+
validates_presence_of :pattern
|
9
|
+
|
10
|
+
after_save :clear_pattern_cache
|
11
|
+
after_destroy :clear_pattern_cache
|
12
|
+
|
13
|
+
def self.add(pattern)
|
14
|
+
Whitelist.create! :pattern => pattern
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.authorize(identity_url)
|
18
|
+
@@patterns ||= find(:all).collect { |t| Regexp.new "^#{t.pattern.gsub('*', '(.*)')}$" }
|
19
|
+
@@patterns.any? { |p| identity_url.gsub(/^http\:\/\//, '') =~ p }
|
20
|
+
end
|
21
|
+
|
22
|
+
protected
|
23
|
+
|
24
|
+
def clear_pattern_cache
|
25
|
+
@@patterns = nil
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
data/lib/evil/models.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'activerecord'
|
2
|
+
require 'evil/models/config_pair'
|
3
|
+
require 'evil/models/plugin'
|
4
|
+
require 'evil/models/template'
|
5
|
+
require 'evil/models/whitelist'
|
6
|
+
|
7
|
+
module Evil
|
8
|
+
module Models
|
9
|
+
|
10
|
+
def connect_to_database
|
11
|
+
ActiveRecord::Base.establish_connection :adapter => 'sqlite3',
|
12
|
+
:database => File.join(Evil.app_root, 'evil.db')
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'evil/models'
|
2
|
+
|
3
|
+
module Evil
|
4
|
+
module Setup
|
5
|
+
class DbTool
|
6
|
+
include Evil::Models
|
7
|
+
|
8
|
+
def initialize(app_root)
|
9
|
+
ActiveRecord::Base.establish_connection :adapter => 'sqlite3',
|
10
|
+
:database => File.join(app_root, 'evil.db')
|
11
|
+
end
|
12
|
+
|
13
|
+
def whitelist(pattern)
|
14
|
+
puts "Adding #{pattern} to admin whitelist..."
|
15
|
+
Whitelist.create(:pattern => pattern)
|
16
|
+
end
|
17
|
+
|
18
|
+
def remove_from_whitelist(pattern)
|
19
|
+
puts "Removing #{pattern} to admin whitelist..."
|
20
|
+
Whitelist.find_by_pattern(pattern).destroy
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'evil/models'
|
3
|
+
require 'evil/setup/migration'
|
4
|
+
|
5
|
+
module Evil
|
6
|
+
module Setup
|
7
|
+
class Generator
|
8
|
+
include FileUtils
|
9
|
+
|
10
|
+
ASSET_PATH = File.join(File.dirname(__FILE__), '..', '..', '..', 'assets')
|
11
|
+
|
12
|
+
DIR_LAYOUT = %w{
|
13
|
+
tmp
|
14
|
+
public/images
|
15
|
+
public/stylesheets
|
16
|
+
public/javascripts
|
17
|
+
}
|
18
|
+
|
19
|
+
ASSETS = [
|
20
|
+
['evil.css', 'public/stylesheets/evil.css'],
|
21
|
+
['evil.js', 'public/javascripts/evil.js'],
|
22
|
+
['config.ru', 'config.ru']
|
23
|
+
]
|
24
|
+
|
25
|
+
def initialize(path)
|
26
|
+
@path = path
|
27
|
+
end
|
28
|
+
|
29
|
+
def generate!
|
30
|
+
puts "Generating Evil application..."
|
31
|
+
create_dir_tree!
|
32
|
+
copy_assets!
|
33
|
+
puts "Initializing database..."
|
34
|
+
create_database!
|
35
|
+
end
|
36
|
+
|
37
|
+
def create_dir_tree!
|
38
|
+
DIR_LAYOUT.each do |dir|
|
39
|
+
mkdir_p "#{@path}/#{dir}"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def create_database!
|
44
|
+
ActiveRecord::Base.establish_connection :adapter => 'sqlite3',
|
45
|
+
:database => File.join(@path, 'evil.db')
|
46
|
+
|
47
|
+
ActiveRecord::Migration.extend Evil::Setup::Migration
|
48
|
+
|
49
|
+
ActiveRecord::Migration.create_evil_tables
|
50
|
+
end
|
51
|
+
|
52
|
+
def copy_assets!
|
53
|
+
ASSETS.each do |file, dest|
|
54
|
+
cp File.join(ASSET_PATH, file), File.join(@path, dest)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'ar_openid_store'
|
2
|
+
require 'ar_openid_store/migration'
|
3
|
+
|
4
|
+
module Evil
|
5
|
+
module Setup
|
6
|
+
module Migration
|
7
|
+
|
8
|
+
def create_evil_tables
|
9
|
+
create_table :evil_templates do |t|
|
10
|
+
t.integer :ttl, :position
|
11
|
+
t.string :title, :route
|
12
|
+
t.text :source
|
13
|
+
t.timestamps
|
14
|
+
end unless Evil::Models::Template.table_exists?
|
15
|
+
|
16
|
+
create_table :evil_plugins do |t|
|
17
|
+
t.string :name, :description, :author
|
18
|
+
t.text :source, :url
|
19
|
+
t.boolean :enabled
|
20
|
+
t.timestamps
|
21
|
+
end unless Evil::Models::Plugin.table_exists?
|
22
|
+
|
23
|
+
unless Evil::Models::ConfigPair.table_exists?
|
24
|
+
create_table :evil_config_pairs do |t|
|
25
|
+
t.integer :plugin_id
|
26
|
+
t.string :key
|
27
|
+
t.text :value
|
28
|
+
t.timestamps
|
29
|
+
end
|
30
|
+
|
31
|
+
add_index :evil_config_pairs, :plugin_id
|
32
|
+
end
|
33
|
+
|
34
|
+
create_table :evil_whitelists do |t|
|
35
|
+
t.string :pattern
|
36
|
+
end unless Evil::Models::Whitelist.table_exists?
|
37
|
+
|
38
|
+
unless ArOpenidStore::Association.table_exists?
|
39
|
+
create_openid_tables
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def destroy_evil_tables
|
44
|
+
drop_table :evil_templates
|
45
|
+
drop_table :evil_plugins
|
46
|
+
drop_table :evil_config_pairs
|
47
|
+
drop_openid_tables
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
|
data/lib/evil.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
module Evil
|
2
|
+
module Setup
|
3
|
+
autoload :DbTool, 'evil/setup/db_tool'
|
4
|
+
autoload :Generator, 'evil/setup/generator'
|
5
|
+
autoload :Migration, 'evil/setup/migration'
|
6
|
+
end
|
7
|
+
|
8
|
+
autoload :Application, 'evil/application'
|
9
|
+
|
10
|
+
class << self
|
11
|
+
attr_accessor :gem_root, :app_root
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
Evil.gem_root = File.join(File.dirname(__FILE__), '..')
|
Binary file
|
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
body {
|
2
|
+
background: black;
|
3
|
+
color: white;
|
4
|
+
font-family: Monaco, Courier, fixed-width;
|
5
|
+
text-align: center;
|
6
|
+
}
|
7
|
+
|
8
|
+
#page {
|
9
|
+
width: 60%;
|
10
|
+
margin: 3em auto;
|
11
|
+
text-align: left;
|
12
|
+
background: #333;
|
13
|
+
}
|
14
|
+
|
15
|
+
#banner {
|
16
|
+
padding: 0.2em 1em;
|
17
|
+
}
|
18
|
+
|
19
|
+
#content {
|
20
|
+
margin: 0.5em;
|
21
|
+
padding: 0.5em;
|
22
|
+
background: #111;
|
23
|
+
}
|
24
|
+
|
File without changes
|
metadata
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: danwrong-evil
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: "0.1"
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dan Webb
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-03-18 00:00:00 -07:00
|
13
|
+
default_executable: evil
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: sinatra
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activerecord
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: sqlite3-ruby
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: "0"
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: clip
|
47
|
+
type: :runtime
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "0"
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: haml
|
57
|
+
type: :runtime
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: "0"
|
64
|
+
version:
|
65
|
+
description: A simple framework for creating sites from 3rd party data and services
|
66
|
+
email: dan@danwebb.net
|
67
|
+
executables:
|
68
|
+
- evil
|
69
|
+
extensions: []
|
70
|
+
|
71
|
+
extra_rdoc_files:
|
72
|
+
- bin/evil
|
73
|
+
- CHANGELOG
|
74
|
+
- lib/evil/application.rb
|
75
|
+
- lib/evil/models/config_pair.rb
|
76
|
+
- lib/evil/models/plugin.rb
|
77
|
+
- lib/evil/models/template.rb
|
78
|
+
- lib/evil/models/whitelist.rb
|
79
|
+
- lib/evil/models.rb
|
80
|
+
- lib/evil/setup/db_tool.rb
|
81
|
+
- lib/evil/setup/generator.rb
|
82
|
+
- lib/evil/setup/migration.rb
|
83
|
+
- lib/evil.rb
|
84
|
+
files:
|
85
|
+
- assets/config.ru
|
86
|
+
- assets/evil.css
|
87
|
+
- assets/evil.js
|
88
|
+
- bin/evil
|
89
|
+
- CHANGELOG
|
90
|
+
- lib/evil/application.rb
|
91
|
+
- lib/evil/models/config_pair.rb
|
92
|
+
- lib/evil/models/plugin.rb
|
93
|
+
- lib/evil/models/template.rb
|
94
|
+
- lib/evil/models/whitelist.rb
|
95
|
+
- lib/evil/models.rb
|
96
|
+
- lib/evil/setup/db_tool.rb
|
97
|
+
- lib/evil/setup/generator.rb
|
98
|
+
- lib/evil/setup/migration.rb
|
99
|
+
- lib/evil.rb
|
100
|
+
- Rakefile
|
101
|
+
- test/harness/config.ru
|
102
|
+
- test/harness/evil.db
|
103
|
+
- test/harness/public/javascripts/evil.js
|
104
|
+
- test/harness/public/stylesheets/evil.css
|
105
|
+
- test/harness/tmp/restart.txt
|
106
|
+
- Manifest
|
107
|
+
- evil.gemspec
|
108
|
+
has_rdoc: true
|
109
|
+
homepage: http://www.evilmashups.com
|
110
|
+
post_install_message:
|
111
|
+
rdoc_options:
|
112
|
+
- --line-numbers
|
113
|
+
- --inline-source
|
114
|
+
- --title
|
115
|
+
- Evil
|
116
|
+
- --main
|
117
|
+
- README.textile
|
118
|
+
require_paths:
|
119
|
+
- lib
|
120
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: "0"
|
125
|
+
version:
|
126
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: "1.2"
|
131
|
+
version:
|
132
|
+
requirements: []
|
133
|
+
|
134
|
+
rubyforge_project: evil
|
135
|
+
rubygems_version: 1.2.0
|
136
|
+
signing_key:
|
137
|
+
specification_version: 2
|
138
|
+
summary: A simple framework for creating sites from 3rd party data and services
|
139
|
+
test_files: []
|
140
|
+
|