autoparse 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,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
data/tasks/rdoc.rake ADDED
@@ -0,0 +1,26 @@
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
+ task 'clobber' => ['doc:clobber_rdoc', 'doc:clobber_ri']
@@ -0,0 +1,103 @@
1
+ namespace :gem do
2
+ desc 'Package and upload to RubyForge'
3
+ task :release => ['gem:package'] do |t|
4
+ require 'rubyforge'
5
+
6
+ v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
7
+ abort "Versions don't match #{v} vs #{PROJ.version}" if v != PKG_VERSION
8
+ pkg = "pkg/#{GEM_SPEC.full_name}"
9
+
10
+ rf = RubyForge.new
11
+ rf.configure
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
+ require 'rake/contrib/sshpublisher'
31
+ require 'yaml'
32
+
33
+ config = YAML.load(
34
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
35
+ )
36
+ host = "#{config['username']}@rubyforge.org"
37
+ remote_dir = RUBY_FORGE_PATH + '/api'
38
+ local_dir = 'doc'
39
+ if !File.exist?('website/api')
40
+ system('mkdir website/api')
41
+ end
42
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
43
+ end
44
+ end
45
+
46
+ namespace :spec do
47
+ desc 'Publish specdoc to RubyForge'
48
+ task :release => ['spec:specdoc'] do
49
+ require 'rake/contrib/sshpublisher'
50
+ require 'yaml'
51
+
52
+ config = YAML.load(
53
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
54
+ )
55
+ host = "#{config['username']}@rubyforge.org"
56
+ remote_dir = RUBY_FORGE_PATH + '/specdoc'
57
+ local_dir = 'specdoc'
58
+ if !File.exist?('website/specdoc')
59
+ system('mkdir website/specdoc')
60
+ end
61
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
62
+ end
63
+
64
+ namespace :rcov do
65
+ desc 'Publish coverage report to RubyForge'
66
+ task :release => ['spec:rcov'] do
67
+ require 'rake/contrib/sshpublisher'
68
+ require 'yaml'
69
+
70
+ config = YAML.load(
71
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
72
+ )
73
+ host = "#{config['username']}@rubyforge.org"
74
+ remote_dir = RUBY_FORGE_PATH + '/coverage'
75
+ local_dir = 'coverage'
76
+ if !File.exist?('website/coverage')
77
+ system('mkdir website/coverage')
78
+ end
79
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
80
+ end
81
+ end
82
+ end
83
+
84
+ namespace :website do
85
+ desc 'Publish website to RubyForge'
86
+ task :init do
87
+ require 'rake/contrib/sshpublisher'
88
+ require 'yaml'
89
+
90
+ config = YAML.load(
91
+ File.read(File.expand_path('~/.rubyforge/user-config.yml'))
92
+ )
93
+ host = "#{config['username']}@rubyforge.org"
94
+ remote_dir = RUBY_FORGE_PATH
95
+ local_dir = 'website'
96
+ Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
97
+ end
98
+
99
+ desc 'Publish website to RubyForge'
100
+ task :release => [
101
+ 'website:init', 'doc:release', 'spec:release', 'spec:rcov:release'
102
+ ]
103
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,71 @@
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
+ if RCOV_ENABLED
8
+ if `which rcov`.strip == ''
9
+ STDERR.puts 'Please install rcov:'
10
+ STDERR.puts 'sudo gem install relevance-rcov'
11
+ exit(1)
12
+ end
13
+ t.rcov = true
14
+ else
15
+ t.rcov = false
16
+ end
17
+ t.rcov_opts = [
18
+ '--exclude', 'spec',
19
+ '--exclude', '\\.rvm\\/gems',
20
+ '--exclude', '1\\.8\\/gems',
21
+ '--exclude', '1\\.9\\/gems',
22
+ '--exclude', '\\.rvm',
23
+ '--exclude', '\\/Library\\/Ruby'
24
+ ]
25
+ end
26
+
27
+ Spec::Rake::SpecTask.new(:normal) do |t|
28
+ t.spec_files = FileList['spec/**/*_spec.rb']
29
+ t.spec_opts = ['--color', '--format', 'specdoc']
30
+ t.rcov = false
31
+ end
32
+
33
+ if RCOV_ENABLED
34
+ RCov::VerifyTask.new(:verify) do |t|
35
+ t.threshold = 100.0
36
+ t.index_html = 'coverage/index.html'
37
+ end
38
+
39
+ task :verify => :rcov
40
+ end
41
+
42
+ desc 'Generate HTML Specdocs for all specs'
43
+ Spec::Rake::SpecTask.new(:specdoc) do |t|
44
+ specdoc_path = File.expand_path(
45
+ File.join(File.dirname(__FILE__), '../specdoc/'))
46
+ Dir.mkdir(specdoc_path) if !File.exist?(specdoc_path)
47
+
48
+ output_file = File.join(specdoc_path, 'index.html')
49
+ t.spec_files = FileList['spec/**/*_spec.rb']
50
+ t.spec_opts = ['--format', "\"html:#{output_file}\"", '--diff']
51
+ t.fail_on_error = false
52
+ end
53
+
54
+ namespace :rcov do
55
+ desc 'Browse the code coverage report.'
56
+ task :browse => 'spec:rcov' do
57
+ require 'launchy'
58
+ Launchy::Browser.run('coverage/index.html')
59
+ end
60
+ end
61
+ end
62
+
63
+ if RCOV_ENABLED
64
+ desc 'Alias to spec:verify'
65
+ task 'spec' => 'spec:verify'
66
+ else
67
+ desc 'Alias to spec:normal'
68
+ task 'spec' => 'spec:normal'
69
+ end
70
+
71
+ task 'clobber' => ['spec:clobber_rcov']
data/tasks/yard.rake ADDED
@@ -0,0 +1,26 @@
1
+ require 'rake'
2
+
3
+ begin
4
+ require 'yard'
5
+ require 'yard/rake/yardoc_task'
6
+
7
+ namespace :doc do
8
+ desc 'Generate Yardoc documentation'
9
+ YARD::Rake::YardocTask.new do |yardoc|
10
+ yardoc.name = 'yard'
11
+ yardoc.options = ['--verbose']
12
+ yardoc.files = [
13
+ 'lib/**/*.rb', 'ext/**/*.c', 'README', 'CHANGELOG', 'LICENSE'
14
+ ]
15
+ end
16
+ end
17
+
18
+ task 'clobber' => ['doc:clobber_yard']
19
+
20
+ desc 'Alias to doc:yard'
21
+ task 'doc' => 'doc:yard'
22
+ rescue LoadError
23
+ # If yard isn't available, it's not the end of the world
24
+ desc 'Alias to doc:rdoc'
25
+ task 'doc' => 'doc:rdoc'
26
+ end
@@ -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>AutoParse</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>AutoParse</h1>
68
+ <div>
69
+ <p>
70
+ An implementation of the JSON Schema specification.
71
+ </p>
72
+ <ul>
73
+ <li>
74
+ <a href="http://rubyforge.org/projects/autoparse/">
75
+ Project Page
76
+ </a>
77
+ </li>
78
+ <li>
79
+ <a href="http://github.com/sporkmonger/autoparse/tree/">
80
+ GitHub Page
81
+ </a>
82
+ </li>
83
+ <li><a href="/api/">API</a></li>
84
+ <li><a href="/specdoc/">Specifications</a></li>
85
+ <li><a href="/coverage/">Code Coverage</a></li>
86
+ </ul>
87
+ <p>
88
+ You know what to do:
89
+ </p>
90
+ <p>
91
+ <code>sudo gem install autoparse</code>
92
+ </p>
93
+ </div>
94
+ </body>
95
+ </html>
metadata ADDED
@@ -0,0 +1,212 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: autoparse
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Bob Aman
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-09-22 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: addressable
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ~>
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 2
31
+ - 2
32
+ - 2
33
+ version: 2.2.2
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: json
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 11
45
+ segments:
46
+ - 1
47
+ - 4
48
+ - 6
49
+ version: 1.4.6
50
+ type: :runtime
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: extlib
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 37
61
+ segments:
62
+ - 0
63
+ - 9
64
+ - 15
65
+ version: 0.9.15
66
+ type: :runtime
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
69
+ name: rake
70
+ prerelease: false
71
+ requirement: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ hash: 57
77
+ segments:
78
+ - 0
79
+ - 8
80
+ - 3
81
+ version: 0.8.3
82
+ type: :development
83
+ version_requirements: *id004
84
+ - !ruby/object:Gem::Dependency
85
+ name: rspec
86
+ prerelease: false
87
+ requirement: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ hash: 23
93
+ segments:
94
+ - 2
95
+ - 6
96
+ - 0
97
+ version: 2.6.0
98
+ type: :development
99
+ version_requirements: *id005
100
+ - !ruby/object:Gem::Dependency
101
+ name: launchy
102
+ prerelease: false
103
+ requirement: &id006 !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ~>
107
+ - !ruby/object:Gem::Version
108
+ hash: 23
109
+ segments:
110
+ - 0
111
+ - 3
112
+ - 2
113
+ version: 0.3.2
114
+ type: :development
115
+ version_requirements: *id006
116
+ - !ruby/object:Gem::Dependency
117
+ name: diff-lcs
118
+ prerelease: false
119
+ requirement: &id007 !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ hash: 23
125
+ segments:
126
+ - 1
127
+ - 1
128
+ - 2
129
+ version: 1.1.2
130
+ type: :development
131
+ version_requirements: *id007
132
+ description: |
133
+ An implementation of the JSON Schema specification. Provides automatic parsing
134
+ for any given JSON Schema.
135
+
136
+ email: bobaman@google.com
137
+ executables: []
138
+
139
+ extensions: []
140
+
141
+ extra_rdoc_files:
142
+ - README.md
143
+ files:
144
+ - lib/autoparse/inflection.rb
145
+ - lib/autoparse/instance.rb
146
+ - lib/autoparse/version.rb
147
+ - lib/autoparse.rb
148
+ - spec/autoparse/instance_spec.rb
149
+ - spec/data/account.json
150
+ - spec/data/address.json
151
+ - spec/data/adult.json
152
+ - spec/data/calendar.json
153
+ - spec/data/card.json
154
+ - spec/data/geo.json
155
+ - spec/data/hyper-schema.json
156
+ - spec/data/interfaces.json
157
+ - spec/data/json-ref.json
158
+ - spec/data/links.json
159
+ - spec/data/person.json
160
+ - spec/data/positive.json
161
+ - spec/data/schema.json
162
+ - spec/spec.opts
163
+ - spec/spec_helper.rb
164
+ - tasks/clobber.rake
165
+ - tasks/gem.rake
166
+ - tasks/git.rake
167
+ - tasks/metrics.rake
168
+ - tasks/rdoc.rake
169
+ - tasks/rubyforge.rake
170
+ - tasks/spec.rake
171
+ - tasks/yard.rake
172
+ - website/index.html
173
+ - CHANGELOG
174
+ - LICENSE
175
+ - Rakefile
176
+ - README.md
177
+ homepage: http://autoparse.rubyforge.org/
178
+ licenses: []
179
+
180
+ post_install_message:
181
+ rdoc_options:
182
+ - --main
183
+ - README.md
184
+ require_paths:
185
+ - lib
186
+ required_ruby_version: !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ hash: 3
192
+ segments:
193
+ - 0
194
+ version: "0"
195
+ required_rubygems_version: !ruby/object:Gem::Requirement
196
+ none: false
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ hash: 3
201
+ segments:
202
+ - 0
203
+ version: "0"
204
+ requirements: []
205
+
206
+ rubyforge_project: autoparse
207
+ rubygems_version: 1.8.6
208
+ signing_key:
209
+ specification_version: 3
210
+ summary: A parsing system based on JSON Schema.
211
+ test_files: []
212
+