ravelry 0.0.1
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.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.rspec +2 -0
- data/.ruby-version +1 -0
- data/.yardopts +1 -0
- data/CODE_OF_CONDUCT.md +22 -0
- data/Gemfile +16 -0
- data/Gemfile.lock +42 -0
- data/LICENSE.txt +20 -0
- data/README.md +112 -0
- data/VERSION +1 -0
- data/lib/ravelry.rb +39 -0
- data/lib/ravelry/author.rb +27 -0
- data/lib/ravelry/category.rb +57 -0
- data/lib/ravelry/configuration.rb +11 -0
- data/lib/ravelry/craft.rb +19 -0
- data/lib/ravelry/data.rb +25 -0
- data/lib/ravelry/pack.rb +135 -0
- data/lib/ravelry/pattern.rb +390 -0
- data/lib/ravelry/pattern_needle.rb +54 -0
- data/lib/ravelry/pattern_type.rb +34 -0
- data/lib/ravelry/photo.rb +69 -0
- data/lib/ravelry/printing.rb +70 -0
- data/lib/ravelry/utils/build.rb +128 -0
- data/lib/ravelry/utils/utilities.rb +14 -0
- data/lib/ravelry/version.rb +3 -0
- data/lib/ravelry/yarn.rb +39 -0
- data/lib/ravelry/yarn_weight.rb +48 -0
- data/ravelry.gemspec +27 -0
- data/spec/helpers/helpers.rb +106 -0
- data/spec/helpers/pack_helpers.rb +107 -0
- data/spec/helpers/pattern_helpers.rb +190 -0
- data/spec/helpers/yarn_helpers.rb +27 -0
- data/spec/helpers/yarn_weight_helpers.rb +25 -0
- data/spec/ravelry/author_spec.rb +33 -0
- data/spec/ravelry/category_spec.rb +46 -0
- data/spec/ravelry/craft_spec.rb +22 -0
- data/spec/ravelry/data_spec.rb +27 -0
- data/spec/ravelry/pack_spec.rb +114 -0
- data/spec/ravelry/pattern_needle_spec.rb +52 -0
- data/spec/ravelry/pattern_spec.rb +301 -0
- data/spec/ravelry/pattern_type_spec.rb +28 -0
- data/spec/ravelry/photo_spec.rb +56 -0
- data/spec/ravelry/printing_spec.rb +65 -0
- data/spec/ravelry/utils/build_spec.rb +187 -0
- data/spec/ravelry/yarn_spec.rb +30 -0
- data/spec/ravelry/yarn_weight_spec.rb +42 -0
- data/spec/ravelry_spec.rb +3 -0
- data/spec/spec_helper.rb +30 -0
- metadata +154 -0
@@ -0,0 +1,107 @@
|
|
1
|
+
module PackHelpers
|
2
|
+
|
3
|
+
# Helpers for Ravelry::Pack only
|
4
|
+
# Multi-pack pattern ID: 228861
|
5
|
+
|
6
|
+
# Data seeded 2013-12-22
|
7
|
+
|
8
|
+
def single_pack
|
9
|
+
multi_pack[0]
|
10
|
+
end
|
11
|
+
|
12
|
+
def multi_pack
|
13
|
+
[
|
14
|
+
{
|
15
|
+
:quantity_description=>nil,
|
16
|
+
:yarn_id=>18714,
|
17
|
+
:yarn_weight=>
|
18
|
+
{
|
19
|
+
:name=>"Sport",
|
20
|
+
:min_gauge=>nil,
|
21
|
+
:wpi=>"12",
|
22
|
+
:id=>10,
|
23
|
+
:crochet_gauge=>nil,
|
24
|
+
:ply=>"5",
|
25
|
+
:knit_gauge=>"24-26",
|
26
|
+
:max_gauge=>nil
|
27
|
+
},
|
28
|
+
:yarn=>
|
29
|
+
{
|
30
|
+
:permalink=>"miss-babs-yummy-superwash-sport---3-ply",
|
31
|
+
:yarn_company_name=>"Miss Babs",
|
32
|
+
:yarn_company_id=>1119,
|
33
|
+
:name=>"Yummy Superwash Sport - 3 Ply",
|
34
|
+
:id=>18714
|
35
|
+
},
|
36
|
+
:total_grams=>nil,
|
37
|
+
:project_id=>nil,
|
38
|
+
:shop_id=>nil,
|
39
|
+
:prefer_metric_weight=>true,
|
40
|
+
:prefer_metric_length=>false,
|
41
|
+
:ounces_per_skein=>nil,
|
42
|
+
:dye_lot=>nil,
|
43
|
+
:skeins=>nil,
|
44
|
+
:id=>15665503,
|
45
|
+
:grams_per_skein=>nil,
|
46
|
+
:color_family_id=>nil,
|
47
|
+
:shop_name=>nil,
|
48
|
+
:total_meters=>nil,
|
49
|
+
:stash_id=>nil,
|
50
|
+
:total_ounces=>nil,
|
51
|
+
:primary_pack_id=>nil,
|
52
|
+
:personal_name=>nil,
|
53
|
+
:colorway=>nil,
|
54
|
+
:meters_per_skein=>nil,
|
55
|
+
:yarn_name=>"Miss Babs Yummy Superwash Sport - 3 Ply",
|
56
|
+
:yards_per_skein=>nil,
|
57
|
+
:total_yards=>nil
|
58
|
+
},
|
59
|
+
{
|
60
|
+
:quantity_description=>nil,
|
61
|
+
:yarn_id=>51688,
|
62
|
+
:yarn_weight=>
|
63
|
+
{
|
64
|
+
:name=>"Fingering",
|
65
|
+
:min_gauge=>nil,
|
66
|
+
:wpi=>"14",
|
67
|
+
:id=>5,
|
68
|
+
:crochet_gauge=>"",
|
69
|
+
:ply=>"4",
|
70
|
+
:knit_gauge=>"28",
|
71
|
+
:max_gauge=>nil
|
72
|
+
},
|
73
|
+
:yarn=>
|
74
|
+
{
|
75
|
+
:permalink=>"little-red-bicycle-hipster-sock",
|
76
|
+
:yarn_company_name=>"Little Red Bicycle",
|
77
|
+
:yarn_company_id=>6977,
|
78
|
+
:name=>"Hipster sock",
|
79
|
+
:id=>51688
|
80
|
+
},
|
81
|
+
:total_grams=>nil,
|
82
|
+
:project_id=>nil,
|
83
|
+
:shop_id=>nil,
|
84
|
+
:prefer_metric_weight=>true,
|
85
|
+
:prefer_metric_length=>false,
|
86
|
+
:ounces_per_skein=>nil,
|
87
|
+
:dye_lot=>nil,
|
88
|
+
:skeins=>nil,
|
89
|
+
:id=>33655884,
|
90
|
+
:grams_per_skein=>nil,
|
91
|
+
:color_family_id=>nil,
|
92
|
+
:shop_name=>nil,
|
93
|
+
:total_meters=>nil,
|
94
|
+
:stash_id=>nil,
|
95
|
+
:total_ounces=>nil,
|
96
|
+
:primary_pack_id=>nil,
|
97
|
+
:personal_name=>nil,
|
98
|
+
:colorway=>nil,
|
99
|
+
:meters_per_skein=>nil,
|
100
|
+
:yarn_name=>"Little Red Bicycle Hipster sock",
|
101
|
+
:yards_per_skein=>nil,
|
102
|
+
:total_yards=>nil
|
103
|
+
}
|
104
|
+
]
|
105
|
+
end
|
106
|
+
|
107
|
+
end
|
@@ -0,0 +1,190 @@
|
|
1
|
+
module PatternHelpers
|
2
|
+
|
3
|
+
# Helpers for Ravelry::Pattern
|
4
|
+
|
5
|
+
def p_initialize_empty_pattern
|
6
|
+
Ravelry::Pattern.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def p_initialize_with_data
|
10
|
+
pattern = Ravelry::Pattern.new
|
11
|
+
pattern.data = paid_pattern_stub
|
12
|
+
pattern
|
13
|
+
end
|
14
|
+
|
15
|
+
def p_initialize_paid_with_fetch
|
16
|
+
# Volatile Magic Shawl
|
17
|
+
pattern = Ravelry::Pattern.new("379890")
|
18
|
+
pattern.get
|
19
|
+
pattern
|
20
|
+
end
|
21
|
+
|
22
|
+
def p_initialize_free_with_fetch
|
23
|
+
# Wish I Was Weaving This Cowl
|
24
|
+
pattern = Ravelry::Pattern.new("379890")
|
25
|
+
pattern.get
|
26
|
+
pattern
|
27
|
+
end
|
28
|
+
|
29
|
+
def paid_pattern_stub
|
30
|
+
# Volatile Magic Shawl, updated 2013-12-21
|
31
|
+
{:pattern_categories=>
|
32
|
+
[{
|
33
|
+
:permalink=>"shawl-wrap", :name=>"Shawl / Wrap", :id=>350,
|
34
|
+
:parent=>
|
35
|
+
{
|
36
|
+
:permalink=>"neck-torso", :name=>"Neck / Torso", :id=>338,
|
37
|
+
:parent=>
|
38
|
+
{
|
39
|
+
:permalink=>"accessories", :name=>"Accessories", :id=>337,
|
40
|
+
:parent=>
|
41
|
+
{
|
42
|
+
:permalink=>"categories", :name=>"Categories", :id=>301
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}],
|
47
|
+
:notes_html=>"<p>I am a voracious reader. When I think of heroines, I think of my favorite books.",
|
48
|
+
:download_location=>
|
49
|
+
{
|
50
|
+
:type=>"ravelry", :url=>"http://www.ravelry.com/purchase/feministy/185601", :free=>false
|
51
|
+
},
|
52
|
+
:row_gauge=>40.0,
|
53
|
+
:queued_projects_count=>56,
|
54
|
+
:price=>6.0,
|
55
|
+
:permalink=>"volatile-magic-shawl",
|
56
|
+
:name=>"Volatile Magic Shawl",
|
57
|
+
:pattern_needle_sizes=>
|
58
|
+
[
|
59
|
+
{
|
60
|
+
:hook=>"E", :us_steel=>"00", :name=>"US 4 - 3.5 mm",
|
61
|
+
:crochet=>false, :metric=>3.5, :knitting=>true, :us=>"4 ", :id=>4
|
62
|
+
}
|
63
|
+
],
|
64
|
+
:yardage_max=>435,
|
65
|
+
:gauge_pattern=>"stockinette stitch",
|
66
|
+
:printings=>
|
67
|
+
[
|
68
|
+
{:pattern_source=>
|
69
|
+
{
|
70
|
+
:price=>nil, :permalink=>"liz-abinantes-ravelry-store",
|
71
|
+
:out_of_print=>false, :name=>"Liz Abinante's Ravelry Store",
|
72
|
+
:author=>nil, :url=>"http://www.ravelry.com/stores/feministy",
|
73
|
+
:amazon_rating=>nil, :pattern_count=>3, :amazon_url=>nil,
|
74
|
+
:shelf_image_path=>nil, :list_price=>nil
|
75
|
+
},
|
76
|
+
:primary_source=>true
|
77
|
+
},
|
78
|
+
{:pattern_source=>
|
79
|
+
{
|
80
|
+
:price=>nil, :permalink=>"feministy", :out_of_print=>false,
|
81
|
+
:name=>"Feministy.com", :author=>"", :url=>"http://feministy.com/",
|
82
|
+
:amazon_rating=>nil, :pattern_count=>47, :amazon_url=>nil,
|
83
|
+
:shelf_image_path=>nil, :list_price=>nil
|
84
|
+
},
|
85
|
+
:primary_source=>false
|
86
|
+
}
|
87
|
+
],
|
88
|
+
:pdf_in_library=>false,
|
89
|
+
:downloadable=>true,
|
90
|
+
:difficulty_count=>3,
|
91
|
+
:notes=>"I am a voracious reader. When I think of heroines, I think of my favorite books.",
|
92
|
+
:published=>"2013/07/01",
|
93
|
+
:projects_count=>6,
|
94
|
+
:gauge=>26.0,
|
95
|
+
:difficulty_average=>2.66666666666667,
|
96
|
+
:yarn_weight=>
|
97
|
+
{
|
98
|
+
:name=>"Fingering", :min_gauge=>nil, :wpi=>"14", :id=>5,
|
99
|
+
:crochet_gauge=>"", :ply=>"4", :knit_gauge=>"28", :max_gauge=>nil
|
100
|
+
},
|
101
|
+
:photos=>
|
102
|
+
[
|
103
|
+
{:flickr_url=>nil, :small_url=>"http://images4.ravelrycache.com/uploads/feministy/197032385/_D7C0070-Edit-Edit_small_best_fit.JPG", :x_offset=>-82, :shelved_url=>"http://images4.ravelrycache.com/uploads/feministy/197032385/_D7C0070-Edit-Edit_shelved.JPG", :y_offset=>0, :sort_order=>1, :id=>35912328, :square_url=>"http://images4-b.ravelrycache.com/uploads/feministy/197032385/_D7C0070-Edit-Edit_square.JPG", :medium_url=>"http://images4.ravelrycache.com/uploads/feministy/197032385/_D7C0070-Edit-Edit_medium.JPG", :thumbnail_url=>"h"},
|
104
|
+
{:flickr_url=>nil, :small_url=>"http://images4-d.ravelrycache.com/uploads/feministy/197032384/_D7C0066-Edit_small_best_fit.JPG", :x_offset=>-43, :shelved_url=>"http://images4-b.ravelrycache.com/uploads/feministy/197032384/_D7C0066-Edit_shelved.JPG", :y_offset=>0, :sort_order=>2, :id=>35912326, :square_url=>"http://images4-b.ravelrycache.com/uploads/feministy/197032384/_D7C0066-Edit_square.JPG", :medium_url=>"http://images4-d.ravelrycache.com/uploads/feministy/197032384/_D7C0066-Edit_medium.JPG", :thumbnail_url=>"h"},
|
105
|
+
{:flickr_url=>nil, :small_url=>"http://images4-b.ravelrycache.com/uploads/feministy/197032381/_D7C0059-Edit_small_best_fit.JPG", :x_offset=>-43, :shelved_url=>"http://images4-d.ravelrycache.com/uploads/feministy/197032381/_D7C0059-Edit_shelved.JPG", :y_offset=>0, :sort_order=>3, :id=>35912327, :square_url=>"http://images4-b.ravelrycache.com/uploads/feministy/197032381/_D7C0059-Edit_square.JPG", :medium_url=>"http://images4-b.ravelrycache.com/uploads/feministy/197032381/_D7C0059-Edit_medium.JPG", :thumbnail_url=>"h"},
|
106
|
+
{:flickr_url=>nil, :small_url=>"http://images4.ravelrycache.com/uploads/feministy/197032382/_D7C0053-Edit_small_best_fit.JPG", :x_offset=>-43, :shelved_url=>"http://images4-b.ravelrycache.com/uploads/feministy/197032382/_D7C0053-Edit_shelved.JPG", :y_offset=>0, :sort_order=>4, :id=>35912325, :square_url=>"http://images4-b.ravelrycache.com/uploads/feministy/197032382/_D7C0053-Edit_square.JPG", :medium_url=>"http://images4.ravelrycache.com/uploads/feministy/197032382/_D7C0053-Edit_medium.JPG", :thumbnail_url=>"h"}
|
107
|
+
],
|
108
|
+
:pattern_type=>
|
109
|
+
{
|
110
|
+
:permalink=>"shawl", :name=>"Shawl/Wrap", :clothing=>true, :id=>10
|
111
|
+
},
|
112
|
+
:volumes_in_library=>[],
|
113
|
+
:url=>"",
|
114
|
+
:gauge_divisor=>4,
|
115
|
+
:sizes_available=>"8.5\"/21.5cm at deepest point, 50\"/127cm wingspan",
|
116
|
+
:yardage=>425,
|
117
|
+
:rating_average=>4.66666666666667,
|
118
|
+
:id=>419443,
|
119
|
+
:free=>false,
|
120
|
+
:gauge_description=>"26 stitches and 40 rows = 4 inches in stockinette stitch",
|
121
|
+
:rating_count=>3,
|
122
|
+
:pdf_url=>"",
|
123
|
+
:pattern_author=>
|
124
|
+
{
|
125
|
+
:permalink=>"liz-abinante", :name=>"Liz Abinante", :id=>19297,
|
126
|
+
:favorites_count=>1314, :pattern_count=>48
|
127
|
+
},
|
128
|
+
:product_id=>185601,
|
129
|
+
:favorites_count=>281,
|
130
|
+
:craft=>
|
131
|
+
{
|
132
|
+
:permalink=>"knitting", :name=>"Knitting", :id=>2
|
133
|
+
},
|
134
|
+
:yarn_weight_description=>"Fingering / 4 ply (14 wpi)",
|
135
|
+
:currency=>"USD",
|
136
|
+
:comments_count=>4,
|
137
|
+
:ravelry_download=>true,
|
138
|
+
:currency_symbol=>"$",
|
139
|
+
:packs=>
|
140
|
+
[
|
141
|
+
{
|
142
|
+
:yarn_id=>93171,
|
143
|
+
:yarn=>
|
144
|
+
{
|
145
|
+
:permalink=>"wooly-wonka-fibers-artio-sock",
|
146
|
+
:yarn_company_id=>969,
|
147
|
+
:yarn_company_name=>"Wooly Wonka Fibers",
|
148
|
+
:name=>"Artio Sock", :id=>93171
|
149
|
+
},
|
150
|
+
:yarn_name=>"Wooly Wonka Fibers Artio Sock",
|
151
|
+
:total_grams=>nil,
|
152
|
+
:project_id=>nil,
|
153
|
+
:yarn_weight=>
|
154
|
+
{
|
155
|
+
:name=>"Fingering",
|
156
|
+
:min_gauge=>nil,
|
157
|
+
:wpi=>"14",
|
158
|
+
:id=>5,
|
159
|
+
:crochet_gauge=>"",
|
160
|
+
:ply=>"4",
|
161
|
+
:knit_gauge=>"28",
|
162
|
+
:max_gauge=>nil
|
163
|
+
},
|
164
|
+
:shop_id=>nil,
|
165
|
+
:prefer_metric_weight=>true,
|
166
|
+
:prefer_metric_length=>false,
|
167
|
+
:ounces_per_skein=>nil,
|
168
|
+
:dye_lot=>nil,
|
169
|
+
:skeins=>nil,
|
170
|
+
:id=>31065185,
|
171
|
+
:shop_name=>nil,
|
172
|
+
:grams_per_skein=>nil,
|
173
|
+
:color_family_id=>nil,
|
174
|
+
:total_meters=>nil,
|
175
|
+
:stash_id=>nil,
|
176
|
+
:colorway=>nil,
|
177
|
+
:total_ounces=>nil,
|
178
|
+
:primary_pack_id=>nil,
|
179
|
+
:personal_name=>nil,
|
180
|
+
:meters_per_skein=>nil,
|
181
|
+
:quantity_description=>nil,
|
182
|
+
:yards_per_skein=>nil,
|
183
|
+
:total_yards=>nil
|
184
|
+
}
|
185
|
+
],
|
186
|
+
:yardage_description=>"425 - 435 yards"
|
187
|
+
}
|
188
|
+
end
|
189
|
+
|
190
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module YarnHelpers
|
2
|
+
|
3
|
+
# Helpers for Ravelry::Yarn
|
4
|
+
|
5
|
+
def y_initialize_empty_yarn
|
6
|
+
yarn = Ravelry::Yarn.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def y_initialize_with_id
|
10
|
+
yarn = Ravelry::Yarn.new
|
11
|
+
yarn.data = yarn_hash[:id]
|
12
|
+
yarn
|
13
|
+
end
|
14
|
+
|
15
|
+
def y_initialize_with_data_and_id
|
16
|
+
yarn = Ravelry::Yarn.new(yarn_hash[:id])
|
17
|
+
yarn.data = yarn_hash
|
18
|
+
yarn
|
19
|
+
end
|
20
|
+
|
21
|
+
def y_initialize_with_data
|
22
|
+
yarn = Ravelry::Yarn.new
|
23
|
+
yarn.data = yarn_hash
|
24
|
+
yarn
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module YarnWeightHelpers
|
2
|
+
|
3
|
+
# Helpers for Ravelry::YarnWeight
|
4
|
+
|
5
|
+
def yw_initialize_empty_yarn
|
6
|
+
Ravelry::YarnWeight.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def yw_initialize_with_id
|
10
|
+
Ravelry::YarnWeight.new(yarn_weight_hash[:id])
|
11
|
+
end
|
12
|
+
|
13
|
+
def yw_initialize_with_data_and_id
|
14
|
+
yarn = Ravelry::YarnWeight.new(yarn_weight_hash[:id])
|
15
|
+
yarn.data = yarn_weight_hash
|
16
|
+
yarn
|
17
|
+
end
|
18
|
+
|
19
|
+
def yw_initialize_with_data
|
20
|
+
yarn = Ravelry::YarnWeight.new
|
21
|
+
yarn.data = yarn_weight_hash
|
22
|
+
yarn
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
describe Ravelry::Author do
|
4
|
+
before do
|
5
|
+
@author = Ravelry::Author.new(pattern_author)
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'creates an instance of Author' do
|
9
|
+
expect(@author).to be_instance_of(Ravelry::Author)
|
10
|
+
end
|
11
|
+
|
12
|
+
context 'has and sets reader attributes for' do
|
13
|
+
it 'id' do
|
14
|
+
expect(@author.id).to eq(@author.id)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'name' do
|
18
|
+
expect(@author.name).to eq(@author.name)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'permalink' do
|
22
|
+
expect(@author.permalink).to eq(@author.permalink)
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'patterns_count' do
|
26
|
+
expect(@author.patterns_count).to eq(@author.patterns_count)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'favorites_count' do
|
30
|
+
expect(@author.favorites_count).to eq(@author.favorites_count)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
describe Ravelry::Category do
|
4
|
+
before do
|
5
|
+
@category = Ravelry::Category.new(categories)
|
6
|
+
@data = categories
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'creates an instance of Category' do
|
10
|
+
expect(@category).to be_instance_of(Ravelry::Category)
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'has and sets reader attributes for' do
|
14
|
+
it 'name' do
|
15
|
+
expect(@category.name).to eq(@data[:name])
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'permalink' do
|
19
|
+
expect(@category.permalink).to eq(@data[:permalink])
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'parent_name' do
|
23
|
+
expect(@category.parent_name).to eq(@data[:parent][:name])
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'parent_permalink' do
|
27
|
+
expect(@category.parent_permalink).to eq(@data[:parent][:permalink])
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'grandparent_name' do
|
31
|
+
expect(@category.grandparent_name).to eq(@data[:parent][:parent][:name])
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'grandparent_permalink' do
|
35
|
+
expect(@category.grandparent_permalink).to eq(@data[:parent][:parent][:permalink])
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'greatgrandparent_name' do
|
39
|
+
expect(@category.greatgrandparent_name).to eq(@data[:parent][:parent][:parent][:name])
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'greatgrandparent_permalink' do
|
43
|
+
expect(@category.greatgrandparent_permalink).to eq(@data[:parent][:parent][:parent][:permalink])
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
describe Ravelry::Craft do
|
4
|
+
before do
|
5
|
+
@craft = Ravelry::Craft.new(craft)
|
6
|
+
@data = craft
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'creates an instance of Craft' do
|
10
|
+
expect(@craft).to be_instance_of(Ravelry::Craft)
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'has and sets reader attributes for' do
|
14
|
+
it 'name' do
|
15
|
+
expect(@craft.name).to eq(@data[:name])
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'permalink' do
|
19
|
+
expect(@craft.permalink).to eq(@data[:permalink])
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|