rufo 0.0.25 → 0.0.26

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 200fb638506091280a985b092c7f56d51cc78ee6
4
- data.tar.gz: fa2aa0c202892a85c4683b5fe50c39f7fdc9f440
3
+ metadata.gz: 2da6aac7c9ee2daf498d8131afd7e77717a9ebb7
4
+ data.tar.gz: 1fbb0734dec03fc709b615fae32f6c52bfcb1df1
5
5
  SHA512:
6
- metadata.gz: 461fd9e0fc701a914e1c5d8a8174f913ed1b1cb7c2d820d8b451c584558058b3bcd249e8cb8cd7dc0d2ecade21111cbdf4ac63e5246daf71374a860c32699331
7
- data.tar.gz: 4ec02ecd32126046a380e6fff1a521605013b585320cbadc76f909aacbbed6af2c56cdbf20a289519d7c6be3d462bb14b3188b2d7688d2b74f9478a319120f07
6
+ metadata.gz: d21c78d0b4287cc04e5121c91631dacebcbf7f860c0398335e39f885da82de0a08676048b44c0964e8480253d86ebc78f699e23499931398318ba2a54e7dfc27
7
+ data.tar.gz: 23800db7fbb6224f5be334fab2141ef022d87906bc27926d6744debfd2d1751538ad9d189f956cf0a8e7c382c8cf0c801a5d6672dba49652117b041a615161ef
data/.rufo CHANGED
@@ -1,7 +1,10 @@
1
- space_after_hash_brace :dynamic
2
- preserve_whitespace true
3
- align_comments true
4
- align_assignments false
5
- align_hash_keys true
6
- align_case_when true
7
- indent_size 2
1
+ space_after_array_bracket :never
2
+ space_after_hash_brace :dynamic
3
+ preserve_whitespace true
4
+ align_comments true
5
+ align_assignments false
6
+ align_hash_keys true
7
+ align_case_when true
8
+ align_chained_calls false
9
+ indent_size 2
10
+ trailing_commas :always
data/README.md CHANGED
@@ -61,12 +61,13 @@ according to **rufo**, and will exit with exit code 1.
61
61
  ## Editor support
62
62
 
