ale 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ .bundle
2
+ .DS_Store
3
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'http://rubygems.org'
2
+ gemspec
data/ale.gemspec ADDED
@@ -0,0 +1,23 @@
1
+ $:.push File.expand_path('../lib', __FILE__)
2
+ require 'ale/version'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'ale'
6
+ s.platform = Gem::Platform::RUBY
7
+ s.version = Ale::VERSION
8
+
9
+ s.summary = 'Uploads websites to S3.'
10
+ s.description = 'Takes a static site and uploads it to Amazon\'s S3.'
11
+
12
+ s.author = 'Jeremy Boles'
13
+ s.email = 'jeremy@jeremyboles.com'
14
+ s.homepage = 'https://github.com/jeremyboles/ale'
15
+
16
+ s.bindir = 'bin'
17
+ s.executables = ['ale']
18
+ s.files = `git ls-files`.split("\n")
19
+ s.require_paths = ['lib']
20
+
21
+ s.add_dependency('aws-sdk', '~> 1.1.3')
22
+ s.add_dependency('thor', '~> 0.14.6')
23
+ end
data/bin/ale ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.push File.expand_path("../../lib", __FILE__)
4
+ require 'ale'
5
+
6
+ Ale::CLI.start
data/lib/ale.rb ADDED
@@ -0,0 +1,19 @@
1
+ module Ale
2
+ autoload :CLI, 'ale/cli'
3
+ autoload :Config, 'ale/config'
4
+ autoload :DSL, 'ale/dsl'
5
+ autoload :Site, 'ale/site'
6
+
7
+ class << self
8
+ def config!
9
+ AWS.config({
10
+ :access_key_id => Config.amazon_access_key_id,
11
+ :secret_access_key => Config.amazon_secret_access_key
12
+ })
13
+ end
14
+
15
+ def directory
16
+ File.expand_path('./')
17
+ end
18
+ end
19
+ end
data/lib/ale/cli.rb ADDED
@@ -0,0 +1,49 @@
1
+ require 'aws-sdk'
2
+ require 'thor'
3
+
4
+ module Ale
5
+ class CLI < Thor
6
+ include Thor::Actions
7
+
8
+ default_task :upload
9
+
10
+ desc 'build', 'Builds the site'
11
+ def build
12
+ say("Detect: #{Site.detect}")
13
+ end
14
+
15
+ desc 'upload', 'Uploads the site to S3'
16
+ def upload
17
+ if File.exists?(upfile)
18
+ DSL.evaluate(upfile)
19
+ Ale.config!
20
+ bucket = AWS::S3.new.buckets['www.bloomapp.net']
21
+
22
+ say("Starting upload to #{bucket.name}")
23
+ directory = File.expand_path(Ale.directory)
24
+ Dir["#{directory}/**/*"].each do |file|
25
+ unless File.directory?(file)
26
+ key = file.gsub('./', '')
27
+ say("Uploading #{key}")
28
+ object = bucket.objects[key]
29
+ object.write(:file => file, :acl => :public_read)
30
+ end
31
+ end
32
+ say('Your upload is complete!', :green)
33
+
34
+ if bucket.exists?
35
+ else
36
+ say("Bucket named #{bucket.name} does not exist", :red)
37
+ end
38
+ else
39
+ say('Could not locate Upfile', :red)
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def upfile
46
+ upfile = File.join(Ale.directory, 'Upfile')
47
+ end
48
+ end
49
+ end
data/lib/ale/config.rb ADDED
@@ -0,0 +1,16 @@
1
+ module Ale
2
+ module Config
3
+ class << self
4
+ attr_accessor :bucket
5
+ attr_writer :amazon_access_key_id, :amazon_secret_access_key
6
+
7
+ def amazon_access_key_id
8
+ @amazon_access_key_id || ENV['AMAZON_ACCESS_KEY_ID']
9
+ end
10
+
11
+ def amazon_secret_access_key
12
+ @amazon_secret_access_key || ENV['AMAZON_SECRET_ACCESS_KEY']
13
+ end
14
+ end
15
+ end
16
+ end
data/lib/ale/dsl.rb ADDED
@@ -0,0 +1,33 @@
1
+ module Ale
2
+ class DSL
3
+ def self.evaluate(upfile)
4
+ builder = new
5
+ contents = File.open(upfile, 'rb') { |f| f.read }
6
+ builder.instance_eval(contents, upfile.to_s, 1)
7
+ end
8
+
9
+ def access_key(key)
10
+ Ale::Config.amazon_access_key_id = key
11
+ end
12
+
13
+ def bucket(bucket)
14
+ Ale::Config.bucket = bucket
15
+ end
16
+
17
+ def ignore(file)
18
+ puts file
19
+ end
20
+
21
+ def public(file)
22
+ puts file
23
+ end
24
+
25
+ def private(file)
26
+ puts file
27
+ end
28
+
29
+ def secret_key(key)
30
+ Ale::Config.amazon_secret_access_key = key
31
+ end
32
+ end
33
+ end
data/lib/ale/site.rb ADDED
@@ -0,0 +1,35 @@
1
+ module Ale
2
+ module Site
3
+ class << self
4
+ def detect
5
+ return Jekyll if jekyll?
6
+ return Middleman if middleman?
7
+ return Base
8
+ end
9
+
10
+ def jekyll?
11
+ File.exists?(File.join(Up.directory, '_config.yml'))
12
+ end
13
+
14
+ def middleman?
15
+ File.exists?(File.join(Up.directory, 'config.rb')) && File.directory?(File.join(Up.directory, 'source'))
16
+ end
17
+
18
+ class Base
19
+ attr_accessor :ignored_files, :private_files, :public_files
20
+
21
+ def initialize
22
+ ignored_files = []
23
+ private_files = ['Upfile']
24
+ public_files = []
25
+ end
26
+ end
27
+
28
+ class Middleman < Base
29
+ end
30
+
31
+ class Jekyll < Base
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,3 @@
1
+ module Ale
2
+ VERSION = '0.0.1'
3
+ end
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ale
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jeremy Boles
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-09-08 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: aws-sdk
16
+ requirement: &70257830900780 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.1.3
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70257830900780
25
+ - !ruby/object:Gem::Dependency
26
+ name: thor
27
+ requirement: &70257830899900 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.14.6
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70257830899900
36
+ description: Takes a static site and uploads it to Amazon's S3.
37
+ email: jeremy@jeremyboles.com
38
+ executables:
39
+ - ale
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - .gitignore
44
+ - Gemfile
45
+ - ale.gemspec
46
+ - bin/ale
47
+ - lib/ale.rb
48
+ - lib/ale/cli.rb
49
+ - lib/ale/config.rb
50
+ - lib/ale/dsl.rb
51
+ - lib/ale/site.rb
52
+ - lib/ale/version.rb
53
+ homepage: https://github.com/jeremyboles/ale
54
+ licenses: []
55
+ post_install_message:
56
+ rdoc_options: []
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ requirements: []
72
+ rubyforge_project:
73
+ rubygems_version: 1.8.10
74
+ signing_key:
75
+ specification_version: 3
76
+ summary: Uploads websites to S3.
77
+ test_files: []