- 05 Apr, 2020 3 commits
-
-
Troy Rosenberg authored
This is a bit of a cheat of a refactoring that simply extracts the logic for collecting a column's attributes out of `get_schema_info` and into its own method (`get_attributes`). I found that in PRs like #779 that the Rubocop ABC limit was being exceeded: ``` lib/annotate/annotate_models.rb:235:5: C: Metrics/AbcSize: Assignment Branch Condition size for get_schema_info is too high. [145/145] def get_schema_info(klass, header, options = {}) ... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``` Hopefully, this should break this up and reduce the complexity of the method. There are opportunities to go further, but I thought this could be a good place to start. I would be open and interested in discussing further refactoring opportunities if it would make sense (maybe creating some new classes to encapsulate some of this logic).
-
Shu Fujita authored
I noticed that `AnnotateRoutes` can be more maintainable by refactoring. I am planning to refactor `AnnotateRoutes` in this order. * separate logic of `AnnotateRoutes` into `AnnotateRoutes::HeaderGenerator`. * add methods to `AnnotateRoutes::HeaderGenerator` and refactor methods. * add `AnnotateRoutes::AnnotationProcessor` and `AnnotateRoutes::RemovalProcessor` The final goal of this refactoring is as follows. * https://github.com/nard-tech/annotate_models/blob/feature/refactor_annotate_routes/processors/lib/annotate/annotate_routes.rb * https://github.com/nard-tech/annotate_models/tree/feature/refactor_annotate_routes/processors/lib/annotate/annotate_routes So in the first I added `AnnotateRoutes::HeaderGenerator` in order to separate logic of `AnnotateRoutes` in this PR. When refactor of `AnnotateRoutes` is finished, I would like to refactor `AnnotateModels` in a like way.
-
Erik Kessler authored
## Problem I have some files in the "models" directory that are not true a `Class`. For example, a [`dry-types`](https://dry-rb.org/gems/dry-types/1.2/sum/) sum type: ```ruby # app/models/foo.rb Foo = Types::String | Types::Integer ``` This results in the following line when I annotate. ``` Unable to annotate app/models/foo.rb: undefined method `<' for #<Dry::Struct::Sum:0x00007ff2dd262988> ``` Not a blocking issue but somewhat annoying nonetheless. ## Solution When annotating a file, check that the file's object is a `Class` to ensure it has the interface we expect.
-
- 09 Mar, 2020 1 commit
-
-
Andrew W. Lee authored
-
- 08 Mar, 2020 2 commits
-
-
Shu Fujita authored
For further refactoring toward better architecture, I moved methods `.strip_annotations`, `.extract_magic_comments_from_array` and `.real_content_and_header_position` from `AnnotateRoutes` to `AnnotateRoutes::Helpers`.
-
Andrew W. Lee authored
It was reported in https://github.com/ctran/annotate_models/issues/762 that column defaults were broken. This reverts changes made in #677 to restore the expected behavior of column defaults. For the time being columns with associated enums won't be working.
-
- 22 Feb, 2020 1 commit
-
-
Henrik Nyh authored
-
- 20 Feb, 2020 1 commit
-
-
Andrew W. Lee authored
-
- 17 Feb, 2020 1 commit
-
-
Ryan authored
* Fix new lines after comments for rubocop compatability Fix #552, #607
-
- 13 Feb, 2020 1 commit
-
-
Ryan authored
-
- 27 Jan, 2020 2 commits
-
-
Shu Fujita authored
# Summary * Removed unnecessary variables * Renamed variables that have same name as reserved word (`p`) * Other tiny fixes
-
Shu Fujita authored
I fixed message to make them more natural English.
-
- 24 Jan, 2020 1 commit
-
-
tvallois authored
The scope of this pull request is to allow annotate_models to generate models documentation using YARD. This is the first step, I'll add more features later.
-
- 22 Jan, 2020 1 commit
-
-
Manuel Hoffmann authored
-
- 20 Jan, 2020 3 commits
-
-
Shu Fujita authored
I moved `puts` from `AnnotateRoutes.rewrite_contents` to `.do_annotations` and `.remove_annotations`.
-
Shu Fujita authored
I removed `AnnotateRoutes.rewrite_contents_with_header` because the logic of `AnnotateRoutes.rewrite_contents_with_header` is as same as `.rewrite_contents`.
-
Peter Gundel authored
* Add columns managed by Globalize gem Globalize hooks into the model and removes the translated columns from the `klass.columns`. This commit checks if globalize is hooked into the model and adds the necessary columns to the annotation array. * Disable Rubocop Metrics/BlockLength for spec files RSpec spec files can contain long blocks easily because of the outher describe methods. So this rule makes not too much sense for these files.
-
- 19 Jan, 2020 3 commits
-
-
Shu Fujita authored
I refactored `AnnotateRoutes.annotate_routes` and `.rewrite_contents_with_header` in order to add an empty string to `new_content` array in `.annotate_routes`. I will refactor `.rewrite_contents_with_header` more, and remove `. rewrite_contents_with_header` in the next PR.
-
Shu Fujita authored
# Summary * I replaced `#blank?` of ActiveSupport to `#present?` * I moved `AnnotateModels::Parser#commit` after `#parser ` because `#commit` is used after `#parser` in `#parse`.
-
Shu Fujita authored
I removed invalid document of AnnotateRoutes.rewrite_contents. I will add valid documents in YARD format in another PR.
-
- 18 Jan, 2020 2 commits
-
-
Shu Fujita authored
I refactored two methods in AnnotateModels::Helpers for readability.
-
Shu Fujita authored
I refactored `AnnotateRoutes.routes_exists?` and methods using this. The points are as follows. * Removing `puts` in `AnnotateRoutes.routes_exists?` * Using `File.exist?` instead of `File.exists?` because `File.exists?` is deprecated * Renaming `AnnotateRoutes.routes_exists?` to `AnnotateRoutes.routes_file_exists?` in order to make the name of method more explanatory
-
- 16 Jan, 2020 4 commits
-
-
Shu Fujita authored
* Refactor AnnotateRoutes.rewrite_contents and .remove_annotations * Refactor AnnotateRoutes.remove_annotations and .strip_on_removal
-
Shu Fujita authored
* Remove Annotate.#loaded_tasks= and .loaded_tasks * Remove unnecessary comment for Rubocop * Make Annotate.load_requires private * Refactor Annotate.load_tasks
-
Shu Fujita authored
-
Shu Fujita authored
-
- 15 Jan, 2020 3 commits
-
-
Shu Fujita authored
I refactored `AnnotateRoutes.header` for performance, and add `AnnotateRoutes.comment` to make code DRY.
-
Shu Fujita authored
As the change log shows, I froze the constant `HEADER_ROW` in accordance with the normal Ruby style regulation.
-
Shu Fujita authored
I added `AnnotateModels::MAGIC_COMMENT_MATCHER` and `AnnotateRoutes::MAGIC_COMMENT_MATCHER` instad of `AnnotateModels.magic_comment_matcher` and `AnnotateRoutes.magic_comment_matcher`. I think that they should be constants because the result of Regexp is always fixed.
-
- 06 Jan, 2020 1 commit
-
-
Shu Fujita authored
Before I commited, the method `AnnotateRoutes.where_header_found` returned an array of `real_content` and `header_found_at`. I fixed the name of method and variable because they did not match. I renamed the method `real_content_and_header_position` and unified related variable names to `header_position`.
-
- 30 Dec, 2019 1 commit
-
-
Andrew W. Lee authored
This change converts .all_options into a constant and moves it into Annotate::Constants. It also changes usages of .all_options.
-
- 18 Dec, 2019 3 commits
-
-
naari3 authored
Replace soft-deprecated constant `HashWithIndifferentAccess` to `ActiveSupport::HashWithIndifferentAccess` (#699)
-
Alexander Belozerov authored
-
inkstak authored
Same problem returned by @janosrusiczki in #430 Spatial columns with activerecord-postgis-adapter (5.2.2) are not displayed nice ``` # name :string(3) # active :boolean default(FALSE), not null # geom :geometry({:srid= geometry, 4326 ``` That's come from activerecord-postgis-adapter, with redefined columns as such : ``` #<ActiveRecord::ConnectionAdapters::PostGIS::SpatialColumn @sql_type="geometry(Geometry,4326)", @geo_type="Geometry", @geometric_type=RGeo::Feature::Geometry, @srid=4326, @limit={:srid=>4326, :type=>"geometry"} [...] > ``` This fix displays them like this : ``` # name :string(3) # active :boolean default(FALSE), not null # geometry :geometry geometry, 4326 ``` Another possibility would have been to display them as below, but it involves a lot of extra-spaces for other columns. ``` # name :string(3) # active :boolean default(FALSE), not null # geometry :geometry(Geometry, 4326) ```
-
- 02 Dec, 2019 2 commits
-
-
Daniel Rice authored
ActiveAdmin defaults to false. Add `active_admin` option so people using this gem can more easily enable annotating files in `app/admin`.
-
Hrvoje Šimić authored
Rails 6 has dropped name from ActiveRecord::ConnectionAdapters::ForeignKeyDefinition for Sqlite3 adapter: https://github.com/rails/rails/blob/f2df77709f7e536aaf4d6f984ff21a49d44d34c1/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb\#L305-L311 This has caused issues with getting foreign key info and blowing up when trying to annotate models with foreign keys. This commit adds one additional check for name presence and uses column attribute from options instead. Closes #620.
-
- 09 Nov, 2019 4 commits
-
-
Matías Orellana authored
-
Alexander Belozerov authored
-
Alexander Belozerov authored
-
Kyle Zhao authored
-