63
63
  - Sublime Text: [sublime-rufo](https://github.com/asterite/sublime-rufo)
64
+ - Vim: [rufo-vim](https://github.com/splattael/rufo-vim) :construction:
65
+ - Atom: [rufo-atom](https://github.com/bmulvihill/rufo-atom) :construction:
64
66
 
65
67
  Did you write a plugin for your favorite editor? That's great! Let me know about it and
66
68
  I will list it here.
67
69
 
68
- Right now it would be great to have [Vim](http://www.vim.org/),
69
- [Atom](https://atom.io/) and [Emacs](https://www.gnu.org/software/emacs/) plugins :-)
70
+ Right now it would be great to have an [Emacs](https://www.gnu.org/software/emacs/) plugin :-)
70
71
 
71
72
  ## Configuration
72
73
 
@@ -79,9 +80,16 @@ The `.rufo` file is a Ruby file that is evaluated in the context of the formatte
79
80
  available configurations:
80
81
 
81
82
  ```ruby
83
+ # Whether to put a space after an array bracket. Valid values are:
84
+ #
85
+ # * :dynamic: if there's a space, keep it. If not, don't add it
86
+ # * :always: always put a space after an array bracket (default)
87
+ # * :never: never put a space after an array bracket
88
+ space_after_array_bracket :never
89
+
82
90
  # Whether to put a space after a hash brace. Valid values are:
83
91
  #
84
- # * :dynamic: if there's a space, keep it. If not, don't keep it (default)
92
+ # * :dynamic: if there's a space, keep it. If not, don't add it (default)
85
93
  # * :always: always put a space after a hash brace
86
94
  # * :never: never put a space after a hash brace
87
95
  space_after_hash_brace :dynamic
@@ -98,6 +106,9 @@ align_hash_keys true
98
106
  # Whether to align successive case when (default: true)
99
107
  align_case_when true
100
108
 
109
+ # Whether to align chained calls to the dot (default: true)
110
+ align_chained_calls true
111
+
101
112
  # Preserve whitespace after assignments target and values,
102
113
  # after calls that start with a space, hash arrows and commas (default: true).
103
114
  #
@@ -110,6 +121,13 @@ preserve_whitespace true
110
121
 
111
122
  # The indent size (default: 2)
112
123
  indent_size 2
124
+
125
+ # Whether to place commas at the end of a multi-line list
126
+ #
127
+ # * :dynamic: if there's a comma, keep it. If not, don't add it
128
+ # * :always: always put a comma (default)
129
+ # * :never: never put a comma
130
+ trailing_commas :always
113
131
  ```
114
132
 
115
133
  As time passes there might be more configurations available. Please open an
@@ -26,6 +26,10 @@ class Rufo::Formatter
26
26
  # calls to that dot
27
27
  @dot_column = nil
28
28
 
29
+ # The column of a `obj.method` call, but only the name part,
30
+ # so we can also align arguments accordingly
31
+ @name_dot_column = nil
32
+
29
33
  # Heredocs list, associated with calls ([heredoc, tilde])
30
34
  @heredocs = []
31
35
 
@@ -38,6 +42,32 @@ class Rufo::Formatter
38
42
  # The current hash or call or method that has hash-like parameters
39
43
  @current_hash = nil
40
44
 
45
+ # Map lines to commands that start at the begining of a line with the following info:
46
+ # - line indent
47
+ # - first param indent
48
+ # - first line ends with '(', '[' or '{'?
49
+ # - line of matching pair of the previous item
50
+ # - last line of that call
51
+ #
52
+ # This is needed to dedent some calls that look like this:
53
+ #
54
+ # foo bar(
55
+ # 2,
56
+ # )
57
+ #
58
+ # Without the dedent it would normally look like this:
59
+ #
60
+ # foo bar(
61
+ # 2,
62
+ # )
63
+ #
64
+ # Because the formatter aligns this to the first parameter in the call.
65
+ # However, for these cases it's better to not align it like that.
66
+ @line_to_call_info = {}
67
+
68
+ # Each line that belongs to a heredoc content is put here
69
+ @heredoc_lines = {}
70
+
41
71
  # Position of comments that occur at the end of a line
42
72
  @comments_positions = []
43
73
 
@@ -75,11 +105,14 @@ class Rufo::Formatter
75
105
  # Settings
76
106
  indent_size options.fetch(:indent_size, 2)
77
107
  space_after_hash_brace options.fetch(:space_after_hash_brace, :dynamic)
108
+ space_after_array_bracket options.fetch(:space_after_array_bracket, :never)
78
109
  align_comments options.fetch(:align_comments, true)
79
110
  align_assignments options.fetch(:align_assignments, false)
80
111
  align_hash_keys options.fetch(:align_hash_keys, true)
81
112
  align_case_when options.fetch(:align_case_when, true)
113
+ align_chained_calls options.fetch(:align_chained_calls, true)
82
114
  preserve_whitespace options.fetch(:preserve_whitespace, true)
115
+ trailing_commas options.fetch(:trailing_commas, :always)
83
116
  end
84
117
 
85
118
  # The indent size (default: 2)
@@ -97,7 +130,21 @@ class Rufo::Formatter
97
130
  when :dynamic, :always, :never
98
131
  @space_after_hash_brace = value
99
132
  else
100
- raise ArgumentError.new("invalid value for #{space_after_hash_brace}: #{value}. Valid values are: :dynamic, :always, :never")
133
+ raise ArgumentError.new("invalid value for space_after_hash_brace: #{value}. Valid values are: :dynamic, :always, :never")
134
+ end
135
+ end
136
+
137
+ # Whether to put a space after an array bracket. Valid values are:
138
+ #
139
+ # * :dynamic: if there's a space, keep it. If not, don't keep it
140
+ # * :always: always put a space after an array bracket
141
+ # * :never: never put a space after an array bracket (default)
142
+ def space_after_array_bracket(value)
143
+ case value
144
+ when :dynamic, :always, :never
145
+ @space_after_array_bracket = value
146
+ else
147
+ raise ArgumentError.new("invalid value for space_after_array_bracket: #{value}. Valid values are: :dynamic, :always, :never")
101
148
  end
102
149
  end
103
150
 
@@ -121,6 +168,11 @@ class Rufo::Formatter
121
168
  @align_case_when = value
122
169
  end
123
170
 
171
+ # Whether to align chained calls to the dot (default: true)
172
+ def align_chained_calls(value)
173
+ @align_chained_calls = value
174
+ end
175
+
124
176
  # Preserve whitespace after assignments target and values,
125
177
  # after calls that start with a space, hash arrows and commas.
126
178
  #
@@ -133,11 +185,26 @@ class Rufo::Formatter
133
185
  @preserve_whitespace = value
134
186
  end
135
187
 
188
+ # Whether to place commas at the end of a multi-line list
189
+ #
190
+ # * :dynamic: if there's a comma, keep it. If not, don't add it
191
+ # * :always: always put a comma (default)
192
+ # * :never: never put a comma
193
+ def trailing_commas(value)
194
+ case value
195
+ when :dynamic, :always, :never
196
+ @trailing_commas = value
197
+ else
198
+ raise ArgumentError.new("invalid value for trailing_commas: #{value}. Valid values are: :dynamic, :always, :never")
199
+ end
200
+ end
201
+
136
202
  def format
137
203
  visit @sexp
138
204
  consume_end
139
205
  write_line unless @last_was_newline
140
206
 
207
+ dedent_calls
141
208
  do_align_assignments if @align_assignments
142
209
  do_align_hash_keys if @align_hash_keys
143
210
  do_align_case_when if @align_case_when
@@ -512,12 +579,18 @@ class Rufo::Formatter
512
579
  end
513
580
 
514
581
  def visit_string_literal_end(node)
582
+ line = @line
583
+
515
584
  inner = node[1]
516
585
  inner = inner[1..-1] unless node[0] == :xstring_literal
517
586
  visit_exps(inner, with_lines: false)
518
587
 
519
588
  case current_token_kind
520
589
  when :on_heredoc_end
590
+ (line+1..@line).each do |i|
591
+ @heredoc_lines[i] = true
592
+ end
593
+
521
594
  heredoc, tilde = @current_heredoc
522
595
  if heredoc && tilde
523
596
  write_indent
@@ -803,8 +876,8 @@ class Rufo::Formatter
803
876
  end
804
877
 
805
878
  def visit_call_with_receiver(node)
806
- # [:call, obj, :".", call]
807
- _, obj, text, call = node
879
+ # [:call, obj, :".", name]
880
+ _, obj, text, name = node
808
881
 
809
882
  @dot_column = nil
810
883
  visit obj
@@ -814,7 +887,13 @@ class Rufo::Formatter
814
887
  if newline? || comment?
815
888
  consume_end_of_line
816
889
 
817
- write_indent(@dot_column || next_indent)
890
+ if @align_chained_calls
891
+ @name_dot_column = @dot_column || next_indent
892
+ write_indent(@dot_column || next_indent)
893
+ else
894
+ @name_dot_column = next_indent
895
+ write_indent(next_indent)
896
+ end
818
897
  end
819
898
 
820
899
  # Remember dot column
@@ -830,10 +909,10 @@ class Rufo::Formatter
830
909
  skip_space_or_newline
831
910
  end
832
911
 
833
- if call == :call
912
+ if name == :call
834
913
  # :call means it's .()
835
914
  else
836
- visit call
915
+ visit name
837
916
  end
838
917
 
839
918
  # Only set it after we visit the call after the dot,
@@ -845,9 +924,7 @@ class Rufo::Formatter
845
924
  if current_token_kind == :on_op
846
925
  consume_token :on_op
847
926
  else
848
- check :on_period
849
- next_token
850
- write "."
927
+ consume_token :on_period
851
928
  end
852
929
  end
853
930
 
@@ -859,6 +936,7 @@ class Rufo::Formatter
859
936
  # [:arg_paren, [:args_add_block, [[:@int, "1", [1, 6]]], false]]]
860
937
  _, name, args = node
861
938
 
939
+ @name_dot_column = nil
862
940
  visit name
863
941
 
864
942
  # Some times a call comes without parens (should probably come as command, but well...)
@@ -866,8 +944,11 @@ class Rufo::Formatter
866
944
 
867
945
  # Remember dot column so it's not affected by args
868
946
  dot_column = @dot_column
947
+ want_indent = @name_dot_column && @name_dot_column > @indent
869
948
 
870
- visit_call_at_paren(node, args)
949
+ maybe_indent(want_indent, @name_dot_column) do
950
+ visit_call_at_paren(node, args)
951
+ end
871
952
 
872
953
  # Restore dot column so it's not affected by args
873
954
  @dot_column = dot_column
@@ -888,6 +969,9 @@ class Rufo::Formatter
888
969
  skip_space
889
970
 
890
971
  needs_trailing_newline = newline? || comment?
972
+ if needs_trailing_newline && (call_info = @line_to_call_info[@line])
973
+ call_info << true
974
+ end
891
975
 
892
976
  push_call(node) do
893
977
  visit args_node
@@ -898,7 +982,8 @@ class Rufo::Formatter
898
982
 
899
983
  if found_comma
900
984
  if needs_trailing_newline
901
- write ","
985
+ write "," if @trailing_commas != :never
986
+
902
987
  next_token
903
988
  indent(next_indent) do
904
989
  consume_end_of_line
@@ -912,7 +997,7 @@ class Rufo::Formatter
912
997
 
913
998
  if newline? || comment?
914
999
  if needs_trailing_newline
915
- write "," unless found_comma
1000
+ write "," if @trailing_commas == :always
916
1001
 
917
1002
  indent(next_indent) do
918
1003
  consume_end_of_line
@@ -923,7 +1008,7 @@ class Rufo::Formatter
923
1008
  end
924
1009
  else
925
1010
  if needs_trailing_newline && !found_comma
926
- write ","
1011
+ write "," if @trailing_commas == :always
927
1012
  consume_end_of_line
928
1013
  write_indent
929
1014
  end
@@ -932,6 +1017,8 @@ class Rufo::Formatter
932
1017
  skip_space_or_newline
933
1018
  end
934
1019
 
1020
+ call_info << @line if call_info
1021
+
935
1022
  consume_token :on_rparen
936
1023
  end
937
1024
 
@@ -1044,6 +1131,14 @@ class Rufo::Formatter
1044
1131
  end
1045
1132
  end
1046
1133
 
1134
+ call_info = @line_to_call_info[@line]
1135
+ if call_info
1136
+ call_info = nil
1137
+ else
1138
+ call_info = [@indent, @column]
1139
+ @line_to_call_info[@line] = call_info
1140
+ end
1141
+
1047
1142
  indent(needed_indent) do
1048
1143
  if args[0].is_a?(Symbol)
1049
1144
  visit args
@@ -1051,6 +1146,10 @@ class Rufo::Formatter
1051
1146
  visit_exps args, with_lines: false
1052
1147
  end
1053
1148
  end
1149
+
1150
+ if call_info && call_info.size > 2
1151
+ call_info << @line
1152
+ end
1054
1153
  end
1055
1154
 
1056
1155
  def visit_call_with_block(node)
@@ -1095,8 +1194,16 @@ class Rufo::Formatter
1095
1194
  # Otherwise it's multiline
1096
1195
  consume_token :on_lbrace
1097
1196
  consume_block_args args
1197
+
1198
+ if call_info = @line_to_call_info[@line]
1199
+ call_info << true
1200
+ end
1201
+
1098
1202
  indent_body body
1099
1203
  write_indent
1204
+
1205
+ call_info << @line if call_info
1206
+
1100
1207
  consume_token :on_rbrace
1101
1208
  end
1102
1209
 
@@ -1312,27 +1419,28 @@ class Rufo::Formatter
1312
1419
  # ]
1313
1420
  _, args = node
1314
1421
 
1422
+ # For :mlsh_paren, sometimes a paren comes,
1423
+ # some times not, so act accordingly.
1424
+ has_paren = current_token_kind == :on_lparen
1425
+ if has_paren
1426
+ consume_token :on_lparen
1427
+ skip_space_or_newline
1428
+ end
1429
+
1315
1430
  # For some reason there's nested :mlhs_paren for
1316
1431
  # a single parentheses. It seems when there's
1317
1432
  # a nested array we need parens, otherwise we
1318
1433
  # just output whatever's inside `args`.
1319
1434
  if args.is_a?(Array) && args[0].is_a?(Array)
1320
- check :on_lparen
1321
- write "("
1322
- next_token
1323
- skip_space_or_newline
1324
-
1325
1435
  indent(@column) do
1326
1436
  visit_comma_separated_list args
1327
1437
  skip_space_or_newline
1328
1438
  end
1329
-
1330
- check :on_rparen
1331
- write ")"
1332
- next_token
1333
1439
  else
1334
1440
  visit args
1335
1441
  end
1442
+
1443
+ consume_token :on_rparen if has_paren
1336
1444
  end
1337
1445
 
1338
1446
  def visit_mrhs_add_star(node)
@@ -1687,21 +1795,21 @@ class Rufo::Formatter
1687
1795
  # ( exps )
1688
1796
  #
1689
1797
  # [:paren, exps]
1690
- check :on_lparen
1691
- write "("
1692
- next_token
1798
+ _, exps = node
1799
+
1800
+ consume_token :on_lparen
1693
1801
  skip_space_or_newline
1694
1802
 
1695
- if node[1][0].is_a?(Symbol)
1696
- visit node[1]
1697
- else
1698
- visit_exps node[1], with_lines: false
1803
+ if exps
1804
+ if exps[0].is_a?(Symbol)
1805
+ visit exps
1806
+ else
1807
+ visit_exps exps, with_lines: false
1808
+ end
1699
1809
  end
1700
1810
 
1701
1811
  skip_space_or_newline
1702
- check :on_rparen
1703
- write ")"
1704
- next_token
1812
+ consume_token :on_rparen
1705
1813
  end
1706
1814
 
1707
1815
  def visit_params(node)
@@ -1833,7 +1941,7 @@ class Rufo::Formatter
1833
1941
  visit elements
1834
1942
  skip_space_or_newline
1835
1943
  else
1836
- visit_literal_elements elements
1944
+ visit_literal_elements elements, inside_array: true
1837
1945
  end
1838
1946
  else
1839
1947
  skip_space_or_newline
@@ -1853,6 +1961,7 @@ class Rufo::Formatter
1853
1961
  elements = elements.flat_map { |x| x }
1854
1962
  end
1855
1963
 
1964
+ has_space = current_token_value.end_with?(" ")
1856
1965
  write current_token_value.strip
1857
1966
 
1858
1967
  # If there's a newline after `%w(`, write line and indent
@@ -1863,7 +1972,9 @@ class Rufo::Formatter
1863
1972
 
1864
1973
  next_token
1865
1974
 
1866
- if elements
1975
+ if elements && !elements.empty?
1976
+ write_space if has_space
1977
+
1867
1978
  elements.each_with_index do |elem, i|
1868
1979
  if elem[0] == :@tstring_content
1869
1980
  # elem is [:@tstring_content, string, [1, 5]
@@ -1903,6 +2014,8 @@ class Rufo::Formatter
1903
2014
  if has_newline
1904
2015
  write_line
1905
2016
  write_indent
2017
+ elsif has_space && elements && !elements.empty?
2018
+ write_space
1906
2019
  end
1907
2020
 
1908
2021
  if last_token
@@ -2277,16 +2390,27 @@ class Rufo::Formatter
2277
2390
  visit_comma_separated_list exps
2278
2391
  end
2279
2392
 
2280
- def visit_literal_elements(elements, inside_hash: false)
2393
+ def visit_literal_elements(elements, inside_hash: false, inside_array: false)
2281
2394
  base_column = @column
2282
- needs_final_space = inside_hash && space?
2395
+ needs_final_space = (inside_hash || inside_array) && space?
2283
2396
  skip_space
2284
2397
 
2285
- case @space_after_hash_brace
2286
- when :never
2287
- needs_final_space = false
2288
- when :always
2289
- needs_final_space = true
2398
+ if inside_hash
2399
+ case @space_after_hash_brace
2400
+ when :never
2401
+ needs_final_space = false
2402
+ when :always
2403
+ needs_final_space = true
2404
+ end
2405
+ end
2406
+
2407
+ if inside_array
2408
+ case @space_after_array_bracket
2409
+ when :never
2410
+ needs_final_space = false
2411
+ when :always
2412
+ needs_final_space = true
2413
+ end
2290
2414
  end
2291
2415
 
2292
2416
  if newline? || comment?
@@ -2301,6 +2425,10 @@ class Rufo::Formatter
2301
2425
  # add a trailing comma to the last element
2302
2426
  needs_trailing_comma = newline? || comment?
2303
2427
  if needs_trailing_comma
2428
+ if (call_info = @line_to_call_info[@line])
2429
+ call_info << true
2430
+ end
2431
+
2304
2432
  needed_indent = next_indent
2305
2433
  indent { consume_end_of_line }
2306
2434
  write_indent(needed_indent)
@@ -2309,10 +2437,12 @@ class Rufo::Formatter
2309
2437
  end
2310
2438
 
2311
2439
  wrote_comma = false
2440
+ last_has_comma = false
2312
2441
 
2313
2442
  elements.each_with_index do |elem, i|
2314
2443
  is_last = last?(i, elements)
2315
2444
  wrote_comma = false
2445
+ last_has_comma = false
2316
2446
 
2317
2447
  if needs_trailing_comma
2318
2448
  indent(needed_indent) { visit elem }
@@ -2327,6 +2457,8 @@ class Rufo::Formatter
2327
2457
 
2328
2458
  next unless comma?
2329
2459
 
2460
+ last_has_comma = true
2461
+
2330
2462
  unless is_last
2331
2463
  write ","
2332
2464
  wrote_comma = true
@@ -2351,7 +2483,14 @@ class Rufo::Formatter
2351
2483
  end
2352
2484
 
2353
2485
  if needs_trailing_comma
2354
- write "," unless wrote_comma
2486
+ case @trailing_commas
2487
+ when :always
2488
+ write "," unless wrote_comma
2489
+ when :never
2490
+ # Nothing
2491
+ when :dynamic
2492
+ write "," if last_has_comma && !wrote_comma
2493
+ end
2355
2494
 
2356
2495
  consume_end_of_line
2357
2496
  write_indent
@@ -2364,6 +2503,8 @@ class Rufo::Formatter
2364
2503
  skip_space_or_newline
2365
2504
  end
2366
2505
  end
2506
+
2507
+ call_info << @line if call_info
2367
2508
  end
2368
2509
 
2369
2510
  def check_heredocs_in_literal_elements(is_last, needs_trailing_comma, wrote_comma)
@@ -2904,7 +3045,7 @@ class Rufo::Formatter
2904
3045
 
2905
3046
  def write_space(value = " ")
2906
3047
  @output << value
2907
- @column += 1
3048
+ @column += value.size
2908
3049
  end
2909
3050
 
2910
3051
  def write_line
@@ -3083,6 +3224,34 @@ class Rufo::Formatter
3083
3224
  @current_hash = old_hash
3084
3225
  end
3085
3226
 
3227
+ def dedent_calls
3228
+ return if @line_to_call_info.empty?
3229
+
3230
+ lines = @output.lines
3231
+
3232
+ while line_to_call_info = @line_to_call_info.shift
3233
+ first_line, call_info = line_to_call_info
3234
+ indent, first_param_indent, needs_dedent, first_paren_end_line, last_line = call_info
3235
+ next unless needs_dedent
3236
+ next unless first_paren_end_line == last_line
3237
+
3238
+ diff = first_param_indent - indent
3239
+ (first_line+1..last_line).each do |line|
3240
+ @line_to_call_info.delete(line)
3241
+
3242
+ next if @heredoc_lines[line]
3243
+
3244
+ current_line = lines[line]
3245
+ current_line = current_line[diff..-1]
3246
+ lines[line] = current_line
3247
+
3248
+ adjust_other_alignments nil, line, 0, -diff
3249
+ end
3250
+ end
3251
+
3252
+ @output = lines.join
3253
+ end
3254
+
3086
3255
  def do_align_comments
3087
3256
  do_align @comments_positions, :comment
3088
3257
  end
@@ -1,3 +1,3 @@
1
1
  module Rufo
2
- VERSION = "0.0.25"
2
+ VERSION = "0.0.26"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rufo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ary Borenszweig
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-26 00:00:00.000000000 Z
11
+ date: 2017-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler