tech_radar 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/tech_radar/radar.rb +16 -2
  3. data/app/models/tech_radar/rendering/{Markdown.rb → markdown.rb} +0 -0
  4. data/app/models/tech_radar/rendering/{Plaintext.rb → plaintext.rb} +0 -0
  5. data/app/models/tech_radar/technology.rb +1 -1
  6. data/lib/tech_radar/version.rb +1 -1
  7. data/test/controllers/tech_radar/quadrants_controller_test.rb +1 -1
  8. data/test/controllers/tech_radar/technologies_controller_test.rb +3 -3
  9. data/test/dummy/config/initializers/backtrace_silencers.rb +1 -1
  10. data/test/dummy/config/tech-radar.yml +16 -0
  11. data/test/dummy/log/test.log +1153 -0
  12. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0A/0AmQlwadiESqLiDbBHv-cz90lvlFaU4kIrkiTBW20kw.cache +0 -0
  13. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0E/0EXotS98AUY4txQLF_Pi-Q1J_WafL2GD_m_aZtcEhig.cache +0 -0
  14. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +2 -0
  15. data/test/dummy/tmp/cache/assets/sprockets/v3.0/71/71nL6PEO61Wyxg_1MewpQNraz__WvOrOx2btzM1FNTc.cache +1 -0
  16. data/test/dummy/tmp/cache/assets/sprockets/v3.0/86/86B5GM_SNnhkkYQkhVa0bFW2VuexkKM4OPuNyM3qYUQ.cache +2 -0
  17. data/test/dummy/tmp/cache/assets/sprockets/v3.0/A_/A_IV6Bpacf1PZoy42TB4Z3KuW1-MVzSNi8EJl4KHZes.cache +1 -0
  18. data/test/dummy/tmp/cache/assets/sprockets/v3.0/B6/B6z4VaDCuYMIV4QKzAxh1rXOR5k131kRbdjvSBNntjA.cache +1 -0
  19. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BT/BTYBzzE3HQYx4aAYP2UYFnHHWgiRlsD9MrlHu5eaFdg.cache +0 -0
  20. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BV/BVcivzW-wmUYbgmMWJ2Ah97ai-XwSaJAtcC8NrHzmNg.cache +0 -0
  21. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ex/ExmO5_Val1Y7VJGCSLFP1wx8iANj0Wirfm6PhW_PJRM.cache +2 -0
  22. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FF/FFt-jwCHyJIUJ2ThHpELuMkMeoOe717eQRNboZTTBMk.cache +0 -0
  23. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GK/GKX8C94_byxdvSgDsJJ8RiEHn_6SO2qSE1wKFkY7RaU.cache +1 -0
  24. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KV/KVUcCu-OyCM6GXenLaFx3Ad4RDvz5cLOhVGKQPdvMHU.cache +1 -0
  25. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LW/LWqhrEYdgeo3nFa-9SS7aFLFL8IiRKbiPPmTcCoXnXg.cache +0 -0
  26. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MD/MD3DPhlAqRfE1DLXhbJAKDTKQkW6UDGWmphRtQ29IZI.cache +1 -0
  27. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +2 -0
  28. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Os/OsyjR9AxH7M4NFnoCjXJ2_jXvJYW3A3vcEXS8_AU5w4.cache +1 -0
  29. data/test/dummy/tmp/cache/assets/sprockets/v3.0/X1/X17E_hQiWRCM38iR5NTruI8CqF3BdEXj0jxQ0OMYmZM.cache +2 -0
  30. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Y7/Y7UQ3LFBHK78LKJjKhfRsL2wfXaOmzva98lV1-ShZP8.cache +1 -0
  31. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fH/fHwKShI5Bs3QjMegUT6NEeNi0MNJXWf1zElliAGdASs.cache +0 -0
  32. data/test/dummy/tmp/cache/assets/sprockets/v3.0/h7/h7m5UncXch3Mj2UCRWJfDkxs-he6I3r2dfrpxuXPpL4.cache +1 -0
  33. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hZ/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +2 -0
  34. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jJ/jJn-pTmcRn_vvQB0XmCX5fVauT4zqDxQvAqjXYrPI_k.cache +0 -0
  35. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kf/kfWPU-CVtbbzGwehZ2_4SJ1bMYFXf-Kua_p79T0ikOc.cache +1 -0
  36. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oM/oMLu_HcRTjb8KAa6RU63BTz6o_UcZf5jRLTuY1dCDAA.cache +1 -0
  37. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pB/pB3TdWzGFh7SlhR0w5qtDsRp8RXIIenyOBez58_rObA.cache +1 -0
  38. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pE/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +2 -0
  39. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ta/taD2ZeM2EDxF-4ljz0YnKpYrdzNwIie29Aatzzq3aTU.cache +0 -0
  40. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vX/vXA69MMItyuyxADK-8ttNpm6XvZ0Z3MYncLT6i2J2v4.cache +1 -0
  41. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xY/xYECPJKPtYeLPCk5SLDtk0_kQrKJKZ3ScIyUtdxvCPA.cache +0 -0
  42. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yo/yoPNbzmf4gdjZI-U7hTSEfh3ObRHdGTHrWnUsFHXknk.cache +0 -0
  43. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yr/yrUebpV2K9g51hXIPWF4R_oMhvWeKzNMFCe32WfjJZw.cache +1 -0
  44. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zA/zAH0wIR2ufw1oP14a_3Lf2mJG1XGX2lLBJHNrJp01rI.cache +2 -0
  45. data/test/models/tech_radar/radar_test.rb +19 -5
  46. metadata +71 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d2224cfe55718b943c46d7001d2884e773867693
