beerxml 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.
@@ -0,0 +1,189 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <!-- BeerXML Format - Generated by BeerSmith - see www.beersmith.com -->
3
+ <STYLES>
4
+ <STYLE>
5
+ <NAME>American Wheat</NAME>
6
+ <VERSION>1</VERSION>
7
+ <CATEGORY>Light Ale</CATEGORY>
8
+ <CATEGORY_NUMBER>3</CATEGORY_NUMBER>
9
+ <STYLE_LETTER>B</STYLE_LETTER>
10
+ <STYLE_GUIDE>BJCP 1999</STYLE_GUIDE>
11
+ <TYPE>Mixed</TYPE>
12
+ <OG_MIN>1.03500000</OG_MIN>
13
+ <OG_MAX>1.05500000</OG_MAX>
14
+ <FG_MIN>1.00800000</FG_MIN>
15
+ <FG_MAX>1.01500000</FG_MAX>
16
+ <IBU_MIN>10.0</IBU_MIN>
17
+ <IBU_MAX>30.0</IBU_MAX>
18
+ <COLOR_MIN>2.00000000</COLOR_MIN>
19
+ <COLOR_MAX>8.00000000</COLOR_MAX>
20
+ <CARB_MIN>2.3</CARB_MIN>
21
+ <CARB_MAX>2.6></CARB_MAX>
22
+ <ABV_MAX>5.5</ABV_MAX>
23
+ <ABV_MIN>3.7</ABV_MIN>
24
+ <NOTES>Wheat beer brewed with standard ale yeast. Light mixed style without the banana or clove flavor and aroma of German Weizen. Closer in style to light American ales.</NOTES>
25
+ <PROFILE>Light, crisp flavor and body. Low to medium bitterness and hop aroma. Straw to gold color. No phenolic and low diacetyl character.</PROFILE>
26
+ <INGREDIENTS>Pale malt. Up to 60% wheat malt. American ale or occasionally lager yeast.</INGREDIENTS>
27
+ <EXAMPLES>Sam Adam&apos;s Summer Wheat, Wheat Hook Ale, Anchor Wheat.</EXAMPLES>
28
+ <DISPLAY_OG_MIN>1.035 SG</DISPLAY_OG_MIN>
29
+ <DISPLAY_OG_MAX>1.055 SG</DISPLAY_OG_MAX>
30
+ <DISPLAY_FG_MIN>1.008 SG</DISPLAY_FG_MIN>
31
+ <DISPLAY_FG_MAX>1.015 SG</DISPLAY_FG_MAX>
32
+ <DISPLAY_COLOR_MIN>2.0 SRM</DISPLAY_COLOR_MIN>
33
+ <DISPLAY_COLOR_MAX>8.0 SRM</DISPLAY_COLOR_MAX>
34
+ <OG_RANGE>1.035-1.055 SG</OG_RANGE>
35
+ <FG_RANGE>1.008-1.015 SG</FG_RANGE>
36
+ <IBU_RANGE>10.0-30.0 IBU</IBU_RANGE>
37
+ <CARB_RANGE>2.3-2.6 vols</CARB_RANGE>
38
+ <COLOR_RANGE>2.0-8.0 SRM</COLOR_RANGE>
39
+ <ABV_RANGE>3.7-5.5 %</ABV_RANGE>
40
+ </STYLE>
41
+ <STYLE>
42
+ <NAME>Bohemian Pilsner</NAME>
43
+ <VERSION>1</VERSION>
44
+ <CATEGORY>European Pale Lager</CATEGORY>
45
+ <CATEGORY_NUMBER>2</CATEGORY_NUMBER>
46
+ <STYLE_LETTER>A</STYLE_LETTER>
47
+ <STYLE_GUIDE>BJCP 1999</STYLE_GUIDE>
48
+ <TYPE>Lager</TYPE>
49
+ <OG_MIN>1.04400000</OG_MIN>
50
+ <OG_MAX>1.05600000</OG_MAX>
51
+ <FG_MIN>1.01300000</FG_MIN>
52
+ <FG_MAX>1.01700000</FG_MAX>
53
+ <IBU_MIN>35.0</IBU_MIN>
54
+ <IBU_MAX>45.0</IBU_MAX>
55
+ <COLOR_MIN>3.00000000</COLOR_MIN>
56
+ <COLOR_MAX>5.00000000</COLOR_MAX>
57
+ <CARB_MIN>2.3</CARB_MIN>
58
+ <CARB_MAX>2.6></CARB_MAX>
59
+ <ABV_MAX>5.3</ABV_MAX>
60
+ <ABV_MIN>4.0</ABV_MIN>
61
+ <NOTES>Famous beer from Pilsen, Czech Republic. Brewed with very soft water and high hop rates.</NOTES>
62
+ <PROFILE>Light to medium body with some sweetness. Saaz hop flavor and aroma, but no lingering bitterness. Clean flavor, low diacetyls. Hoppy and malty with no aftertaste.</PROFILE>
63
+ <INGREDIENTS>Saaz hops, light pilsner malt, pilsner yeast, soft water profile.</INGREDIENTS>
64
+ <EXAMPLES>Budvar, Pilsner Urquell, Gambrinus</EXAMPLES>
65
+ <DISPLAY_OG_MIN>1.044 SG</DISPLAY_OG_MIN>
66
+ <DISPLAY_OG_MAX>1.056 SG</DISPLAY_OG_MAX>
67
+ <DISPLAY_FG_MIN>1.013 SG</DISPLAY_FG_MIN>
68
+ <DISPLAY_FG_MAX>1.017 SG</DISPLAY_FG_MAX>
69
+ <DISPLAY_COLOR_MIN>3.0 SRM</DISPLAY_COLOR_MIN>
70
+ <DISPLAY_COLOR_MAX>5.0 SRM</DISPLAY_COLOR_MAX>
71
+ <OG_RANGE>1.044-1.056 SG</OG_RANGE>
72
+ <FG_RANGE>1.013-1.017 SG</FG_RANGE>
73
+ <IBU_RANGE>35.0-45.0 IBU</IBU_RANGE>
74
+ <CARB_RANGE>2.3-2.6 vols</CARB_RANGE>
75
+ <COLOR_RANGE>3.0-5.0 SRM</COLOR_RANGE>
76
+ <ABV_RANGE>4.0-5.3 %</ABV_RANGE>
77
+ </STYLE>
78
+ <STYLE>
79
+ <NAME>California Common Beer</NAME>
80
+ <VERSION>1</VERSION>
81
+ <CATEGORY>American Pale Ale</CATEGORY>
82
+ <CATEGORY_NUMBER>6</CATEGORY_NUMBER>
83
+ <STYLE_LETTER>C</STYLE_LETTER>
84
+ <STYLE_GUIDE>BJCP 1999</STYLE_GUIDE>
85
+ <TYPE>Mixed</TYPE>
86
+ <OG_MIN>1.04400000</OG_MIN>
87
+ <OG_MAX>1.05500000</OG_MAX>
88
+ <FG_MIN>1.01100000</FG_MIN>
89
+ <FG_MAX>1.01400000</FG_MAX>
90
+ <IBU_MIN>35.0</IBU_MIN>
91
+ <IBU_MAX>45.0</IBU_MAX>
92
+ <COLOR_MIN>8.00000000</COLOR_MIN>
93
+ <COLOR_MAX>14.00000000</COLOR_MAX>
94
+ <CARB_MIN>2.4</CARB_MIN>
95
+ <CARB_MAX>2.8></CARB_MAX>
96
+ <ABV_MAX>5.5</ABV_MAX>
97
+ <ABV_MIN>4.0</ABV_MIN>
98
+ <NOTES>Also known by the Anchor Brewing Co. Trademark name &quot;Steam Beer.&quot; A mixed style, highly hopped, fermented with lager yeast at ale temperatures and then lagered cold.</NOTES>
99
+ <PROFILE>Distinctive hoppy flavor comes from Northern Brewers hops. Clean lager flavor, but character of an ale. Dry, with a hint of toasted/caramel flavor. Light to amber color. Low fruitiness, ester and diacytl.</PROFILE>
100
+ <INGREDIENTS>Pale and medium crystal malts. Northern brewer hops. Lager yeast fermented at ale temperatures.</INGREDIENTS>
101
+ <EXAMPLES>Anchor Steam Beer</EXAMPLES>
102
+ <DISPLAY_OG_MIN>1.044 SG</DISPLAY_OG_MIN>
103
+ <DISPLAY_OG_MAX>1.055 SG</DISPLAY_OG_MAX>
104
+ <DISPLAY_FG_MIN>1.011 SG</DISPLAY_FG_MIN>
105
+ <DISPLAY_FG_MAX>1.014 SG</DISPLAY_FG_MAX>
106
+ <DISPLAY_COLOR_MIN>8.0 SRM</DISPLAY_COLOR_MIN>
107
+ <DISPLAY_COLOR_MAX>14.0 SRM</DISPLAY_COLOR_MAX>
108
+ <OG_RANGE>1.044-1.055 SG</OG_RANGE>
109
+ <FG_RANGE>1.011-1.014 SG</FG_RANGE>
110
+ <IBU_RANGE>35.0-45.0 IBU</IBU_RANGE>
111
+ <CARB_RANGE>2.4-2.8 vols</CARB_RANGE>
112
+ <COLOR_RANGE>8.0-14.0 SRM</COLOR_RANGE>
113
+ <ABV_RANGE>4.0-5.5 %</ABV_RANGE>
114
+ </STYLE>
115
+ <STYLE>
116
+ <NAME>Dry Stout (Irish)</NAME>
117
+ <VERSION>1</VERSION>
118
+ <CATEGORY>Stout</CATEGORY>
119
+ <CATEGORY_NUMBER>16</CATEGORY_NUMBER>
120
+ <STYLE_LETTER>A</STYLE_LETTER>
121
+ <STYLE_GUIDE>BJCP 1999</STYLE_GUIDE>
122
+ <TYPE>Ale</TYPE>
123
+ <OG_MIN>1.03500000</OG_MIN>
124
+ <OG_MAX>1.05000000</OG_MAX>
125
+ <FG_MIN>1.00700000</FG_MIN>
126
+ <FG_MAX>1.01100000</FG_MAX>
127
+ <IBU_MIN>30.0</IBU_MIN>
128
+ <IBU_MAX>50.0</IBU_MAX>
129
+ <COLOR_MIN>35.00000000</COLOR_MIN>
130
+ <COLOR_MAX>200.00000000</COLOR_MAX>
131
+ <CARB_MIN>1.6</CARB_MIN>
132
+ <CARB_MAX>2.1></CARB_MAX>
133
+ <ABV_MAX>5.5</ABV_MAX>
134
+ <ABV_MIN>3.2</ABV_MIN>
135
+ <NOTES>Famous Irish Stout (AKA Guiness). Dry roasted almost coffee like flavor. Irish versions have low starting gravity. Often mixed with soured, pasturized beer to give a slight acidity as well.</NOTES>
136
+ <PROFILE>Full body perception from Flaked Barley, thought starting gravity may be low. Dry roasted flavor. Generous hops, though malt flavor will dominate. Complex fruity flavor. Black opaque color.</PROFILE>
137
+ <INGREDIENTS>English malt. Roasted Barley and Flaked Barley for all grain. Some chocolate or black patent used in extract recipes. Goldings or Fuggles hops. Low sulfate, high calcium water.</INGREDIENTS>
138
+ <EXAMPLES>Guiness Stout</EXAMPLES>
139
+ <DISPLAY_OG_MIN>1.035 SG</DISPLAY_OG_MIN>
140
+ <DISPLAY_OG_MAX>1.050 SG</DISPLAY_OG_MAX>
141
+ <DISPLAY_FG_MIN>1.007 SG</DISPLAY_FG_MIN>
142
+ <DISPLAY_FG_MAX>1.011 SG</DISPLAY_FG_MAX>
143
+ <DISPLAY_COLOR_MIN>35.0 SRM</DISPLAY_COLOR_MIN>
144
+ <DISPLAY_COLOR_MAX>200.0 SRM</DISPLAY_COLOR_MAX>
145
+ <OG_RANGE>1.035-1.050 SG</OG_RANGE>
146
+ <FG_RANGE>1.007-1.011 SG</FG_RANGE>
147
+ <IBU_RANGE>30.0-50.0 IBU</IBU_RANGE>
148
+ <CARB_RANGE>1.6-2.1 vols</CARB_RANGE>
149
+ <COLOR_RANGE>35.0-200.0 SRM</COLOR_RANGE>
150
+ <ABV_RANGE>3.2-5.5 %</ABV_RANGE>
151
+ </STYLE>
152
+ <STYLE>
153
+ <NAME>Traditional Bock</NAME>
154
+ <VERSION>1</VERSION>
155
+ <CATEGORY>Bock</CATEGORY>
156
+ <CATEGORY_NUMBER>14</CATEGORY_NUMBER>
157
+ <STYLE_LETTER>A</STYLE_LETTER>
158
+ <STYLE_GUIDE>BJCP 1999</STYLE_GUIDE>
159
+ <TYPE>Lager</TYPE>
160
+ <OG_MIN>1.06400000</OG_MIN>
161
+ <OG_MAX>1.07200000</OG_MAX>
162
+ <FG_MIN>1.01300000</FG_MIN>
163
+ <FG_MAX>1.02000000</FG_MAX>
164
+ <IBU_MIN>20.0</IBU_MIN>
165
+ <IBU_MAX>35.0</IBU_MAX>
166
+ <COLOR_MIN>14.00000000</COLOR_MIN>
167
+ <COLOR_MAX>30.00000000</COLOR_MAX>
168
+ <CARB_MIN>2.2</CARB_MIN>
169
+ <CARB_MAX>2.7></CARB_MAX>
170
+ <ABV_MAX>7.5</ABV_MAX>
171
+ <ABV_MIN>6.0</ABV_MIN>
172
+ <NOTES>High gravity lager from Einbeck, Germany. Smooth malty character with some chocolate or toasted edge. Under German law bocks must have a starting gravity of at least 16 plato (1.064)</NOTES>
173
+ <PROFILE>Medium to full body, malty flavor with some chocolate aroma. Little to no roast character. Low hop aroma and flavor to balance malt. Amber to brown color. Moderate carbonation.</PROFILE>
174
+ <INGREDIENTS>Bulk of flavor and color is from dark Munich malt. Very small amounts of dark or chocolate malt. German hops for bittering only. German lager yeast. Moderate water hardness.</INGREDIENTS>
175
+ <EXAMPLES>Aass Bock, Einbecker Ur-bock</EXAMPLES>
176
+ <DISPLAY_OG_MIN>1.064 SG</DISPLAY_OG_MIN>
177
+ <DISPLAY_OG_MAX>1.072 SG</DISPLAY_OG_MAX>
178
+ <DISPLAY_FG_MIN>1.013 SG</DISPLAY_FG_MIN>
179
+ <DISPLAY_FG_MAX>1.020 SG</DISPLAY_FG_MAX>
180
+ <DISPLAY_COLOR_MIN>14.0 SRM</DISPLAY_COLOR_MIN>
181
+ <DISPLAY_COLOR_MAX>30.0 SRM</DISPLAY_COLOR_MAX>
182
+ <OG_RANGE>1.064-1.072 SG</OG_RANGE>
183
+ <FG_RANGE>1.013-1.020 SG</FG_RANGE>
184
+ <IBU_RANGE>20.0-35.0 IBU</IBU_RANGE>
185
+ <CARB_RANGE>2.2-2.7 vols</CARB_RANGE>
186
+ <COLOR_RANGE>14.0-30.0 SRM</COLOR_RANGE>
187
+ <ABV_RANGE>6.0-7.5 %</ABV_RANGE>
188
+ </STYLE>
189
+ </STYLES>
@@ -0,0 +1,75 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <!-- BeerXML Format - Generated by BeerSmith - see www.beersmith.com -->
3
+ <WATERS>
4
+ <WATER>
5
+ <NAME>Burton On Trent, UK</NAME>
6
+ <VERSION>1</VERSION>
7
+ <AMOUNT>18.927168</AMOUNT>
8
+ <CALCIUM>295.0</CALCIUM>
9
+ <BICARBONATE>300.0</BICARBONATE>
10
+ <SULFATE>725.0</SULFATE>
11
+ <CHLORIDE>25.0</CHLORIDE>
12
+ <SODIUM>55.0</SODIUM>
13
+ <MAGNESIUM>45.0</MAGNESIUM>
14
+ <PH>8.0</PH>
15
+ <NOTES>Distinctive pale ales strongly hopped. Very hard water accentuates the hops flavor.
16
+ Example: Bass Ale</NOTES>
17
+ <DISPLAY_AMOUNT>5.00 gal</DISPLAY_AMOUNT>
18
+ </WATER>
19
+ <WATER>
20
+ <NAME>Distilled Water</NAME>
21
+ <VERSION>1</VERSION>
22
+ <AMOUNT>18.927168</AMOUNT>
23
+ <CALCIUM>0.0</CALCIUM>
24
+ <BICARBONATE>0.0</BICARBONATE>
25
+ <SULFATE>0.0</SULFATE>
26
+ <CHLORIDE>0.0</CHLORIDE>
27
+ <SODIUM>0.0</SODIUM>
28
+ <MAGNESIUM>0.0</MAGNESIUM>
29
+ <PH>7.0</PH>
30
+ <NOTES>Neutral water, may be used as a base for creating desired water profile.</NOTES>
31
+ <DISPLAY_AMOUNT>5.00 gal</DISPLAY_AMOUNT>
32
+ </WATER>
33
+ <WATER>
34
+ <NAME>Edinburg, Scotland</NAME>
35
+ <VERSION>1</VERSION>
36
+ <AMOUNT>18.927168</AMOUNT>
37
+ <CALCIUM>120.0</CALCIUM>
38
+ <BICARBONATE>225.0</BICARBONATE>
39
+ <SULFATE>140.0</SULFATE>
40
+ <CHLORIDE>20.0</CHLORIDE>
41
+ <SODIUM>55.0</SODIUM>
42
+ <MAGNESIUM>25.0</MAGNESIUM>
43
+ <PH>8.0</PH>
44
+ <NOTES>Used for dark, malty Brown ales with low bitterness.</NOTES>
45
+ <DISPLAY_AMOUNT>5.00 gal</DISPLAY_AMOUNT>
46
+ </WATER>
47
+ <WATER>
48
+ <NAME>Milwaukee, WI</NAME>
49
+ <VERSION>1</VERSION>
50
+ <AMOUNT>18.927168</AMOUNT>
51
+ <CALCIUM>96.0</CALCIUM>
52
+ <BICARBONATE>107.0</BICARBONATE>
53
+ <SULFATE>26.0</SULFATE>
54
+ <CHLORIDE>16.0</CHLORIDE>
55
+ <SODIUM>7.0</SODIUM>
56
+ <MAGNESIUM>47.0</MAGNESIUM>
57
+ <PH>7.5</PH>
58
+ <NOTES>Famous for Pilsners and Lagers.</NOTES>
59
+ <DISPLAY_AMOUNT>5.00 gal</DISPLAY_AMOUNT>
60
+ </WATER>
61
+ <WATER>
62
+ <NAME>Pilsen, Czech</NAME>
63
+ <VERSION>1</VERSION>
64
+ <AMOUNT>18.927168</AMOUNT>
65
+ <CALCIUM>7.0</CALCIUM>
66
+ <BICARBONATE>15.0</BICARBONATE>
67
+ <SULFATE>5.0</SULFATE>
68
+ <CHLORIDE>5.0</CHLORIDE>
69
+ <SODIUM>2.0</SODIUM>
70
+ <MAGNESIUM>2.0</MAGNESIUM>
71
+ <PH>8.0</PH>
72
+ <NOTES>Very soft water aids pale color and clean bitterness of Pilsner style.</NOTES>
73
+ <DISPLAY_AMOUNT>5.00 gal</DISPLAY_AMOUNT>
74
+ </WATER>
75
+ </WATERS>
@@ -0,0 +1,124 @@
1
+ <?xml version="1.0" encoding="ISO-8859-1"?>
2
+ <!-- BeerXML Format - Generated by BeerSmith - see www.beersmith.com -->
3
+ <YEASTS>
4
+ <YEAST>
5
+ <NAME>English Ale</NAME>
6
+ <VERSION>1</VERSION>
7
+ <TYPE>Ale</TYPE>
8
+ <FORM>Liquid</FORM>
9
+ <AMOUNT>0.0350000</AMOUNT>
10
+ <AMOUNT_IS_WEIGHT>FALSE</AMOUNT_IS_WEIGHT>
11
+ <LABORATORY>White Labs</LABORATORY>
12
+ <PRODUCT_ID>WLP002</PRODUCT_ID>
13
+ <MIN_TEMPERATURE>18.3000</MIN_TEMPERATURE>
14
+ <MAX_TEMPERATURE>20.0000</MAX_TEMPERATURE>
15
+ <FLOCCULATION>Very High</FLOCCULATION>
16
+ <ATTENUATION>66.5</ATTENUATION>
17
+ <NOTES>Classic ESB strain best for English style milds, bitters, porters and English style stouts. Leaves a clear beer with some residual sweetness.</NOTES>
18
+ <BEST_FOR>English Pale Ale, ESB, India Pale Ale, Brown Ale, Porter, Sweet Stouts and Strong Ales</BEST_FOR>
19
+ <MAX_REUSE>5</MAX_REUSE>
20
+ <TIMES_CULTURED>0</TIMES_CULTURED>
21
+ <ADD_TO_SECONDARY>FALSE</ADD_TO_SECONDARY>
22
+ <DISPLAY_AMOUNT>35 ml</DISPLAY_AMOUNT>
23
+ <DISP_MIN_TEMP>64.9 F</DISP_MIN_TEMP>
24
+ <DISP_MAX_TEMP>68.0 F</DISP_MAX_TEMP>
25
+ <INVENTORY>0 Pkgs</INVENTORY>
26
+ <CULTURE_DATE>8/31/2003</CULTURE_DATE>
27
+ </YEAST>
28
+ <YEAST>
29
+ <NAME>European Ale</NAME>
30
+ <VERSION>1</VERSION>
31
+ <TYPE>Ale</TYPE>
32
+ <FORM>Liquid</FORM>
33
+ <AMOUNT>0.0350000</AMOUNT>
34
+ <AMOUNT_IS_WEIGHT>FALSE</AMOUNT_IS_WEIGHT>
35
+ <LABORATORY>White Labs</LABORATORY>
36
+ <PRODUCT_ID>WLP011</PRODUCT_ID>
37
+ <MIN_TEMPERATURE>18.3000</MIN_TEMPERATURE>
38
+ <MAX_TEMPERATURE>21.1000</MAX_TEMPERATURE>
39
+ <FLOCCULATION>Medium</FLOCCULATION>
40
+ <ATTENUATION>67.5</ATTENUATION>
41
+ <NOTES>Malty, Northern European ale yeast. Low ester production, low sulfer, gives a clean profile. Low attenuation contributes to malty taste.</NOTES>
42
+ <BEST_FOR>Alt, Kolsch, malty English Ales, Fruit beers</BEST_FOR>
43
+ <MAX_REUSE>5</MAX_REUSE>
44
+ <TIMES_CULTURED>0</TIMES_CULTURED>
45
+ <ADD_TO_SECONDARY>FALSE</ADD_TO_SECONDARY>
46
+ <DISPLAY_AMOUNT>35 ml</DISPLAY_AMOUNT>
47
+ <DISP_MIN_TEMP>64.9 F</DISP_MIN_TEMP>
48
+ <DISP_MAX_TEMP>70.0 F</DISP_MAX_TEMP>
49
+ <INVENTORY>0 Pkgs</INVENTORY>
50
+ <CULTURE_DATE>8/31/2003</CULTURE_DATE>
51
+ </YEAST>
52
+ <YEAST>
53
+ <NAME>Irish Ale</NAME>
54
+ <VERSION>1</VERSION>
55
+ <TYPE>Ale</TYPE>
56
+ <FORM>Liquid</FORM>
57
+ <AMOUNT>0.1250000</AMOUNT>
58
+ <AMOUNT_IS_WEIGHT>FALSE</AMOUNT_IS_WEIGHT>
59
+ <LABORATORY>Wyeast Labs</LABORATORY>
60
+ <PRODUCT_ID>1084</PRODUCT_ID>
61
+ <MIN_TEMPERATURE>16.7000</MIN_TEMPERATURE>
62
+ <MAX_TEMPERATURE>22.2000</MAX_TEMPERATURE>
63
+ <FLOCCULATION>Medium</FLOCCULATION>
64
+ <ATTENUATION>73.0</ATTENUATION>
65
+ <NOTES>Dry diacetyl, fruity flavor characteristic of stouts. Full bodied, dry, clean flavor.</NOTES>
66
+ <BEST_FOR>Irish Dry Stouts, Porter, Scottish Ale, Brown Ale, Imperial Stout, Barley Wine</BEST_FOR>
67
+ <MAX_REUSE>5</MAX_REUSE>
68
+ <TIMES_CULTURED>0</TIMES_CULTURED>
69
+ <ADD_TO_SECONDARY>FALSE</ADD_TO_SECONDARY>
70
+ <DISPLAY_AMOUNT>125 ml</DISPLAY_AMOUNT>
71
+ <DISP_MIN_TEMP>62.1 F</DISP_MIN_TEMP>
72
+ <DISP_MAX_TEMP>72.0 F</DISP_MAX_TEMP>
73
+ <INVENTORY>0 Pkgs</INVENTORY>
74
+ <CULTURE_DATE>8/31/2003</CULTURE_DATE>
75
+ </YEAST>
76
+ <YEAST>
77
+ <NAME>Kolsch Yeast</NAME>
78
+ <VERSION>1</VERSION>
79
+ <TYPE>Ale</TYPE>
80
+ <FORM>Liquid</FORM>
81
+ <AMOUNT>0.1250000</AMOUNT>
82
+ <AMOUNT_IS_WEIGHT>FALSE</AMOUNT_IS_WEIGHT>
83
+ <LABORATORY>Wyeast Labs</LABORATORY>
84
+ <PRODUCT_ID>2565</PRODUCT_ID>
85
+ <MIN_TEMPERATURE>13.3000</MIN_TEMPERATURE>
86
+ <MAX_TEMPERATURE>17.8000</MAX_TEMPERATURE>
87
+ <FLOCCULATION>Low</FLOCCULATION>
88
+ <ATTENUATION>75.0</ATTENUATION>
89
+ <NOTES>Very malty flavor with mix of lager and ale character. Crisp, clean finish.</NOTES>
90
+ <BEST_FOR>Kolsch, European Ales</BEST_FOR>
91
+ <MAX_REUSE>5</MAX_REUSE>
92
+ <TIMES_CULTURED>0</TIMES_CULTURED>
93
+ <ADD_TO_SECONDARY>FALSE</ADD_TO_SECONDARY>
94
+ <DISPLAY_AMOUNT>125 ml</DISPLAY_AMOUNT>
95
+ <DISP_MIN_TEMP>55.9 F</DISP_MIN_TEMP>
96
+ <DISP_MAX_TEMP>64.0 F</DISP_MAX_TEMP>
97
+ <INVENTORY>0 Pkgs</INVENTORY>
98
+ <CULTURE_DATE>8/31/2003</CULTURE_DATE>
99
+ </YEAST>
100
+ <YEAST>
101
+ <NAME>Northwest Ale</NAME>
102
+ <VERSION>1</VERSION>
103
+ <TYPE>Ale</TYPE>
104
+ <FORM>Liquid</FORM>
105
+ <AMOUNT>0.1250000</AMOUNT>
106
+ <AMOUNT_IS_WEIGHT>FALSE</AMOUNT_IS_WEIGHT>
107
+ <LABORATORY>Wyeast Labs</LABORATORY>
108
+ <PRODUCT_ID>1332</PRODUCT_ID>
109
+ <MIN_TEMPERATURE>18.3000</MIN_TEMPERATURE>
110
+ <MAX_TEMPERATURE>23.9000</MAX_TEMPERATURE>
111
+ <FLOCCULATION>High</FLOCCULATION>
112
+ <ATTENUATION>69.0</ATTENUATION>
113
+ <NOTES>Classic Northwest US ale yeast. Slight fruit flavor, malty ale with good body and balance.</NOTES>
114
+ <BEST_FOR>Oregon Ales, All American Ale styles</BEST_FOR>
115
+ <MAX_REUSE>5</MAX_REUSE>
116
+ <TIMES_CULTURED>0</TIMES_CULTURED>
117
+ <ADD_TO_SECONDARY>FALSE</ADD_TO_SECONDARY>
118
+ <DISPLAY_AMOUNT>125 ml</DISPLAY_AMOUNT>
119
+ <DISP_MIN_TEMP>64.9 F</DISP_MIN_TEMP>
120
+ <DISP_MAX_TEMP>75.0 F</DISP_MAX_TEMP>
121
+ <INVENTORY>0 Pkgs</INVENTORY>
122
+ <CULTURE_DATE>8/31/2003</CULTURE_DATE>
123
+ </YEAST>
124
+ </YEASTS>
@@ -0,0 +1,11 @@
1
+ require 'dm-core'
2
+ require 'dm-types'
3
+ require 'dm-validations'
4
+ require 'nokogiri'
5
+
6
+ module Beerxml
7
+ # This'll have to go eventually, but for now it's nice
8
+ DataMapper.setup(:default, "abstract::")
9
+ end
10
+
11
+ require 'beerxml/model'
@@ -0,0 +1,22 @@
1
+ class Beerxml::Hop < Beerxml::Model
2
+ property :name, String, :required => true
3
+ property :alpha, Float, :required => true
4
+ property :amount, Float, :required => true
5
+ property :use, Enum['Boil', 'Dry Hop', 'Mash', 'First Wort', 'Aroma'], :required => true
6
+ property :time, Integer, :required => true
7
+ property :notes, String, :length => 65535
8
+ property :type, Enum[nil, 'Bittering', 'Aroma', 'Both']
9
+ property :form, Enum[nil, 'Pellet', 'Plug', 'Leaf']
10
+ property :beta, Float
11
+ property :hsi, Float
12
+ property :origin, String, :length => 512
13
+ property :substitutes, String, :length => 512
14
+ property :humulene, String, :length => 512
15
+ property :caryophyllene, String, :length => 512
16
+ property :cohumulone, String, :length => 512
17
+ property :myrcene, String, :length => 512
18
+
19
+ # these are not used in the xml
20
+ property :id, Serial
21
+ belongs_to :recipe, :required => false
22
+ end
@@ -0,0 +1,59 @@
1
+ class Beerxml::Model
2
+ include DataMapper::Resource
3
+
4
+ def self.beerxml_name
5
+ name.split('::').last.upcase
6
+ end
7
+
8
+ def from_xml(node)
9
+ properties.each do |property|
10
+ read_xml_field(node, property.name.to_s)
11
+ end
12
+ # load any has-many relationships with other beerxml models
13
+ relationships.each do |name, rel|
14
+ child_model = rel.child_model
15
+ next unless child_model.ancestors.include?(Beerxml::Model)
16
+
17
+ model_name = child_model.beerxml_name
18
+ child_wrapper_node = (node>model_name.pluralize.upcase).first
19
+ next unless child_wrapper_node
20
+
21
+ (child_wrapper_node>model_name).each do |child_node|
22
+ self.send(rel.name) << child_model.new.from_xml(child_node)
23
+ end
24
+ end
25
+ self
26
+ end
27
+
28
+ def read_xml_field(node, attr_name, node_name = attr_name.upcase)
29
+ child = (node>node_name).first
30
+ return unless child
31
+ child = child.text
32
+ child = yield(child) if block_given?
33
+ self.send("#{attr_name}=", child)
34
+ end
35
+
36
+ def to_beerxml(parent = Nokogiri::XML::Document.new)
37
+ # TODO: do we raise an error if not valid?
38
+ node = Nokogiri::XML::Node.new(self.class.beerxml_name, parent)
39
+ attributes.each do |attr, val|
40
+ next if attr.to_s.match(/id\z/) || val.nil?
41
+ x = Nokogiri::XML::Node.new(self.class.xml_attr_name(attr), parent)
42
+ x.content = val # TODO: data types
43
+ node.add_child(x)
44
+ end
45
+ parent.add_child(node)
46
+ parent
47
+ end
48
+
49
+ def to_xml
50
+ to_beerxml.to_s
51
+ end
52
+
53
+ def self.xml_attr_name(name)
54
+ name.to_s.upcase
55
+ end
56
+ end
57
+
58
+ require 'beerxml/hop'
59
+ require 'beerxml/recipe'