adamtanner 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,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: []