4
- data.tar.gz: 949e643af847049217e923e36380378f3c48d8ec
3
+ metadata.gz: 7e111da0bd6f0b8fb8a64f58695c680cf39012de
4
+ data.tar.gz: b0718462b290d0e5a53e6175a42178e3363e59aa
5
5
  SHA512:
6
- metadata.gz: b3655f6edf9ac5728cd07804fb1522b4db332c3a51235ba81b8b2c85cc2d49f9bb3b56fdb563c409c30919bba63aac8c986ec8577c1554b960f7a8aada981952
7
- data.tar.gz: 05ee0a4a06a686d2babc1c0412e93bce90d917c55541cff00aacacd88adb8c210a62d9f13fe6710008d71777ecaa830a662ec2af1b710623265d84190a7080a3
6
+ metadata.gz: f5167433bc2c99ced3066d2ec73b9914f7b9e13c4e9e4c694e36eac0a4dd64e902bcbf9391c3c29923087174aa8eea3a91969c619890350e4e9ecfad629b737a
7
+ data.tar.gz: eb4f68766bb3c16fd78fba39f0380c96dd6cd5f601b021c39af85010dffb2aa300efa0fa47d3753680e00632047214e62e15323b5640ecb8ff208650efb03449
@@ -24,6 +24,9 @@ module TechRadar
24
24
  more_details_url: data["more_details_url"],
25
25
  more_details_summary: data["more_details_summary"],
26
26
  why_url: data["why_url"],
27
+ tags: Array(data["tags"]).sort,
28
+ experts: Array(data["experts"]).sort,
29
+ examples: Array(data["examples"]).sort,
27
30
  why_summary: data["why_summary"])
28
31
  end
29
32
  end
@@ -45,8 +48,19 @@ module TechRadar
45
48
  rings.detect { |ring| ring.name == ring_name }
46
49
  end
47
50
 
48
- def technologies
49
- quadrants.map(&:rings).flatten.map(&:technologies).flatten.sort_by { |technology| technology.name.downcase }
51
+ def technologies(options = {})
52
+ results = quadrants.
53
+ map(&:rings).
54
+ flatten.
55
+ map(&:technologies).
56
+ flatten
57
+
58
+ if options[:tagged]
59
+ results = results.select { |technology|
60
+ technology.tags.include?(options[:tagged])
61
+ }
62
+ end
63
+ results.sort_by { |technology| technology.name.downcase }
50
64
  end
51
65
 
52
66
  def technology(name)
