legal_markdown 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  This gem will parse YAML Front Matter of Markdown Documents. Typically, this gem would be called with a md renderer, such as [Pandoc](http://johnmacfarlane.net/pandoc/), that would turn the md into a document such as a .pdf file or a .docx file. By combining this pre-processing with a markdown renderer, you can ensure that both the structured content and the structured styles necessary for your firm or organization are more strictly enforced. Plus you won't have to deal with Word any longer, and every lawyer should welcome that. Why? Because Word is awful.
4
4
 
5
- Gitlaw is markdown agnostic at this point and needs to be called independently of any markdown renderer. It is easy enough to build it into your work flow by editing the way that your markdown renderer is called. For instance you can call this file just before pandoc builds it. I use Sublime Text 2 with the Pandown plugin to build my Pandoc files. So what I would do is [..TODO..].
5
+ Gitlaw is markdown agnostic at this point and needs to be called independently of any markdown renderer. It is easy enough to build it into your work flow by editing the way that your markdown renderer is called. For instance you can call this file just before pandoc builds it.
6
6
 
7
7
  ## What Does the Gem Allow For?
8
8
 
@@ -20,34 +20,15 @@ After the gem has finished its installation on your system then you can simply t
20
20
 
21
21
  [YAML](http://www.yaml.org/spec/1.2/spec.html) is about the easiest thing to create. At the top of your file (it MUST be at the top of the file) you simply put in three or more hyphens like so: `---` on a single line. Then on the next line you simply put in the `field` followed by a `:` (colon) followed by the `value`. For each line you put the `[field]: [value]` until you have filled everything in that you need. After you have put in all your YAML front-matter then you simply put in a single line with three more hyphens `---` to signal to the gem that it is the end of the fields. So this would look like this:
22
22
 
23
- ```
24
- ---
25
- title: My Perfect Contract
26
- author: Watershed Legal Services
27
- date: 2013-01-01
28
- ---
29
- ```
23
+ ```
24
+ ---
25
+ title: My Perfect Contract
26
+ author: Watershed Legal Services
27
+ date: 2013-01-01
28
+ ---
29
+ ```
30
30
 
31
- ## A Few Signals to the Parser
32
-
33
- ### Leaving the YAML Front-Matter
34
-
35
- The gem will normally strip out the YAML front-matter as most markdown renderers will not be sure what to do with such content. Indeed, pandoc will end up drawing a table with the data still there. However, because some could potentially want to use this gem in combination with something like [Jekyll](https://github.com/mojombo/jekyll/) or any other system that could use the YAML front-matter there is a special trigger that tells legal_markdown to leave the YAML front-matter in the file. Legal_markdown will still make the necessary changes to the text of the file but it will not strip out the YAML front-matter in the process of making those changes.
36
-
37
- To leave the YAML front-matter there simply pass the `value` of `true` to the `field` called `leave_yaml_front_matter`; this is how it would look in the above example.
38
-
39
- ```
40
- ---
41
- title: My Perfect Contract
42
- author: Watershed Legal Services
43
- date: 2013-01-01
44
- leave_yaml_front_matter: true
45
- ---
46
- ```
47
-
48
- If you do not add the `true` value to the field then the default which is set to false will be triggered and the YAML Front-Matter will be stripped.
49
-
50
- ### Some Pandoc-Specific Fields
31
+ ## Some Pandoc-Specific Fields
51
32
 
52
33
  There are a few fields that will be treated uniquely. The three fields in the example above (title: , author: , and date: ) will be replaced with the Pandoc fields as appropriate. Perhaps later we can (as a community) build out this functionality for other renderers but for now I've only built it to use Pandoc. If you don't use Pandoc then you can simply omit these fields and there will be no problem.
53
34
 
@@ -57,22 +38,11 @@ Mixins are straight-forward they are simple markers that can be used throughout
57
38
 
58
39
  Mixins are structured in the form of **double curly** brackets (this was taken from IFTTT). So, for a `{{court}}` mixin, the YAML front-matter would look like this:
59
40
 
60
- ```
61
- {{court}}: Regional Court of Hargeisa
62
- ```
63
-
64
- Mixins can also be used to set up clauses in the alternative in your templates which can be turned on or off within a specific document simply by updating the YAML mixin to false. Example of a `{{provision12a}}{{provision12b}}` alternative structuring for a contract template. Within the template the YAML front-matter would be structured something like this:
65
-
66
- ```
67
- {{provision12a}}: "For the purposes of this Agreement"
68
- {{provision12b}}: "This Agreement shall"
69
- ```
41
+ ```
42
+ {{court}}: Regional Court of Hargeisa
43
+ ```
70
44
 
71
- Then to chose one of the two provisions you would would simply change the line to "false" but without the quotes. Example:
72
-
73
- ```
74
- {{provision12a}}: false
75
- ```
45
+ If you do not want a mixin turned on for a particular document just add the mixin in the YAML Frontmatter and then leave it blank. Legal_markdown will replace the mixin with an empty string so in the parsed document it will be out of your way.
76
46
 
77
47
  # Structured Headers
78
48
 
@@ -101,68 +71,100 @@ Sometimes in legal documents (particularly in laws) you want to build multiple s
101
71
 
102
72
  This functionality is built in with a `no-reset` function. You simply add a `no-reset` field to your YAML header and note the headers that you do not want to reset by their l., ll. notation. Separate those levels you do not want reset with commas. Example YAML line:
103
73
 
104
- ~~~
105
- no-reset: l., ll., lll.
106
- ~~~
74
+ ```
75
+ no-reset: l., ll., lll.
76
+ ```
107
77
 
108
78
  This will not reset level-1, level-2, or level-3 when it is parsing the document and those levels will be numbered sequentially through the entire block rather than reseting when going to a higher block, levels not in this reset, e.g., llll. and lllll. will be reset when going up a level in the tree. Obviously the level 1 headers will never reset.
109
79
 
80
+ ## No Indent Function
81
+
82
+ Sometimes you will not want to use Pandoc's listing function. Basically if you are outputting to .pdf, .odt, .doc(x) you may want to keep tight to the margins. This functionality is built into legal_markdown with a `no-indent` function. You simply add a `no-ident` field to your YAML header and not the headers you do not want to indent by their l., ll. notation. Separate those levels you do not want to reset with commas as with the `no-reset` function. Any levels *below* the last level in the `no-indent` function will be indented four spaces.
83
+
84
+ ## Optional Clauses Function
85
+
86
+ When building templates for contracts, you often build in optional clauses or you build clauses that are mutually exclusive to one another. This functionality is supported by legal_markdown. This is how you build an optional clause. In the body of your text you put the entire clause in square-brackets (as you likely normally would) and at the beginning of the square bracket you put a mixin titled however. In the YAML Front-Matter you simply add true or false to turn that entire clause on or off. **Note**, if you do not add the mixin to your header, legal_markdown is just going to leave it as is.
87
+
88
+ You are able to nest one optional clause inside of another. However, if you do so, make sure that you include all of the sub-provisions of the master provision in the YAML matter, else legal_markdown will not be able to understand when it should close the optional provision. Another thing to note, if you include nested provisions, you can turn off an inside provision and leave an outside provision on, but if you turn off an outside provision you cannot turn on an inside provision.
89
+
90
+ So, this is how the body of the text would look.
91
+
92
+ ```
93
+ [{{my_optional_clause}}Both parties agree that upon material breach of this agreement by either party they will both commit suicide in homage to Kurt Cobain.]
94
+ ```
95
+
96
+ Then the YAML Front Matter would look like this
97
+
98
+ ```
99
+ my_optional_clause: true
100
+ ```
101
+
102
+ or
103
+
104
+ ```
105
+ my_optional_clause: false
106
+ ```
107
+
108
+ I don't know why you would ever write such a clause, but that is why the functionality exists!
109
+
110
110
  ## Example
111
111
 
112
112
  If you use a system like Pandoc you can establish a system wherein the styles that you establish in the reference.docx or reference.odt or the latex style references can make up for the lack of granular fuctionality. When you build your reference.odt for example and you want to have a contract look like this:
113
113
 
114
+ ```
114
115
  Article 1. Provision for Article 1.
115
116
 
116
- Section 1.1. Provision for Section 1.1.
117
+ Section 1.1. Provision for Section 1.1.
117
118
 
118
- 1.1.1 Provision for 1.1.1.
119
+ 1.1.1 Provision for 1.1.1.
119
120
 
120
- 1.1.2 Provision for 1.1.2.
121
+ 1.1.2 Provision for 1.1.2.
121
122
 
122
- Section 1.2. Provision for Section 1.2.
123
+ Section 1.2. Provision for Section 1.2.
123
124
 
124
- 1.2.1 Provision for 1.2.1.
125
+ 1.2.1 Provision for 1.2.1.
125
126
 
126
- 1.2.2 Provision for 1.2.2.
127
+ 1.2.2 Provision for 1.2.2.
127
128
 
128
129
  ...
130
+ ```
129
131
 
130
132
  You can easily to that by doing the following steps.
131
133
 
132
134
  ### Step 1: Type the body
133
135
 
134
- ```
135
- l. Provision for Article 1.
136
- ll. Provision for Section 1.1.
137
- lll. Provision for 1.1.1.
138
- lll. Provision for 1.1.2.
139
- ll. Provision for Section 1.2.
140
- lll. Provision for 1.2.1.
141
- lll. Provision for 1.2.2.
142
- ```
136
+ ```
137
+ l. Provision for Article 1.
138
+ ll. Provision for Section 1.1.
139
+ lll. Provision for 1.1.1.
140
+ lll. Provision for 1.1.2.
141
+ ll. Provision for Section 1.2.
142
+ lll. Provision for 1.2.1.
143
+ lll. Provision for 1.2.2.
144
+ ```
143
145
 
144
146
  ### Step 2: (Optional) Fill out the YAML Front-Matter
145
147
 
146
- ```
147
- ---
148
- title: Wonderful Contract
149
- author: Your Name
150
- date: today
151
- level-1: 1.
152
- level-2: A.
153
- level-3: a.
154
- ---
155
- ```
148
+ ```
149
+ ---
150
+ title: Wonderful Contract
151
+ author: Your Name
152
+ date: today
153
+ level-1: 1.
154
+ level-2: A.
155
+ level-3: a.
156
+ ---
157
+ ```
156
158
 
157
159
  ### Step 3: Modify your reference.odt or reference.docx
158
160
 
159
161
  In Libreoffice you would modify your template reference.odt as you need it. You would go to Format -> Bullets and Numbering -> Options.
160
162
 
161
- 1. First you would select Level 1 (on the left). In the Before field you would add "Article " (without the quotes, but not the space). In the After field you would add a period. In the Numbering field you would select 1, 2, 3, .... And in the Show sublevels field you would choose 1
162
- 2. Second you would select Level 2 (on the left). In the Before field you would add "Section " (without the quotes, but with the space). In the After field you would add a period. In the Numbering field you would select 1, 2, 3, .... And in the Show sublevels field you would choose 2.
163
- 3. Third you would select Level 3 (on the left). In the Before field you would add nothing (to accomplish the above desired output). In the After field you would add a period. in the Show sublevels field you would choose 3.
164
- 4. Lastly you would make sure that Consecutive Numbering (field at the bottom) was turned off.
165
- 5. You can make sure that all the indenting is as desired in the Position Tab.
163
+ 1. First you would select Level 1 (on the left). In the Before field you would add "Article " (without the quotes, but not the space). In the After field you would add a period. In the Numbering field you would select 1, 2, 3, .... And in the Show sublevels field you would choose 1
164
+ 2. Second you would select Level 2 (on the left). In the Before field you would add "Section " (without the quotes, but with the space). In the After field you would add a period. In the Numbering field you would select 1, 2, 3, .... And in the Show sublevels field you would choose 2.
165
+ 3. Third you would select Level 3 (on the left). In the Before field you would add nothing (to accomplish the above desired output). In the After field you would add a period. in the Show sublevels field you would choose 3.
166
+ 4. Lastly you would make sure that Consecutive Numbering (field at the bottom) was turned off.
167
+ 5. You can make sure that all the indenting is as desired in the Position Tab.
166
168
 
167
169
  Then you would save the reference.odt as a new name perhaps contract-reference.odt in your Pandoc reference folder.
168
170
 
@@ -172,16 +174,16 @@ Then you would save the reference.odt as a new name perhaps contract-reference.o
172
174
 
173
175
  Now that you've been warned, here's how you use precursors. Within the text of the document nothing changes. In the YAML front matter you will leave it as it was before. All you need to do is add any word or other marker before the trigger. What `legal_markdown` will do is to look at the last two characters if the marker ends in a period or three if it ends in a paren, and then everything else it will place into a precursor. If you want to reference the preceding level (like 1.1.1 in the example above) then simply put in {pre}. I'll try to make this less fragile down the road, but for now it is what it is. So, your YAML front matter will look like this:
174
176
 
175
- ```
176
- ---
177
- title: Wonderful Contract
178
- author: Your Name
179
- date: today
180
- level-1: Article 1.
181
- level-2: pre 1.
182
- level-3: pre a.
183
- ---
184
- ```
177
+ ```
178
+ ---
179
+ title: Wonderful Contract
180
+ author: Your Name
181
+ date: today
182
+ level-1: Article 1.
183
+ level-2: pre 1.
184
+ level-3: pre a.
185
+ ---
186
+ ```
185
187
 
186
188
  The other thing you need to be aware of if you use this method is that when `legal_markdown` parses the input markdown it have to hardcode in the numbering. This means that you'll lose any features of automatic lists and list nesting which your markdown renderer may give you if you simply placed the triggers without any precursors.
187
189
 
@@ -197,35 +199,33 @@ I do not use latex to create pdfs nor do I use Word, but the functionality will
197
199
  * If you use the reference.odt or reference.docx to override the default formating of the list then it is not optimal add level-1 or level-2 leading text or utilize the different marker functionality (e.g., (i) or (a) and the like) to the YAML front-matter. The optimal way is to use the defaults that pandoc has or whatever renderer you use along with legal_markdown to set the spacing and then use the reference styles to build the functionality that you would like from the word processor side. The leading text and different marker systems are predominately built for html output.
198
200
  * Legal_markdown is optimized primarily for contracts, legislation, and regulations. It is not optimized for cases. For memoranda and filings I use the mixin portion but not the header portion which is enough to meet my needs - in particular, when matched with Sublime Text snippets. If you area looking for a more complete solution for cases and filings I would recommend the [Precedent Gem](https://github.com/BlackacreLabs/precedent) built by [Kyle Mitchell](https://github.com/kemitchell) for [Blackacre Labs](https://github.com/BlackacreLabs)
199
201
 
200
- # TODO
201
-
202
- [ ] Definitions. For now these can be used as mixins but that functionality needs to improve.
203
-
204
- [ ] Make a no-reset option for certain levels that should not reset when moving up the tree.
205
-
206
- [ ] Parsing. At this point legal_markdown cannot take a markdown document and parse it to build structured headers. Legal_markdown only works with a renderer to *create* documents but not to *import* documents. I want to build this functionality out at a later date. Legal_markdown is not meant as an importer for files types, there are other tools for that but I would like it to be able to parse text that is already in markdown.
207
-
208
- [ ] Markdown post-processing. This will cure some of the issues (class establishment and proper list nesting of structure documents) that are currently lost when using precurors.
209
-
210
- [ ] Different input and output files.
211
-
212
- [ ] Implement partials.
213
-
214
- [ ] Small capitals based on [Precedent's Syntax](https://github.com/BlackacreLabs/precedent/blob/master/SYNTAX.md).
215
-
216
- [ ] Handle against multiple blocks in a document as this currently will not work.
202
+ # Roadmap / TODO
203
+
204
+ - [X] Make a no-reset option for certain levels that should not reset when moving up the tree.
205
+ - [X] Make no indent option.
206
+ - [X] Optional clauses in brackets with a mixin inside. Turn the mixin to false and the whole clause will not be rendered. For a mixin that simply turns on or off, must make a function whereby the mixin is true that it is turned on.
207
+ - [ ] Handle Exceptions better as it is very brittle right now.
208
+ - [ ] Different input and output files.
209
+ - [ ] Implement partials.
210
+ - [ ] Leave the YAML Front Matter
211
+ - [ ] Definitions. For now these can be used as mixins but that functionality needs to improve.
212
+ - [ ] Date = today function.
213
+ - [ ] Handle against multiple blocks in a document as this currently will not work.
214
+ - [ ] ??? Should this switch to TOML rather than YAML frontmatter...?
215
+ - [ ] legal2md functionality. At this point legal_markdown cannot take a markdown document and parse it to build a structured legal document. Legal_markdown only works with a renderer to *create* documents but not to *parse* legal documents to create markdown.
217
216
 
218
217
  # Contributing
219
218
 
220
- 1. Fork it
221
- 2. Create your feature branch (`git checkout -b my-new-feature`)
222
- 3. Commit your changes (`git commit -am 'Add some feature'`)
223
- 4. Push to the branch (`git push origin my-new-feature`)
224
- 5. Create new Pull Request
219
+ 1. Fork the repository.
220
+ 2. Create your feature branch (`git checkout -b my-new-feature`).
221
+ 3. Add Tests (and feel free to help here since I don't (yet) really know how to do that.).
222
+ 4. Commit your changes (`git commit -am 'Add some feature'`).
223
+ 5. Push to the branch (`git push origin my-new-feature`).
224
+ 6. Create new Pull Request.
225
225
 
226
226
  # License
227
227
 
228
- MIT License - (c) 2012 - Watershed Legal Services, PLLC. All copyrights are owned by [Watershed Legal Services, PLLC](http://watershedlegal.com). See License file.
228
+ MIT License - (c) 2013 - Watershed Legal Services, PLLC. All copyrights are owned by [Watershed Legal Services, PLLC](http://watershedlegal.com). See License file.
229
229
 
230
230
  This software is provided as is and specifically disclaims any implied warranties of fitness for any purpose whatsoever. By using this software you agree to hold harmless Watershed Legal Services and its Members for any perceived harm that using this software may have caused you.
231
231
 
@@ -1,3 +1,3 @@
1
1
  module LegalMarkdown
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -84,19 +84,67 @@ module LegalMarkdown
84
84
  # Mixins
85
85
 
86
86
  def mixing_in( mixins, content )
87
- mixins.each do | mixin, replacer |
88
- replacer = replacer.to_s
89
- safe_words = [ "title", "author", "date" ]
90
- if replacer != "false"
91
- pattern = /{{#{mixin}}}/
92
- if content =~ pattern
93
- content = content.gsub( pattern, replacer )
94
- # delete the mixin so that later parsing of special mixins & headers is easier and faster
95
- mixins.delete( mixin ) unless safe_words.any?{ |s| s.casecmp(mixin) == 0 }
87
+
88
+ def clauses_mixins( mixins, content )
89
+ clauses_to_delete = []
90
+ clauses_to_mixin = []
91
+
92
+ mixins.each do | mixin, replacer |
93
+ replacer = replacer.to_s.downcase
94
+ clauses_to_delete << mixin if replacer == "false"
95
+ clauses_to_mixin << mixin if replacer == "true"
96
+ end
97
+
98
+ clauses_to_delete.each { |m| mixins.delete(m) }
99
+ clauses_to_mixin.each { |m| mixins.delete(m) }
100
+
101
+ until clauses_to_delete.size == 0
102
+ clauses_to_delete.each do | mixin |
103
+ pattern = /(\[{{#{mixin}}}\s*)(.*?\n?)(\])/m
104
+ sub_pattern = /\[{{(\S+)}}/m
105
+ content[pattern]
106
+ get_it_all = $& || ""
107
+ sub_clause = $2 || ""
108
+ next if sub_clause[sub_pattern] && clauses_to_delete.include?($1)
109
+ content = content.gsub( get_it_all, "" )
110
+ clauses_to_delete.delete( mixin )
111
+ end
112
+ end
113
+
114
+ until clauses_to_mixin.size == 0
115
+ clauses_to_mixin.each do | mixin |
116
+ pattern = /(\[{{#{mixin}}}\s*)(.*?\n?)(\])/m
117
+ sub_pattern = /(\[{{\S+}})/m
118
+ content[pattern]
119
+ get_it_all = $& || ""
120
+ sub_clause = $2 || ""
121
+ next if sub_clause[sub_pattern] && clauses_to_mixin.include?($1)
122
+ content = content.gsub( get_it_all, sub_clause )
123
+ clauses_to_mixin.delete( mixin )
124
+ end
125
+ end
126
+
127
+ return [content, mixins]
128
+ end
129
+
130
+ def normal_mixins( mixins, content )
131
+ mixins.each do | mixin, replacer |
132
+ unless mixin =~ /level-\d/ or mixin =~ /no-reset/ or mixin =~ /no-indent/
133
+ replacer = replacer.to_s
134
+ safe_words = [ "title", "author", "date" ]
135
+ pattern = /({{#{mixin}}})/
136
+ if content =~ pattern
137
+ content = content.gsub( $1, replacer )
138
+ mixins.delete( mixin ) unless safe_words.any?{ |s| s.casecmp(mixin) == 0 }
139
+ end
96
140
  end
97
141
  end
142
+ return [content, mixins]
98
143
  end
99
- return [content, mixins]
144
+
145
+ clauses_mixed = clauses_mixins( mixins, content )
146
+ mixed = normal_mixins( clauses_mixed[1], clauses_mixed[0] )
147
+ return [ mixed[0], mixed[1] ]
100
148
  end
101
149
 
102
150
  # ----------------------
@@ -176,6 +224,10 @@ module LegalMarkdown
176
224
  no_subs_array = value.split(", ")
177
225
  no_subs_array.each{|e| substitutions[e][6] = :no_reset }
178
226
  end
227
+ @no_indt_array = []
228
+ if header =~ /no-indent/
229
+ @no_indt_array = value.split(", ")
230
+ end
179
231
  end
180
232
 
181
233
  return substitutions
@@ -235,8 +287,12 @@ module LegalMarkdown
235
287
 
236
288
  def log_the_line( new_block, selector, line, array_to_sub )
237
289
  substitute = array_to_sub[1..4].join
238
- spaces = ( " " * ( (selector.size) - 1 ) * 4 )
239
- new_block << spaces + line.gsub(selector, substitute)
290
+ spaces = ""
291
+ unless @no_indt_array.include?(selector)
292
+ downgrade_spaces = @no_indt_array.include?("l.") ? @no_indt_array.size - 1 : @no_indt_array.size
293
+ spaces = ( " " * ( (selector.size) - 2 - downgrade_spaces ) * 4 )
294
+ end
295
+ new_block << spaces + line.gsub(selector, substitute) + "\n"
240
296
  end
241
297
 
242
298
  def increment_the_branch( hash_of_subs, array_to_sub, selector )
@@ -328,10 +384,8 @@ module LegalMarkdown
328
384
  return new_block
329
385
  end
330
386
 
331
- if block != nil && block != "" && substitutions != nil && substitutions != {}
332
- substitutions.each_key{ |k| substitutions[k]= get_the_subs_arrays(substitutions[k]) }
333
- new_block = reform_the_block( block, substitutions )
334
- end
387
+ substitutions.each_key{ |k| substitutions[k]= get_the_subs_arrays(substitutions[k]) }
388
+ new_block = reform_the_block( block, substitutions )
335
389
  end
336
390
 
337
391
  headers = get_the_substitutions( headers )
@@ -340,16 +394,15 @@ module LegalMarkdown
340
394
  not_the_block = block_noted[1]
341
395
  block_noted = "" # Really only for long documents so they don't use too much memory
342
396
 
343
- if headers == {}
344
- block_redux = block
345
- end
346
397
  if block == nil || block == ""
347
398
  block_redux = ""
399
+ elsif headers == {}
400
+ block_redux = block
348
401
  else
349
402
  block_redux = chew_on_the_block( headers, block )
350
403
  end
351
404
 
352
- headed = not_the_block.gsub("{{block}}", block_redux )
405
+ headed = not_the_block.gsub("{{block}}", block_redux )
353
406
  end
354
407
 
355
408
  # ----------------------
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legal_markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-22 00:00:00.000000000 Z
12
+ date: 2013-03-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: roman-numerals
@@ -63,7 +63,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
63
  version: '0'
64
64
  segments:
65
65
  - 0
66
- hash: 1157519025930477197
66
+ hash: -1663138300287536069
67
67
  required_rubygems_version: !ruby/object:Gem::Requirement
68
68
  none: false
69
69
  requirements:
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  version: '0'
73
73
  segments:
74
74
  - 0
75
- hash: 1157519025930477197
75
+ hash: -1663138300287536069
76
76
  requirements: []
77
77
  rubyforge_project:
78
78
  rubygems_version: 1.8.25