verso 0.0.4 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/verso.rb +2 -0
- data/lib/verso/cluster.rb +1 -5
- data/lib/verso/course.rb +1 -6
- data/lib/verso/duty_area.rb +3 -1
- data/lib/verso/error.rb +4 -0
- data/lib/verso/http_gettable.rb +6 -1
- data/lib/verso/occupation.rb +1 -0
- data/lib/verso/occupation_data.rb +3 -3
- data/lib/verso/pathway.rb +1 -0
- data/lib/verso/program_area.rb +1 -11
- data/lib/verso/sluggable.rb +18 -0
- data/lib/verso/standards_list.rb +6 -1
- data/lib/verso/task.rb +1 -1
- data/lib/verso/task_list.rb +1 -1
- data/lib/verso/version.rb +1 -1
- data/spec/cluster_list_spec.rb +1 -2
- data/spec/cluster_spec.rb +29 -4
- data/spec/correlation_list_spec.rb +1 -2
- data/spec/course_list_spec.rb +1 -2
- data/spec/course_spec.rb +1 -2
- data/spec/credential_list_spec.rb +1 -2
- data/spec/credential_spec.rb +1 -2
- data/spec/duty_area_spec.rb +15 -2
- data/spec/edition_list_spec.rb +1 -2
- data/spec/emphasis_list_spec.rb +1 -2
- data/spec/emphasis_spec.rb +1 -2
- data/spec/examination_list_spec.rb +1 -3
- data/spec/extra_spec.rb +1 -2
- data/spec/extras_list_spec.rb +1 -2
- data/spec/frontmatter_spec.rb +1 -2
- data/spec/occupation_data_spec.rb +31 -2
- data/spec/occupation_list_spec.rb +1 -2
- data/spec/occupation_spec.rb +15 -2
- data/spec/pathway_spec.rb +15 -2
- data/spec/program_area_list_spec.rb +1 -2
- data/spec/program_area_spec.rb +1 -2
- data/spec/spec_helper.rb +4 -11
- data/spec/standard_spec.rb +1 -2
- data/spec/standards_list_spec.rb +7 -2
- data/spec/task_list_spec.rb +1 -2
- data/spec/task_spec.rb +2 -3
- data/verso.gemspec +1 -1
- metadata +19 -17
data/lib/verso.rb
CHANGED
@@ -6,9 +6,11 @@ require 'net/http'
|
|
6
6
|
require 'ostruct'
|
7
7
|
|
8
8
|
# base/mixin/override
|
9
|
+
require 'verso/error'
|
9
10
|
require 'verso/base'
|
10
11
|
require 'verso/hash'
|
11
12
|
require 'verso/http_gettable'
|
13
|
+
require 'verso/sluggable'
|
12
14
|
|
13
15
|
# resources and children
|
14
16
|
require 'verso/cluster'
|
data/lib/verso/cluster.rb
CHANGED
@@ -19,6 +19,7 @@ module Verso
|
|
19
19
|
# @option attrs [Fixnum] :id Cluster id *Required*
|
20
20
|
class Cluster < Verso::Base
|
21
21
|
include HTTPGettable
|
22
|
+
include Sluggable
|
22
23
|
attr_reader :code, :description, :id, :postsecondary_info
|
23
24
|
|
24
25
|
# Return VDOE Cluster contact. The contact will respond to #name, #email,
|
@@ -49,11 +50,6 @@ module Verso
|
|
49
50
|
collect { |p| Pathway.new(p) }
|
50
51
|
end
|
51
52
|
|
52
|
-
# @return [String] parameterized title
|
53
|
-
def slug
|
54
|
-
title.parameterize
|
55
|
-
end
|
56
|
-
|
57
53
|
# @return [String] Cluster title
|
58
54
|
def title
|
59
55
|
@title ||= attrs[:title] || attrs[:cluster][:title]
|
data/lib/verso/course.rb
CHANGED
@@ -120,12 +120,7 @@ module Verso
|
|
120
120
|
# @return [Verso::StandardsList] Standards bodies correlated to this
|
121
121
|
# course's tasks.
|
122
122
|
def standards
|
123
|
-
@standards ||=
|
124
|
-
StandardsList.from_course(self)
|
125
|
-
else
|
126
|
-
StandardsList.new(:code => code, :edition => edition,
|
127
|
-
:standards => [])
|
128
|
-
end
|
123
|
+
@standards ||= StandardsList.from_course(self)
|
129
124
|
end
|
130
125
|
|
131
126
|
# Fetch a complete task given a task id.
|
data/lib/verso/duty_area.rb
CHANGED
@@ -9,6 +9,8 @@ module Verso
|
|
9
9
|
# @return [String] Course code
|
10
10
|
# @!attribute [r] edition
|
11
11
|
# @return [String] Course edition year
|
12
|
+
# @!attribute [r] id
|
13
|
+
# @return [String] DutyArea ID
|
12
14
|
# @!attribute [r] title
|
13
15
|
# @return [String] Duty Area title
|
14
16
|
#
|
@@ -16,7 +18,7 @@ module Verso
|
|
16
18
|
# to a portion of the Task List resource. You should never need to
|
17
19
|
# instantiate one yourself.
|
18
20
|
class DutyArea < Verso::Base
|
19
|
-
attr_reader :code, :edition, :title
|
21
|
+
attr_reader :code, :edition, :id, :title
|
20
22
|
|
21
23
|
# Tasks within this Duty Area
|
22
24
|
#
|
data/lib/verso/error.rb
ADDED
data/lib/verso/http_gettable.rb
CHANGED
@@ -20,7 +20,12 @@ module Verso
|
|
20
20
|
# HTTP GET the JSON resource
|
21
21
|
# @return [String] JSON resource
|
22
22
|
def http_get
|
23
|
-
Net::HTTP.
|
23
|
+
resp = Net::HTTP.get_response('api.cteresource.org', path, 80)
|
24
|
+
if resp.code != "200"
|
25
|
+
raise Verso::ResourceNotFoundError
|
26
|
+
else
|
27
|
+
resp.body
|
28
|
+
end
|
24
29
|
end
|
25
30
|
|
26
31
|
# @return [Hash] Resource hash
|
data/lib/verso/occupation.rb
CHANGED
@@ -21,6 +21,7 @@ module Verso
|
|
21
21
|
# @option attrs [Fixnum] :id Occupation ID *Required*
|
22
22
|
class Occupation < Verso::Base
|
23
23
|
include HTTPGettable
|
24
|
+
include Sluggable
|
24
25
|
attr_reader :description, :id, :preparations, :title
|
25
26
|
|
26
27
|
# @return [Verso::Pathway] Pathway that is the parent of this occupation
|
@@ -39,9 +39,9 @@ module Verso
|
|
39
39
|
# @param [String] slug Occupation slug
|
40
40
|
# @return [Verso::OccupationData,nil] Containing only one Occupation
|
41
41
|
def self.find_by_slugs(cslug, pslug, slug)
|
42
|
-
cluster = ClusterList.new.find { |c| c.
|
43
|
-
pathway = cluster.pathways.find { |p| p.
|
44
|
-
occupation = pathway.occupations.find { |o| o.
|
42
|
+
cluster = ClusterList.new.find { |c| c.slug== cslug }
|
43
|
+
pathway = cluster.pathways.find { |p| p.slug == pslug }
|
44
|
+
occupation = pathway.occupations.find { |o| o.slug == slug }
|
45
45
|
OccupationData.new(
|
46
46
|
{ :cluster => { :title => cluster.title },
|
47
47
|
:pathway => { :title => pathway.title },
|
data/lib/verso/pathway.rb
CHANGED
data/lib/verso/program_area.rb
CHANGED
@@ -22,6 +22,7 @@ module Verso
|
|
22
22
|
# @option attrs [String] :title Program Area title *Required*
|
23
23
|
class ProgramArea < Verso::Base
|
24
24
|
include HTTPGettable
|
25
|
+
include Sluggable
|
25
26
|
attr_reader :deprecated, :official, :section_overview, :title, :version_date
|
26
27
|
|
27
28
|
# @return [Array] Collection of related {Verso::Course} objects
|
@@ -36,17 +37,6 @@ module Verso
|
|
36
37
|
""
|
37
38
|
end
|
38
39
|
|
39
|
-
# @return [String] Parameterized title
|
40
|
-
def slug
|
41
|
-
# swiped from ActiveSupport::Inflector
|
42
|
-
parameterized_string = title.dup
|
43
|
-
parameterized_string.gsub!(/[^a-z0-9\-_]+/i, '-')
|
44
|
-
re_sep = Regexp.escape('-')
|
45
|
-
parameterized_string.gsub!(/#{re_sep}{2,}/, '-')
|
46
|
-
parameterized_string.gsub!(/^#{re_sep}|#{re_sep}$/i, '')
|
47
|
-
parameterized_string.downcase
|
48
|
-
end
|
49
|
-
|
50
40
|
private
|
51
41
|
|
52
42
|
def path
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Verso
|
2
|
+
# Mixin for class, providing a slug method that returns a parameterized
|
3
|
+
# version of the title, a la ActiveSupport::Inflector's String#parameterize.
|
4
|
+
#
|
5
|
+
# @abstract Implement a title method that returns a string.
|
6
|
+
module Sluggable
|
7
|
+
# @return [String] Parameterized title
|
8
|
+
def slug
|
9
|
+
# swiped from ActiveSupport::Inflector
|
10
|
+
parameterized_string = title.dup
|
11
|
+
parameterized_string.gsub!(/[^a-z0-9\-_]+/i, '-')
|
12
|
+
re_sep = Regexp.escape('-')
|
13
|
+
parameterized_string.gsub!(/#{re_sep}{2,}/, '-')
|
14
|
+
parameterized_string.gsub!(/^#{re_sep}|#{re_sep}$/i, '')
|
15
|
+
parameterized_string.downcase
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/verso/standards_list.rb
CHANGED
@@ -36,7 +36,12 @@ class StandardsList < Verso::Base
|
|
36
36
|
# @param course [Verso::Course] A {Verso::Course}
|
37
37
|
# @return [Verso::StandardsList] A {Verso::Course}'s standards
|
38
38
|
def self.from_course(course)
|
39
|
-
|
39
|
+
if course.related_resources.include?("standards")
|
40
|
+
StandardsList.new(:code => course.code, :edition => course.edition)
|
41
|
+
else
|
42
|
+
StandardsList.new(:code => course.code, :edition => course.edition,
|
43
|
+
:standards => [])
|
44
|
+
end
|
40
45
|
end
|
41
46
|
|
42
47
|
private
|
data/lib/verso/task.rb
CHANGED
@@ -11,7 +11,7 @@ module Verso
|
|
11
11
|
# @!attribute [r] edition
|
12
12
|
# @return [String] Course edition year
|
13
13
|
# @!attribute [r] id
|
14
|
-
# @return [
|
14
|
+
# @return [String] Task ID
|
15
15
|
# @!attribute [r] sensitive
|
16
16
|
# @return [Boolean] Is this task sensitive?
|
17
17
|
# @!attribute [r] statement
|
data/lib/verso/task_list.rb
CHANGED
data/lib/verso/version.rb
CHANGED
data/spec/cluster_list_spec.rb
CHANGED
data/spec/cluster_spec.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Verso::Cluster do
|
4
|
-
use_vcr_cassette :record => :new_episodes
|
3
|
+
describe Verso::Cluster, :vcr do
|
5
4
|
|
6
5
|
before(:each) do
|
7
6
|
@cluster = Verso::ClusterList.new.first
|
@@ -16,8 +15,8 @@ describe Verso::Cluster do
|
|
16
15
|
@cluster.code.should be_a(String)
|
17
16
|
end
|
18
17
|
|
19
|
-
it 'is formatted like
|
20
|
-
@cluster.code.should match(
|
18
|
+
it 'is formatted like 1, 2, etc.' do
|
19
|
+
@cluster.code.should match(/\d+/)
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
@@ -99,6 +98,20 @@ describe Verso::Cluster do
|
|
99
98
|
end
|
100
99
|
end
|
101
100
|
|
101
|
+
describe '#slug' do
|
102
|
+
it 'responds' do
|
103
|
+
@cluster.should respond_to(:slug)
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'is a string' do
|
107
|
+
@cluster.slug.should be_a(String)
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'looks like the title' do
|
111
|
+
@cluster.slug.should == 'agriculture-food-and-natural-resources'
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
102
115
|
describe '#title' do
|
103
116
|
it 'responds' do
|
104
117
|
@cluster.should respond_to(:title)
|
@@ -112,4 +125,16 @@ describe Verso::Cluster do
|
|
112
125
|
@cluster.title.should == 'Agriculture, Food and Natural Resources'
|
113
126
|
end
|
114
127
|
end
|
128
|
+
|
129
|
+
describe '#http_get' do
|
130
|
+
before do
|
131
|
+
@bad_cluster = Verso::Cluster.new(:id => 9999999999999999)
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'raises ResourceNotFoundError when resource not found' do
|
135
|
+
expect { @bad_cluster.description }.to raise_error(
|
136
|
+
Verso::ResourceNotFoundError
|
137
|
+
)
|
138
|
+
end
|
139
|
+
end
|
115
140
|
end
|
data/spec/course_list_spec.rb
CHANGED
data/spec/course_spec.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'shared_verso_list_examples'
|
3
3
|
|
4
|
-
describe Verso::CredentialList do
|
5
|
-
use_vcr_cassette :record => :new_episodes
|
4
|
+
describe Verso::CredentialList, :vcr do
|
6
5
|
describe 'array-like behavior' do
|
7
6
|
before(:each) do
|
8
7
|
@list = Verso::CredentialList.new
|
data/spec/credential_spec.rb
CHANGED
data/spec/duty_area_spec.rb
CHANGED
@@ -1,12 +1,25 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Verso::DutyArea do
|
4
|
-
use_vcr_cassette :record => :new_episodes
|
3
|
+
describe Verso::DutyArea, :vcr do
|
5
4
|
|
6
5
|
before do
|
7
6
|
@da = Verso::CourseList.new(:code => "6320").last.duty_areas.last
|
8
7
|
end
|
9
8
|
|
9
|
+
describe '#id' do
|
10
|
+
it 'responds' do
|
11
|
+
@da.should respond_to(:id)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'is a String' do
|
15
|
+
@da.id.should be_a(String)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'looks like an id' do
|
19
|
+
@da.id.should match(/^\d+$/)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
10
23
|
describe '#code' do
|
11
24
|
it "responds" do
|
12
25
|
@da.should respond_to(:code)
|
data/spec/edition_list_spec.rb
CHANGED
data/spec/emphasis_list_spec.rb
CHANGED
data/spec/emphasis_spec.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'shared_verso_list_examples'
|
3
3
|
|
4
|
-
describe Verso::ExaminationList do
|
5
|
-
use_vcr_cassette :record => :new_episodes
|
6
|
-
|
4
|
+
describe Verso::ExaminationList, :vcr, :vcr do
|
7
5
|
before(:each) do
|
8
6
|
@list = Verso::ExaminationList.new
|
9
7
|
@kontained = OpenStruct
|
data/spec/extra_spec.rb
CHANGED
data/spec/extras_list_spec.rb
CHANGED
data/spec/frontmatter_spec.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Verso::OccupationData do
|
4
|
-
use_vcr_cassette :record => :new_episodes
|
3
|
+
describe Verso::OccupationData, :vcr do
|
5
4
|
|
6
5
|
before(:each) do
|
7
6
|
@od = Verso::OccupationList.new(:text => "golf").first
|
@@ -39,4 +38,34 @@ describe Verso::OccupationData do
|
|
39
38
|
@od.occupations.first.should be_a(Verso::Occupation)
|
40
39
|
end
|
41
40
|
end
|
41
|
+
|
42
|
+
describe 'Verso::OccupationData.find_by_slugs' do
|
43
|
+
before do
|
44
|
+
@od = Verso::OccupationData.find_by_slugs(
|
45
|
+
'agriculture-food-and-natural-resources',
|
46
|
+
'agribusiness-systems',
|
47
|
+
'agricultural-commodity-broker'
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'is an OccupationData' do
|
52
|
+
@od.should be_a(Verso::OccupationData)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'has the correct Cluster' do
|
56
|
+
@od.cluster.title.should == 'Agriculture, Food and Natural Resources'
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'has the correct Pathway' do
|
60
|
+
@od.pathway.title.should == 'Agribusiness Systems'
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'has only one Occupation' do
|
64
|
+
@od.occupations.count.should == 1
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'has the correct Occupation' do
|
68
|
+
@od.occupations.first.title.should == 'Agricultural Commodity Broker'
|
69
|
+
end
|
70
|
+
end
|
42
71
|
end
|
data/spec/occupation_spec.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Verso::Occupation do
|
4
|
-
use_vcr_cassette :record => :new_episodes
|
3
|
+
describe Verso::Occupation, :vcr do
|
5
4
|
|
6
5
|
before(:each) do
|
7
6
|
@occ = Verso::OccupationList.new(:text => "golf").first.occupations.first
|
@@ -82,4 +81,18 @@ describe Verso::Occupation do
|
|
82
81
|
@occ.title.should be_a(String)
|
83
82
|
end
|
84
83
|
end
|
84
|
+
|
85
|
+
describe '#slug' do
|
86
|
+
it 'responds' do
|
87
|
+
@occ.should respond_to(:slug)
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'is a string' do
|
91
|
+
@occ.slug.should be_a(String)
|
92
|
+
end
|
93
|
+
|
94
|
+
it 'looks like the title' do
|
95
|
+
@occ.slug.should == 'turf-farmer'
|
96
|
+
end
|
97
|
+
end
|
85
98
|
end
|
data/spec/pathway_spec.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Verso::Pathway do
|
4
|
-
use_vcr_cassette :record => :new_episodes
|
3
|
+
describe Verso::Pathway, :vcr do
|
5
4
|
|
6
5
|
before do
|
7
6
|
@pathway = Verso::ClusterList.new.first.pathways.first
|
@@ -45,6 +44,20 @@ describe Verso::Pathway do
|
|
45
44
|
end
|
46
45
|
end
|
47
46
|
|
47
|
+
describe '#slug' do
|
48
|
+
it 'responds' do
|
49
|
+
@pathway.should respond_to(:slug)
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'is a string' do
|
53
|
+
@pathway.slug.should be_a(String)
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'looks like the title' do
|
57
|
+
@pathway.slug.should == 'agribusiness-systems'
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
48
61
|
describe '#occupations' do
|
49
62
|
it 'responds' do
|
50
63
|
@pathway.should respond_to(:occupations)
|
data/spec/program_area_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -3,21 +3,14 @@ require 'verso'
|
|
3
3
|
require 'vcr'
|
4
4
|
|
5
5
|
VCR.configure do |c|
|
6
|
-
c.hook_into :
|
6
|
+
c.hook_into :webmock
|
7
7
|
c.ignore_localhost = true
|
8
8
|
c.cassette_library_dir = 'tmp/cassettes'
|
9
|
+
c.default_cassette_options = { :record => :new_episodes }
|
10
|
+
c.configure_rspec_metadata!
|
9
11
|
end
|
10
12
|
|
11
13
|
RSpec.configure do |config|
|
12
|
-
|
13
|
-
#
|
14
|
-
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate
|
15
|
-
# line:
|
16
|
-
#
|
17
|
-
# config.mock_with :mocha
|
18
|
-
# config.mock_with :flexmock
|
19
|
-
# config.mock_with :rr
|
14
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
20
15
|
config.mock_with :rspec
|
21
|
-
|
22
|
-
config.extend VCR::RSpec::Macros
|
23
16
|
end
|
data/spec/standard_spec.rb
CHANGED
data/spec/standards_list_spec.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'shared_verso_list_examples'
|
3
3
|
|
4
|
-
describe Verso::StandardsList do
|
5
|
-
use_vcr_cassette :record => :new_episodes
|
4
|
+
describe Verso::StandardsList, :vcr do
|
6
5
|
|
7
6
|
before do
|
8
7
|
@list = Verso::StandardsList.new(
|
@@ -69,5 +68,11 @@ describe Verso::StandardsList do
|
|
69
68
|
list.code.should == @course.code
|
70
69
|
list.edition.should == @course.edition
|
71
70
|
end
|
71
|
+
|
72
|
+
it 'returns an empty list if the course has no standards' do
|
73
|
+
course = Verso::Course.new(:code => "1234", :edition => "1929",
|
74
|
+
:related_resources => [])
|
75
|
+
Verso::StandardsList.from_course(course).should be_empty
|
76
|
+
end
|
72
77
|
end
|
73
78
|
end
|
data/spec/task_list_spec.rb
CHANGED
data/spec/task_spec.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Verso::Task do
|
4
|
-
use_vcr_cassette :record => :new_episodes
|
3
|
+
describe Verso::Task, :vcr do
|
5
4
|
|
6
5
|
before(:each) do
|
7
6
|
@task = Verso::CourseList.new(:code => "6320").
|
@@ -81,7 +80,7 @@ describe Verso::Task do
|
|
81
80
|
@task.should respond_to(:id)
|
82
81
|
end
|
83
82
|
|
84
|
-
it 'is a
|
83
|
+
it 'is a String' do
|
85
84
|
@task.id.should be_a(String)
|
86
85
|
end
|
87
86
|
|
data/verso.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
s.add_runtime_dependency 'json'
|
21
21
|
s.add_runtime_dependency 'addressable'
|
22
|
-
s.add_development_dependency "
|
22
|
+
s.add_development_dependency "webmock"
|
23
23
|
s.add_development_dependency "redcarpet"
|
24
24
|
s.add_development_dependency "rspec"
|
25
25
|
s.add_development_dependency "vcr"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: verso
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70226498925940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70226498925940
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: addressable
|
27
|
-
requirement: &
|
27
|
+
requirement: &70226498925180 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70226498925180
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
|
-
name:
|
38
|
-
requirement: &
|
37
|
+
name: webmock
|
38
|
+
requirement: &70226498924240 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70226498924240
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: redcarpet
|
49
|
-
requirement: &
|
49
|
+
requirement: &70226498923280 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70226498923280
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &70226498922560 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70226498922560
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: vcr
|
71
|
-
requirement: &
|
71
|
+
requirement: &70226498921060 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70226498921060
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: yard
|
82
|
-
requirement: &
|
82
|
+
requirement: &70226498920560 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70226498920560
|
91
91
|
description: A Ruby wrapper for the Virginia CTE Resource Center's Web API
|
92
92
|
email:
|
93
93
|
- himself@leecapps.com
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- lib/verso/edition_list.rb
|
114
114
|
- lib/verso/emphasis.rb
|
115
115
|
- lib/verso/emphasis_list.rb
|
116
|
+
- lib/verso/error.rb
|
116
117
|
- lib/verso/examination_list.rb
|
117
118
|
- lib/verso/extra.rb
|
118
119
|
- lib/verso/extras_list.rb
|
@@ -125,6 +126,7 @@ files:
|
|
125
126
|
- lib/verso/pathway.rb
|
126
127
|
- lib/verso/program_area.rb
|
127
128
|
- lib/verso/program_area_list.rb
|
129
|
+
- lib/verso/sluggable.rb
|
128
130
|
- lib/verso/standard.rb
|
129
131
|
- lib/verso/standards_list.rb
|
130
132
|
- lib/verso/task.rb
|