"If S is a subtype of T, then objects of type S should be able to replace objects of type T without altering desireable properties of the program"
=====
Goals of SOLID:
- Address problems of rotting design
- Rigidity
- small changes take a long time
"If S is a subtype of T, then objects of type S should be able to replace objects of type T without altering desireable properties of the program"
=====
Goals of SOLID:
# I ran "rvm update 1.8.7-p334 1.8.7-p352" and started encountering | |
# some errors with certain executables. Below I demonstrate how | |
# some gem executables work and some don't | |
$ rake | |
bash: /home/eric/.rvm/gems/ruby-1.8.7-p352@ykiw/bin/rake: /home/eric/.rvm/rubies/ruby-1.8.7-p334/bin/ruby: bad interpreter: No such file or directory | |
# showing my rvm path for gems, replace with yours in the |
@ykiw-1.8.7 Eric-Ubuntu:~/Desktop/Dropbox/ykiw3 eric (master) $ rails s | |
/home/eric/.rvm/gems/ruby-1.8.7-p352@ykiw/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in `require': /home/eric/.rvm/gems/ruby-1.8.7-p352@ykiw/gems/texticle-2.0/lib/texticle.rb:44: syntax error, unexpected tIDENTIFIER, expecting tAMPER (SyntaxError) | |
__send__(method, *search_terms, exclusive) | |
^ | |
/home/eric/.rvm/gems/ruby-1.8.7-p352@ykiw/gems/texticle-2.0/lib/texticle.rb:72: undefined (?...) sequence: /^search_by_(?<columns>[_a-zA-Z]\w*)$/ | |
/home/eric/.rvm/gems/ruby-1.8.7-p352@ykiw/gems/texticle-2.0/lib/texticle.rb:80: undefined (?...) sequence: /^search_by_(?<columns>[_a-zA-Z]\w*)$/ | |
from /home/eric/.rvm/gems/ruby-1.8.7-p352@ykiw/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in `require' | |
from /home/eric/.rvm/gems/ruby-1.8.7-p352@ykiw/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in `each' | |
from /home/eric/.rvm/gems/ruby-1.8.7-p352@ykiw/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in `re |
undefined local variable or method `request' for #<ActionView::Helpers::FormBuilder:0x7fd39d2120f0> (ActionView::Template::Error) | |
/home/eric/.rvm/gems/ruby-1.8.7-p352@global/gems/rack-recaptcha-0.6.0/lib/rack/recaptcha/helpers.rb:37:in `recaptcha_tag' | |
./app/views/registrations/new.html.erb:19:in `_app_views_registrations_new_html_erb___1988303414_70273426200640_0' | |
/home/eric/.rvm/gems/ruby-1.8.7-p352@global/gems/actionpack-3.0.9/lib/action_view/helpers/capture_helper.rb:40:in `capture_without_haml' | |
/home/eric/.rvm/gems/ruby-1.8.7-p352@global/gems/actionpack-3.0.9/lib/action_view/helpers/capture_helper.rb:172:in `with_output_buffer_without_haml_xss' | |
/home/eric/.rvm/gems/ruby-1.8.7-p352@global/gems/haml-3.1.2/lib/haml/helpers/xss_mods.rb:109:in `with_output_buffer' | |
/home/eric/.rvm/gems/ruby-1.8.7-p352@global/gems/actionpack-3.0.9/lib/action_view/helpers/capture_helper.rb:40:in `capture_without_haml' | |
/home/eric/.rvm/gems/ruby-1.8.7-p352@global/gems/haml-3.1.2/lib/haml/he |
# the following line will cause this error in my controller | |
# @post = Post.includes(:user, :subtopic => :category).paginate(:page =>1, :order => 'categories.category_name ASC', :conditions => ["posts.flags_count < ?", Flag.flag_threshold]) | |
Hirb Error: PGError: ERROR: column posts.users.display_name does not exist | |
LINE 1: ...s_count" AS t0_r7, "posts"."popularity" AS t0_r8, "posts"."u... | |
^ | |
: SELECT "posts"."id" AS t0_r0, "posts"."post_content" AS t0_r1, "posts"."user_id" AS t0_r2, "posts"."subtopic_id" AS t0_r3, "posts"."created_at" AS t0_r4, "posts"."updated_at" AS t0_r5, "posts"."votes_count" AS t0_r6, "posts"."flags_count" AS t0_r7, "posts"."popularity" AS t0_r8, "posts"."users.display_name" AS t0_r9, "posts"."subtopics.name" AS t0_r10, "posts"."categories.category_name" AS t0_r11, "users"."id" AS t1_r0, "users"."email" AS t1_r1, "users"."encrypted_password" AS t1_r2, "users"."password_salt" AS t1_r3, "users"."reset_password_token" AS t1_r4, " |
extend_console 'rails3', defined?(ActiveSupport::Notifications), false do | |
$odd_or_even_queries = false | |
ActiveSupport::Notifications.subscribe('sql.active_record') do |*args| | |
$odd_or_even_queries = !$odd_or_even_queries | |
color = $odd_or_even_queries ? ANSI[:CYAN] : ANSI[:MAGENTA] | |
event = ActiveSupport::Notifications::Event.new(*args) | |
time = "%.1fms" % event.duration | |
name = event.payload[:name] | |
sql = event.payload[:sql].gsub("\n", " ").squeeze(" ") | |
puts " #{ANSI[:UNDERLINE]}#{color}#{name} (#{time})#{ANSI[:RESET]} #{sql}" |
1.9.2-p180@async-rails Eric-Ubuntu:~/Desktop/Dropbox/github-forks/rack-recaptcha eric (master) $ bundle show | |
Gems included by the bundle: | |
* bundler (1.0.15) | |
* fakeweb (1.3.0) | |
* json (1.5.3) | |
* rack (1.3.2) | |
* rack-recaptcha (0.6.2 9d1922d) | |
* rack-test (0.5.7) | |
* riot (0.12.4) | |
* rr (1.0.3) |
/home/eric/.rvm/gems/ruby-1.8.7-p299@rails3/gems/oa-facebook-0.2.3/lib/omniauth/strategies/facebook/view_helper.rb:4: /home/eric/.rvm/gems/ruby-1.8.7-p299@rails3/bundler/gems/omniauth-351cee1c2e9e/oa-oauth/lib/omniauth/strategies/oauth2/facebook.rb:48: odd number list for Hash (SyntaxError) | |
...ssion['access_token'], { mode: :query, param_name: 'access_t... | |
^ | |
/home/eric/.rvm/gems/ruby-1.8.7-p299@rails3/bundler/gems/omniauth-351cee1c2e9e/oa-oauth/lib/omniauth/strategies/oauth2/facebook.rb:48: syntax error, unexpected ':', expecting '}' | |
...ssion['access_token'], { mode: :query, param_name: 'access_t... | |
^ | |
/home/eric/.rvm/gems/ruby-1.8.7-p299@rails3/bundler/gems/omniauth-351cee1c2e9e/oa-oauth/lib/omniauth/strategies/oauth2/facebook.rb:48: syntax error, unexpected '}', expecting kEND | |
...y, param_name: 'access_token'} ) | |
^ | |
/home/eric/.rvm/gems/ruby-1.8.7-p299@rails3/bundler/gems/omniauth-351cee1c2e9e/oa-oauth/lib/omniauth/strate |
Started GET "/auth/facebook?perms=email,offline_access" for 127.0.0.1 at Fri Sep 23 19:10:06 -0700 2011 | |
Started GET "/auth/facebook/callback?code=AQCCccoRQU404n7X4IGJHX_PARNJcOzAZNKxgRi4XRUlmZocwRkfF_Eie3H1Ze415sEDfZWTOYLxeaBXPLLkIhiLHBtDs7CHi6RUfN0CMC9VY4pD-Mj9M0-9dAytaQyc6vUkeUmhgRtDlFE7yNwQmEJN__fIvetAIc9neeyGHTcjBg" for 127.0.0.1 at Fri Sep 23 19:10:07 -0700 2011 | |
Started GET "/auth/failure?message=invalid_credentials" for 127.0.0.1 at Fri Sep 23 19:10:07 -0700 2011 | |
Processing by AuthenticationsController#failure as HTML | |
Parameters: {"message"=>"invalid_credentials"} |
nodepad@0.1.0 /home/eric/Desktop/Dropbox/nodejs/nodepad2/nodepad | |
├─┬ connect-mongodb@1.0.0 | |
│ ├─┬ connect@1.5.1 | |
│ │ ├── mime@1.2.4 | |
│ │ └── qs@0.3.1 | |
│ └── mongodb@0.9.6-7 | |
├── connect-timeout@0.0.1 | |
├─┬ express@2.4.6 | |
│ ├── connect@1.7.1 | |
│ ├── mime@1.2.4 |