instrument 0.1.0

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.
@@ -0,0 +1,2 @@
1
+ desc "Remove all build products"
2
+ task "clobber"
@@ -0,0 +1,62 @@
1
+ require "rake/gempackagetask"
2
+
3
+ namespace :gem do
4
+ GEM_SPEC = Gem::Specification.new do |s|
5
+ s.name = PKG_NAME
6
+ s.version = PKG_VERSION
7
+ s.summary = PKG_SUMMARY
8
+ s.description = PKG_DESCRIPTION
9
+
10
+ s.files = PKG_FILES.to_a
11
+
12
+ s.has_rdoc = true
13
+ s.extra_rdoc_files = %w( README )
14
+ s.rdoc_options.concat ["--main", "README"]
15
+
16
+ s.add_dependency("rake", ">= 0.7.3")
17
+ s.add_dependency("rspec", ">= 1.0.8")
18
+
19
+ s.require_path = "lib"
20
+
21
+ s.author = "Bob Aman"
22
+ s.email = "bob@sporkmonger.com"
23
+ s.homepage = "http://sporkmonger.com/"
24
+ s.rubyforge_project = RUBY_FORGE_PROJECT
25
+ end
26
+
27
+ Rake::GemPackageTask.new(GEM_SPEC) do |p|
28
+ p.gem_spec = GEM_SPEC
29
+ p.need_tar = true
30
+ p.need_zip = true
31
+ end
32
+
33
+ desc "Show information about the gem"
34
+ task :debug do
35
+ puts GEM_SPEC.to_ruby
36
+ end
37
+
38
+ desc "Install the gem"
39
+ task :install => ["clobber", "gem:package"] do
40
+ sh "#{SUDO} gem install --local pkg/#{GEM_SPEC.full_name}"
41
+ end
42
+
43
+ desc "Uninstall the gem"
44
+ task :uninstall do
45
+ installed_list = Gem.source_index.find_name(PKG_NAME)
46
+ if installed_list &&
47
+ (installed_list.collect { |s| s.version.to_s}.include?(PKG_VERSION))
48
+ sh(
49
+ "#{SUDO} gem uninstall --version '#{PKG_VERSION}' " +
50
+ "--ignore-dependencies --executables #{PKG_NAME}"
51
+ )
52
+ end
53
+ end
54
+
55
+ desc "Reinstall the gem"
56
+ task :reinstall => [:uninstall, :install]
57
+ end
58
+
59
+ desc "Alias to gem:package"
60
+ task "gem" => "gem:package"
61
+
62
+ task "clobber" => ["gem:clobber_package"]
@@ -0,0 +1,27 @@
1
+ namespace :git do
2
+ namespace :tag do
3
+ desc "List tags from the Git repository"
4
+ task :list do
5
+ tags = `git tag -l`
6
+ tags.gsub!("\r", "")
7
+ tags = tags.split("\n").sort {|a, b| b <=> a }
8
+ puts tags.join("\n")
9
+ end
10
+
11
+ desc "Create a new tag in the Git repository"
12
+ task :create do
13
+ v = ENV["VERSION"] or abort "Must supply VERSION=x.y.z"
14
+ abort "Versions don't match #{v} vs #{PKG_VERSION}" if v != PKG_VERSION
15
+
16
+ tag = "#{PKG_NAME}-#{PKG_VERSION}"
17
+ msg = "Release #{PKG_NAME}-#{PKG_VERSION}"
18
+
19
+ puts "Creating git tag '#{tag}'..."
20
+ unless system "git tag -a -m \"#{msg}\" #{tag}"
21
+ abort "Tag creation failed."
22
+ end
23
+ end
24
+ end
25
+ end
26
+
27
+ task "gem:release" => "git:tag:create"
@@ -0,0 +1,22 @@
1
+ namespace :metrics do
2
+ task :lines do
3
+ lines, codelines, total_lines, total_codelines = 0, 0, 0, 0
4
+ for file_name in FileList["lib/**/*.rb"]
5
+ f = File.open(file_name)
6
+ while line = f.gets
7
+ lines += 1
8
+ next if line =~ /^\s*$/
9
+ next if line =~ /^\s*#/
10
+ codelines += 1
11
+ end
12
+ puts "L: #{sprintf("%4d", lines)}, " +
13
+ "LOC #{sprintf("%4d", codelines)} | #{file_name}"
14
+ total_lines += lines
15
+ total_codelines += codelines
16
+
17
+ lines, codelines = 0, 0
18
+ end
19
+
20
+ puts "Total: Lines #{total_lines}, LOC #{total_codelines}"
21
+ end
22
+ end
@@ -0,0 +1,29 @@
1
+ require "rake/rdoctask"
2
+
3
+ namespace :doc do
4
+ desc "Generate RDoc documentation"
5
+ Rake::RDocTask.new do |rdoc|
6
+ rdoc.rdoc_dir = "doc"
7
+ rdoc.title = "#{PKG_NAME}-#{PKG_VERSION} Documentation"
8
+ rdoc.options << "--line-numbers" << "--inline-source" <<
9
+ "--accessor" << "cattr_accessor=object" << "--charset" << "utf-8"
10
+ rdoc.template = "#{ENV["template"]}.rb" if ENV["template"]
11
+ rdoc.rdoc_files.include("README", "CHANGELOG", "LICENSE")
12
+ rdoc.rdoc_files.include("lib/**/*.rb")
13
+ end
14
+
15
+ desc "Generate ri locally for testing"
16
+ task :ri do
17
+ sh "rdoc --ri -o ri ."
18
+ end
19
+
20
+ desc "Remove ri products"
21
+ task :clobber_ri do
22
+ rm_r "ri" rescue nil
23
+ end
24
+ end
25
+
26
+ desc "Alias to doc:rdoc"
27
+ task "doc" => "doc:rdoc"
28
+
29
+ task "clobber" => ["doc:clobber_rdoc", "doc:clobber_ri"]
@@ -0,0 +1,77 @@
1
+ require 'rubyforge'
2
+ require 'rake/contrib/sshpublisher'
3
+
4
+ namespace :gem do
5
+ desc 'Package and upload to RubyForge'
6
+ task :release => ["gem:package"] do |t|
7
+ v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
8
+ abort "Versions don't match #{v} vs #{PROJ.version}" if v != PKG_VERSION
9
+ pkg = "pkg/#{GEM_SPEC.full_name}"
10
+
11
+ rf = RubyForge.new
12
+ puts 'Logging in...'
13
+ rf.login
14
+
15
+ c = rf.userconfig
16
+ changelog = File.open("CHANGELOG") { |file| file.read }
17
+ c['release_changes'] = changelog
18
+ c['preformatted'] = true
19
+
20
+ files = ["#{pkg}.tgz", "#{pkg}.zip", "#{pkg}.gem"]
21
+
22
+ puts "Releasing #{PKG_NAME} v. #{PKG_VERSION}"
23
+ rf.add_release RUBY_FORGE_PROJECT, PKG_NAME, PKG_VERSION, *files
24
+ end
25
+ end
26
+
27
+ namespace :doc do
28
+ desc "Publish RDoc to RubyForge"
29
+ task :release => ["doc:rdoc"] do
30
+ config = YAML.load(
31
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
32
+ )
33
+ host = "#{config['username']}@rubyforge.org"
34
+ remote_dir = RUBY_FORGE_PATH + "/api"
35
+ local_dir = "doc"
36
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
37
+ end
38
+ end
39
+
40
+ namespace :spec do
41
+ desc "Publish specdoc to RubyForge"
42
+ task :release => ["spec:specdoc"] do
43
+ config = YAML.load(
44
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
45
+ )
46
+ host = "#{config['username']}@rubyforge.org"
47
+ remote_dir = RUBY_FORGE_PATH + "/specdoc"
48
+ local_dir = "specdoc"
49
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
50
+ end
51
+
52
+ namespace :rcov do
53
+ desc "Publish coverage report to RubyForge"
54
+ task :release => ["spec:rcov"] do
55
+ config = YAML.load(
56
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
57
+ )
58
+ host = "#{config['username']}@rubyforge.org"
59
+ remote_dir = RUBY_FORGE_PATH + "/coverage"
60
+ local_dir = "coverage"
61
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
62
+ end
63
+ end
64
+ end
65
+
66
+ namespace :website do
67
+ desc "Publish website to RubyForge"
68
+ task :release => ["doc:release", "spec:release", "spec:rcov:release"] do
69
+ config = YAML.load(
70
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
71
+ )
72
+ host = "#{config['username']}@rubyforge.org"
73
+ remote_dir = RUBY_FORGE_PATH
74
+ local_dir = "website"
75
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
76
+ end
77
+ end
@@ -0,0 +1,43 @@
1
+ require 'spec/rake/verify_rcov'
2
+
3
+ namespace :spec do
4
+ Spec::Rake::SpecTask.new(:rcov) do |t|
5
+ t.spec_files = FileList['spec/**/*_spec.rb']
6
+ t.spec_opts = ['--color', '--format', 'specdoc']
7
+ t.rcov = true
8
+ t.rcov_opts = [
9
+ '--exclude', 'spec',
10
+ '--exclude', '1\\.8\\/gems',
11
+ '--exclude', '1\\.9\\/gems'
12
+ ]
13
+ end
14
+
15
+ RCov::VerifyTask.new(:verify) do |t|
16
+ t.threshold = 100.0
17
+ t.index_html = 'coverage/index.html'
18
+ end
19
+
20
+ task :verify => :rcov
21
+
22
+ desc "Generate HTML Specdocs for all specs"
23
+ Spec::Rake::SpecTask.new(:specdoc) do |t|
24
+ specdoc_path = File.expand_path(
25
+ File.join(File.dirname(__FILE__), '../specdoc/'))
26
+ Dir.mkdir(specdoc_path) if !File.exist?(specdoc_path)
27
+
28
+ output_file = File.join(specdoc_path, 'index.html')
29
+ t.spec_files = FileList['spec/**/*_spec.rb']
30
+ t.spec_opts = ["--format", "\"html:#{output_file}\"", "--diff"]
31
+ t.fail_on_error = false
32
+ end
33
+
34
+ desc "Browse the code coverage report."
35
+ task :rcov_browse => :rcov do
36
+ Rake.browse("coverage/index.html")
37
+ end
38
+ end
39
+
40
+ desc "Alias to spec:verify"
41
+ task "spec" => "spec:verify"
42
+
43
+ task "clobber" => ["spec:clobber_rcov"]
@@ -0,0 +1,95 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
3
+ <head>
4
+ <meta charset="utf-8"/>
5
+ <title>Instrument</title>
6
+ <style type="text/css">
7
+ * {
8
+ font-size: 100%;
9
+ margin: 0;
10
+ padding: 0;
11
+ }
12
+
13
+ body {
14
+ font-family: lucida grande, verdana, sans-serif;
15
+ margin: 1em;
16
+ }
17
+
18
+ a {
19
+ color: #880000;
20
+ }
21
+
22
+ a:visited {
23
+ color: #333333;
24
+ }
25
+
26
+ h1 {
27
+ font-size: 2em;
28
+ margin: 0 0 0.8em 0;
29
+ text-align: center;
30
+ }
31
+
32
+ h2 {
33
+ font-size: 1em;
34
+ margin: 0.8em 0;
35
+ }
36
+
37
+ p {
38
+ margin: 0.8em 0;
39
+ }
40
+
41
+ ul {
42
+ font-size: 0.9em;
43
+ margin: 0 0 0 1.5em;
44
+ }
45
+
46
+ div {
47
+ width: 50%;
48
+ margin: 0 auto;
49
+ padding: 0.8em;
50
+ background-color: #AA5852;
51
+ border: 2px solid #C2645D;
52
+ }
53
+
54
+ @media print {
55
+ body {
56
+ font-size: 0.9em;
57
+ }
58
+
59
+ a {
60
+ text-decoration: none;
61
+ color: #000;
62
+ }
63
+ }
64
+ </style>
65
+ </head>
66
+ <body>
67
+ <h1>Instrument</h1>
68
+ <div>
69
+ <p>
70
+ Instrument is a simple library for producing dynamically generated
71
+ "controls" with various templating languages.
72
+ </p>
73
+ <ul>
74
+ <li>
75
+ <a href="http://rubyforge.org/projects/instrument/">
76
+ Project Page
77
+ </a>
78
+ </li>
79
+ <li><a href="/api/">API</a></li>
80
+ <li><a href="/specdoc/">Specifications</a></li>
81
+ <li><a href="/coverage/">Code Coverage</a></li>
82
+ </ul>
83
+ <p>
84
+ You know what to do:
85
+ </p>
86
+ <p>
87
+ <code>sudo gem install instrument</code><br />
88
+ <code>sudo gem install haml</code> (optional)<br />
89
+ <code>sudo gem install erubis</code> (optional)<br />
90
+ <code>sudo gem install markaby</code> (optional)<br />
91
+ <code>sudo gem install builder</code> (optional)
92
+ </p>
93
+ </div>
94
+ </body>
95
+ </html>
metadata ADDED
@@ -0,0 +1,104 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: instrument
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Bob Aman
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-05-19 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rake
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.7.3
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: rspec
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.0.8
32
+ version:
33
+ description: Instrument is a simple library for producing dynamically generated "controls" with various templating languages.
34
+ email: bob@sporkmonger.com
35
+ executables: []
36
+
37
+ extensions: []
38
+
39
+ extra_rdoc_files:
40
+ - README
41
+ files:
42
+ - lib/instrument
43
+ - lib/instrument/control.rb
44
+ - lib/instrument/control_builder.rb
45
+ - lib/instrument/errors.rb
46
+ - lib/instrument/version.rb
47
+ - lib/instrument.rb
48
+ - spec/control_templates
49
+ - spec/control_templates/image_control.xhtml.haml
50
+ - spec/control_templates/select_control.atom.rxml
51
+ - spec/control_templates/select_control.directory.haml
52
+ - spec/control_templates/select_control.directory.haml/explanation.txt
53
+ - spec/control_templates/select_control.html.mab
54
+ - spec/control_templates/select_control.json.erb
55
+ - spec/control_templates/select_control.txt.bogus
56
+ - spec/control_templates/select_control.xhtml.haml
57
+ - spec/control_templates/select_control.xml.haml
58
+ - spec/instrument
59
+ - spec/instrument/control_builder_spec.rb
60
+ - spec/instrument/control_spec.rb
61
+ - spec/spec.opts
62
+ - spec/spec_helper.rb
63
+ - tasks/browse.rake
64
+ - tasks/clobber.rake
65
+ - tasks/gem.rake
66
+ - tasks/git.rake
67
+ - tasks/metrics.rake
68
+ - tasks/rdoc.rake
69
+ - tasks/rubyforge.rake
70
+ - tasks/spec.rake
71
+ - website/index.html
72
+ - CHANGELOG
73
+ - LICENSE
74
+ - Rakefile
75
+ - README
76
+ has_rdoc: true
77
+ homepage: http://sporkmonger.com/
78
+ post_install_message:
79
+ rdoc_options:
80
+ - --main
81
+ - README
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: "0"
89
+ version:
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: "0"
95
+ version:
96
+ requirements: []
97
+
98
+ rubyforge_project: instrument
99
+ rubygems_version: 1.1.1
100
+ signing_key:
101
+ specification_version: 2
102
+ summary: Template-based Controls
103
+ test_files: []
104
+