| @@ -1,28 +1,17 @@ |
| 1 | 1 | module Docs |
| 2 | 2 | class Javascript |
| 3 | 3 | class EntriesFilter < Docs::EntriesFilter |
| 4 | | − TYPES = %w(Array Boolean Date Function JSON Math Number Object RegExp String) |
| 5 | | − |
| 6 | | − ADDITIONAL_ENTRIES = { |
| 7 | | − 'operators/arithmetic_operators' => [ |
| 8 | | − %w(++ .2B.2B_.28Increment.29), |
| 9 | | − %w(-- --_.28Decrement.29) ], |
| 10 | | − 'operators/bitwise_operators' => [ |
| 11 | | − %w(& .26_(Bitwise_AND)), |
| 12 | | − %w(| .7C_(Bitwise_OR)), |
| 13 | | − %w(^ .5E_(Bitwise_XOR)), |
| 14 | | − %w(~ .7E_(Bitwise_NOT)), |
| 15 | | − %w(<< <<_(Left_shift)), |
| 16 | | − %w(>> >>_(Sign-propagating_right_shift)), |
| 17 | | − %w(>>> >>>_(Zero-fill_right_shift)) ]} |
| 4 | + TYPES = %w(Array Boolean Date Function Intl JSON Math Number Object RegExp String) |
| 5 | + INTL_OBJECTS = %w(Collator DateTimeFormat NumberFormat) |
| 18 | 6 | |
| 19 | 7 | def get_name |
| 20 | 8 | if slug.start_with? 'Global_Objects/' |
| 21 | 9 | name, method = *slug.sub('Global_Objects/', '').split('/') |
| 10 | + name.prepend 'Intl.' if INTL_OBJECTS.include?(name) |
| 22 | 11 | |
| 23 | 12 | if method |
| 24 | 13 | unless method == method.upcase || method == 'NaN' |
| 25 | | − method = method[0].downcase + method[1..-1] # e.g. Constructor => constructor |
| 14 | + method = method[0].downcase + method[1..-1] # e.g. Trim => trim |
| 26 | 15 | end |
| 27 | 16 | name << ".#{method}" |
| 28 | 17 | end |
| @@ -48,16 +37,26 @@ module Docs · 19 unmodified lines |
| 48 | 37 | object, method = *slug.sub('Global_Objects/', '').split('/') |
| 49 | 38 | if object.end_with? 'Error' |
| 50 | 39 | 'Errors' |
| 40 | + elsif INTL_OBJECTS.include?(object) |
| 41 | + 'Intl' |
| 51 | 42 | elsif method || TYPES.include?(object) |
| 52 | 43 | object |
| 53 | 44 | else |
| 54 | 45 | 'Global Objects' |
| 55 | 46 | end |
| 47 | + else |
| 48 | + 'Miscellaneous' |
| 56 | 49 | end |
| 57 | 50 | end |
| 58 | 51 | |
| 59 | | − def additional_entries |
| 60 | | − ADDITIONAL_ENTRIES[slug] || [] |
| 52 | + def include_default_entry? |
| 53 | + node = doc.at_css '.overheadIndicator' |
| 54 | + |
| 55 | + # Can't use :first-child because #doc is a DocumentFragment |
| 56 | + return true unless node && node.parent == doc && !node.previous_element |
| 57 | + |
| 58 | + !node.content.include?('not on a standards track') && |
| 59 | + !node.content.include?('removed from the Web') |
| 61 | 60 | end |
| 62 | 61 | end |
| 63 | 62 | end |