autoparse 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+