{"action":"created","issue":{"url":"https://api.github.com/repos/universal-ctags/ctags/issues/408","labels_url":"https://api.github.com/repos/universal-ctags/ctags/issues/408/labels{/name}","comments_url":"https://api.github.com/repos/universal-ctags/ctags/issues/408/comments","events_url":"https://api.github.com/repos/universal-ctags/ctags/issues/408/events","html_url":"https://github.com/universal-ctags/ctags/issues/408","id":92221939,"number":408,"title":"Ruby Parser Improvements","user":{"login":"jfelchner","id":285582,"avatar_url":"https://avatars.githubusercontent.com/u/285582?v=3","gravatar_id":"","url":"https://api.github.com/users/jfelchner","html_url":"https://github.com/jfelchner","followers_url":"https://api.github.com/users/jfelchner/followers","following_url":"https://api.github.com/users/jfelchner/following{/other_user}","gists_url":"https://api.github.com/users/jfelchner/gists{/gist_id}","starred_url":"https://api.github.com/users/jfelchner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfelchner/subscriptions","organizations_url":"https://api.github.com/users/jfelchner/orgs","repos_url":"https://api.github.com/users/jfelchner/repos","events_url":"https://api.github.com/users/jfelchner/events{/privacy}","received_events_url":"https://api.github.com/users/jfelchner/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":18,"created_at":"2015-06-30T23:10:32Z","updated_at":"2015-07-31T04:05:23Z","closed_at":null,"body":"Here are some improvements that, based on the way Ruby files are parsed, could be added to the parser:\r\n\r\n#### Camel-Cased Constants\r\n\r\n```ruby\r\nclass Foo\r\n  THIS_IS_MY_CONSTANT = 3\r\nend\r\n```\r\n\r\nShould create entries for variable:\r\n\r\n* `THIS_IS_MY_CONSTANT`\r\n\r\n#### attr_* methods\r\n\r\n```ruby\r\nclass Foo\r\n  attr_accessor :bar\r\n  attr_reader :baz\r\n  attr_writer :qux\r\nend\r\n```\r\n\r\nShould create entries for methods:\r\n\r\n* `bar`\r\n* `bar=`\r\n* `baz`\r\n* `qux=`\r\n\r\n#### Alias Method\r\n\r\n```ruby\r\nclass Foo\r\n  def bar\r\n  end\r\n\r\n  alias_method :baz, :bar\r\nend\r\n```\r\n\r\nShould create entries for methods:\r\n\r\n* `baz`\r\n\r\n#### Basic Rails Parsing\r\n\r\nI don't think this is something to go crazy on, but there are some basic Rails-y things that people would expect.\r\n\r\n```ruby\r\nclass Foo < ActiveRecord::Base\r\n  has_many :bars\r\n  has_one :baz\r\n  belongs_to :qux\r\n\r\n  validates :buz\r\nend\r\n```\r\n\r\nShould create entries for properties/attributes:\r\n\r\n* `bars`\r\n* `bars=`\r\n* `baz`\r\n* `baz=`\r\n* `qux`\r\n* `qux=`\r\n* `buz`\r\n* `buz=`\r\n\r\nHope this helps."},"comment":{"url":"https://api.github.com/repos/universal-ctags/ctags/issues/comments/126561222","html_url":"https://github.com/universal-ctags/ctags/issues/408#issuecomment-126561222","issue_url":"https://api.github.com/repos/universal-ctags/ctags/issues/408","id":126561222,"user":{"login":"mislav","id":887,"avatar_url":"https://avatars.githubusercontent.com/u/887?v=3","gravatar_id":"","url":"https://api.github.com/users/mislav","html_url":"https://github.com/mislav","followers_url":"https://api.github.com/users/mislav/followers","following_url":"https://api.github.com/users/mislav/following{/other_user}","gists_url":"https://api.github.com/users/mislav/gists{/gist_id}","starred_url":"https://api.github.com/users/mislav/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mislav/subscriptions","organizations_url":"https://api.github.com/users/mislav/orgs","repos_url":"https://api.github.com/users/mislav/repos","events_url":"https://api.github.com/users/mislav/events{/privacy}","received_events_url":"https://api.github.com/users/mislav/received_events","type":"User","site_admin":true},"created_at":"2015-07-31T04:05:23Z","updated_at":"2015-07-31T04:05:23Z","body":"> contexts and constants are conflicted. Obviously constants are more important.\r\n\r\nYes, I suggested you drop the (broken) support for contexts and describes here https://github.com/universal-ctags/ctags/issues/453#issuecomment-124327142\r\n\r\n> However, an xcmd based alternative parser may be useful. For preparing it ctags has to translate F in ripper-tag output to !.\r\n\r\nWhat did you mean exactly by this last sentence? Isn't ripper-tags already xcmd compatible?\r\n"}}