verso 0.0.4 → 0.0.8
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/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
|