@@ -2,4 +2,4 @@ require 'immutable-struct'
2
2
 
3
3
  module TechRadar
4
4
  end
5
- TechRadar::Technology = ImmutableStruct.new(:name, :ring, :quadrant, :purpose, :why_summary, :why_url, :more_details_summary, :more_details_url)
5
+ TechRadar::Technology = ImmutableStruct.new(:name, :ring, :quadrant, :purpose, :why_summary, :why_url, :more_details_summary, :more_details_url, [:tags], [:experts], [:examples])
@@ -1,3 +1,3 @@
1
1
  module TechRadar
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -7,7 +7,7 @@ module TechRadar
7
7
  end
8
8
 
9
9
  test "show" do
10
- get :show, id: "Tools"
10
+ get :show, params: { id: "Tools" }
11
11
  assert_response :success
12
12
  assert response.body =~ /RabbitMQ.*Resque.*ElasticSearch.*HumbleKit.*Redis as a database.*Sidekiq.*JIRA.*SwiftTask/m,
13
13
  "Expected #{response.body} to contain all 'Tools' technologies, ordered by ring, then name"
@@ -36,14 +36,14 @@ module TechRadar
36
36
  end
37
37
 
38
38
  test "show with no more_details_url or more_details_summary" do
39
- get :show, id: "RabbitMQ"
39
+ get :show, params: { id: "RabbitMQ" }
40
40
  assert_response :success
41
41
  assert response.body.include?("RabbitMQ"),"Expected #{response.body} to include 'RabbitMQ'"
42
42
  assert response.body.include?("Google"),"Expected #{response.body} to include a link to a Google search"
43
43
  end
44
44
 
45
45
  test "show with no more_details_url but has a more_details_summary" do
46
- get :show, id: "Ruby"
46
+ get :show, params: { id: "Ruby" }
47
47
  assert_response :success
48
48
  assert response.body.include?("Ruby"),"Expected #{response.body} to include 'Ruby'"
49
49
  refute response.body.include?("Google"),"Expected #{response.body} NOT to include a link to a Google search"
@@ -51,7 +51,7 @@ module TechRadar
51
51
  end
52
52
 
53
53
  test "show with more_details_url" do
54
- get :show, id: "Resque"
54
+ get :show, params: { id: "Resque" }
55
55
  assert_response :success
56
56
  assert response.body.include?("Resque"),"Expected #{response.body} to include 'Resque'"
57
57
  refute response.body.include?("Google"),"Expected #{response.body} NOT to include a link to a Google search"
@@ -4,4 +4,4 @@
4
4
  # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
5
 
6
6
  # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
- # Rails.backtrace_cleaner.remove_silencers!
7
+ Rails.backtrace_cleaner.remove_silencers!
@@ -3,6 +3,9 @@
3
3
  Resque:
4
4
  purpose: "Background Jobs"
5
5
  more_details_url: https://github.com/resque/resque/tree/1-x-stable
6
+ tags:
7
+ - background jobs
8
+ - middleware
6
9
  RabbitMQ:
7
10
  purpose: "Messaging"
8
11
  "Trial":
@@ -36,6 +39,8 @@
36
39
  Heroku:
37
40
  purpose: "Infrastructure"
38
41
  more_details_url:
42
+ tags:
43
+ - middleware
39
44
  "Trial":
40
45
  iOS:
41
46
  purpose: "Mobile Application Development"
@@ -77,6 +82,17 @@
77
82
  purpose: Middleware Programming
78
83
  more_details_url: https://www.ruby-lang.org/en/
79
84
  more_details_summary: "Ruby is a dynamic, _object-oriented_ programming language that combines ideas from Smalltalk, Perl, and others"
85
+ tags:
86
+ - middleware
87
+ - scripting
88
+ - cli
89
+ examples:
90
+ - http://rubyonrails.org
91
+ - http://github.com/stitchfix/stitches
92
+ experts:
93
+ - Matz
94
+ - Tenderlove
95
+ - DHH
80
96
  "Trial":
81
97
  CoffeeScript:
82
98
  purpose: Browser Programming