adamtanner 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source :rubygems
2
+
3
+ # Specify your gem's dependencies in adamtanner.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,27 @@
1
+ Adam Tanner
2
+ ==================
3
+
4
+ This is my resume as executable Ruby code.
5
+
6
+ Installation
7
+ ------------------
8
+
9
+ `gem install adamtanner`
10
+
11
+ Run `adamtanner` to have it print my resume to the console with syntax highlighting.
12
+
13
+ You can also run this from IRB:
14
+
15
+ require 'rubygems'
16
+ require 'adamtanner'
17
+
18
+ # Adam is assigned to my resume and you can drill down into it because it's just Ruby code.
19
+ Adam.name #=> "Adam Tanner"
20
+ Adam.experience.bullhorn_marketing.position #=> "Web Developer"
21
+
22
+
23
+ Future
24
+ ------------------
25
+
26
+ * Extend the `adamtanner` executable to start a server and display a web version of my resume.
27
+ * Extend the `adamtanner` executable to export a PDF of my resume.
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "adamtanner"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "adamtanner"
7
+ s.version = Adam.version
8
+ s.authors = [ "Adam Tanner" ]
9
+ s.email = [ "adam@adamtanner.org" ]
10
+ s.homepage = "http://adamtanner.org"
11
+ s.summary = %q{ Adam Tanner as a motherfuckin' Ruby gem. }
12
+ s.description = %q{ Adam Tanner as a motherfuckin' Ruby gem. }
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ["lib"]
18
+
19
+ # specify any dependencies here; for example:
20
+ # s.add_development_dependency "rspec"
21
+ s.add_runtime_dependency "coderay"
22
+ end
data/bin/adamtanner ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "coderay"
4
+
5
+ puts CodeRay.scan_file("lib/adamtanner.rb").terminal
@@ -0,0 +1,5 @@
1
+ require "uri"
2
+ require "block_party/dsl"
3
+
4
+ # A convenience wrapper for a "named" Tinderbox::DSL subclass.
5
+ Resume = Class.new(BlockParty::DSL)
data/lib/adamtanner.rb ADDED
@@ -0,0 +1,72 @@
1
+ require "adamtanner/resume"
2
+
3
+ Adam = Resume.new do
4
+ name "Adam Tanner"
5
+ date_of_birth Date.parse("November 30th, 1989")
6
+ version "0.0.1"
7
+
8
+ home do
9
+ street "124 Inverness Lane"
10
+ city "Winchester"
11
+ state "Kentucky"
12
+ zipcode 40391
13
+ web URI.parse("http://adamtanner.org") # Why isn't this up yet?!
14
+ github URI.parse("http://github.com/adamtanner")
15
+ twitter URI.parse("http://twitter.com/adamtanner")
16
+ end
17
+
18
+ contact do
19
+ phone "859.771.6563"
20
+ email "adam@adamtanner.org"
21
+ end
22
+
23
+ experience do
24
+ bullhorn_marketing do
25
+ company "Bullhorn Marketing"
26
+ web URI.parse("http://bullhornwill.com")
27
+ position "Web Developer"
28
+ responsibilites [
29
+ "Build awesome Ruby-based web applications using Sinatra and Rails for awesome clients.",
30
+ "Cut up and implement design mockups for brochure-style websites with chef-like mastery. (Built on Radiant CMS)",
31
+ "Build and maintain the ol' Linodes.",
32
+ "Wear the IT hat on unfortunate occasions."
33
+ ]
34
+ full_time Date.parse("August 2011")..Date.today
35
+ contracting Date.parse("February 2011")..Date.parse("August 2011")
36
+ end
37
+
38
+ promptsite do
39
+ company "PromptSite"
40
+ web URI.parse("http://promptsite.com")
41
+ position "Web Developer"
42
+ responsibilities [
43
+ "Use mad front-end ninja skills to take pretty pictures and turn them into e-living, bit-breathing, websites. (On Radiant CMS, of course)",
44
+ "Work on sweet Radiant extensions for everything from RSS Feeds to Salesforce integrations.",
45
+ "Shepherd of the Linodes"
46
+ ]
47
+ contracting Date.parse("February 2009")..Date.parse("June 2011")
48
+ end
49
+
50
+ rubidine do
51
+ company "Rubidine"
52
+ web URI.parse("http://rubidine.com")
53
+ position "Web Developer"
54
+ responsibilities [
55
+ "Take the MBTI and make it kick-ass with a sweet JavaScript based game using jQuery, jQuery UI,
56
+ and Sammy.js with a dash of Sinatra and DataMapper bringin' up the back for good measure.",
57
+ "Abstract out an old billing application to give it life outside of the church."
58
+ ]
59
+ contracting Date.parse("June 2010")..Date.parse("August 2010")
60
+ end
61
+
62
+ fineslacks do
63
+ company "Fineslacks"
64
+ web URI.parse("http://fineslacks.com")
65
+ position "Web Developer"
66
+ responsibilities [
67
+ "A healthy dose of refactoring and re-architecting for a Rails-based CMS/hosting platform MVP."
68
+ ]
69
+ contracting Date.parse("June 2010")..Date.parse("November 2010")
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,67 @@
1
+ module BlockParty
2
+ class DSL
3
+ # Creates a new BlockParty::DSL instance.
4
+ #
5
+ # @yields Block to be instance_eval'd.
6
+ def initialize(&block)
7
+ self.instance_eval(&block)
8
+ end
9
+
10
+ # Dynamically builds a method for each attribute that functions as
11
+ # both a getter and a setter.
12
+ #
13
+ # @param [Symbol] attributes An array of DSL method names
14
+ # @return nil
15
+ # @example Defining several DSL methods
16
+ # dsl_accessor :name, :age, :location
17
+ #
18
+ # # Sets the @name variable
19
+ # name "Adam Tanner"
20
+ #
21
+ # # Gets the @name variable
22
+ # name #=> "Adam Tanner"
23
+ def dsl_accessor(*attributes)
24
+ attributes.each do |attribute|
25
+ unless respond_to?(attribute.to_sym)
26
+ (class << self; self; end).instance_eval do
27
+ define_method(attribute.to_sym) do |arguments = nil|
28
+ return instance_variable_set("@#{attribute}", arguments) if arguments
29
+ instance_variable_get("@#{attribute}")
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ # Dynamically builds DSL methods for methods that don't exist.
37
+ # If the method does not have a block it is a normal DSL
38
+ # method. If the method does have a block then it is a "section"
39
+ # that will contain other DSL methods.
40
+ #
41
+ # @param [Symbol] method The method that was called
42
+ # @param [Array] arguments An array of arguments passed to the method
43
+ # @yields The block the method was passed if one exists
44
+ # @example
45
+ # BlockParty::DSL.new do
46
+ # # Is caught by method_missing and creates a DSL accessor
47
+ # name "Adam Tanner"
48
+ #
49
+ # # Is caught by method_missing and creates a new BlockParty::DSL instance
50
+ # home do
51
+ # # Is caught by method_missing and creates a DSL accessor in the context
52
+ # # of the 'home' BlockParty::DSL instance
53
+ # web URI.parse("http://adamtanner.org")
54
+ # end
55
+ # end
56
+ def method_missing(method, *arguments, &block)
57
+ dsl_accessor method.to_sym
58
+
59
+ if block
60
+ dsl_block = self.class.new(&block)
61
+ send(method, dsl_block)
62
+ else
63
+ send(method, *arguments)
64
+ end
65
+ end
66
+ end
67
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: adamtanner
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Adam Tanner
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-07 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: coderay
16
+ requirement: &70112490232940 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70112490232940
25
+ description: ! ' Adam Tanner as a motherfuckin'' Ruby gem. '
26
+ email:
27
+ - adam@adamtanner.org
28
+ executables:
29
+ - adamtanner
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - .gitignore
34
+ - Gemfile
35
+ - README.md
36
+ - Rakefile
37
+ - adamtanner.gemspec
38
+ - bin/adamtanner
39
+ - lib/adamtanner.rb
40
+ - lib/adamtanner/resume.rb
41
+ - lib/block_party/dsl.rb
42
+ homepage: http://adamtanner.org
43
+ licenses: []
44
+ post_install_message:
45
+ rdoc_options: []
46
+ require_paths:
47
+ - lib
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ requirements: []
61
+ rubyforge_project:
62
+ rubygems_version: 1.8.7
63
+ signing_key:
64
+ specification_version: 3
65
+ summary: Adam Tanner as a motherfuckin' Ruby gem.
66
+ test_files: []