picky-client 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. data/bin/picky-client +14 -0
  2. data/lib/picky-client/generator.rb +180 -0
  3. data/sinatra_prototype/Gemfile +13 -0
  4. data/sinatra_prototype/app.rb +59 -0
  5. data/sinatra_prototype/book.rb +42 -0
  6. data/sinatra_prototype/config.ru +2 -0
  7. data/sinatra_prototype/images/picky.png +0 -0
  8. data/sinatra_prototype/javascripts/compiler.jar +0 -0
  9. data/sinatra_prototype/javascripts/generate_bundles +25 -0
  10. data/sinatra_prototype/javascripts/jquery-1.3.2.js +4376 -0
  11. data/sinatra_prototype/javascripts/jquery-1.4.3.min.js +166 -0
  12. data/sinatra_prototype/javascripts/jquery.scrollTo-1.4.2.js +215 -0
  13. data/sinatra_prototype/javascripts/jquery.timer.js +75 -0
  14. data/sinatra_prototype/javascripts/picky.addination.js +36 -0
  15. data/sinatra_prototype/javascripts/picky.allocation_renderer.js +291 -0
  16. data/sinatra_prototype/javascripts/picky.allocations_cloud.js +91 -0
  17. data/sinatra_prototype/javascripts/picky.backend.js +86 -0
  18. data/sinatra_prototype/javascripts/picky.client.js +62 -0
  19. data/sinatra_prototype/javascripts/picky.controller.js +107 -0
  20. data/sinatra_prototype/javascripts/picky.data.js +78 -0
  21. data/sinatra_prototype/javascripts/picky.extensions.js +15 -0
  22. data/sinatra_prototype/javascripts/picky.min.js +17 -0
  23. data/sinatra_prototype/javascripts/picky.results_renderer.js +103 -0
  24. data/sinatra_prototype/javascripts/picky.source.js.tar +0 -0
  25. data/sinatra_prototype/javascripts/picky.translations.js +50 -0
  26. data/sinatra_prototype/javascripts/picky.view.js +214 -0
  27. data/sinatra_prototype/library.csv +540 -0
  28. data/sinatra_prototype/stylesheets/stylesheet.css +175 -0
  29. data/sinatra_prototype/stylesheets/stylesheet.sass +216 -0
  30. data/sinatra_prototype/views/search.haml +107 -0
  31. data/spec/picky-client/generator_spec.rb +141 -0
  32. metadata +38 -6
@@ -0,0 +1,141 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ describe Picky::Client::Generator do
5
+
6
+ describe "main class" do
7
+ before(:each) do
8
+ @generator = Picky::Client::Generator.new
9
+ end
10
+
11
+ describe "generator_for_class" do
12
+ it "should return me a generator for the given class" do
13
+ @generator.generator_for_class(Picky::Client::Generator::Project, :identifier, :some_args).should be_kind_of(Picky::Client::Generator::Project)
14
+ end
15
+ end
16
+
17
+ describe "generator_for" do
18
+ it "should not raise if a generator is available" do
19
+ lambda { @generator.generator_for('sinatra', 'some_project') }.should_not raise_error
20
+ end
21
+ it "should raise if a generator is not available" do
22
+ lambda { @generator.generator_for('blarf', 'gnorf') }.should raise_error(Picky::Client::NoGeneratorException)
23
+ end
24
+ it "should return a generator if it is available" do
25
+ @generator.generator_for('sinatra', 'some_project').should be_kind_of(Picky::Client::Generator::Project)
26
+ end
27
+ end
28
+
29
+ describe "generate" do
30
+ it "should raise a NoGeneratorException if called with the wrong params" do
31
+ lambda { @generator.generate(['blarf', 'gnorf']) }.should raise_error(Picky::Client::NoGeneratorException)
32
+ end
33
+ it "should not raise on the right params" do
34
+ @generator.stub! :generator_for_class => stub(:generator, :generate => nil)
35
+
36
+ lambda { @generator.generate(['sinatra', 'some_project']) }.should_not raise_error
37
+ end
38
+ end
39
+ end
40
+
41
+ describe Picky::Client::Generator::Project do
42
+
43
+ before(:each) do
44
+ @generator = Picky::Client::Generator::Project.new :identifier, 'some_name', []
45
+ @generator.stub! :exclaim
46
+ end
47
+
48
+ context "after initialize" do
49
+ it "should have a prototype project basedir" do
50
+ lambda {
51
+ @generator.prototype_project_basedir
52
+ }.should_not raise_error
53
+ end
54
+ it "should have a name" do
55
+ @generator.name.should == 'some_name'
56
+ end
57
+ end
58
+
59
+ describe "prototype_project_basedir" do
60
+ it "should be the right basedir" do
61
+ @generator.prototype_project_basedir.should == File.expand_path('../../../identifier_prototype', __FILE__)
62
+ end
63
+ end
64
+
65
+ describe "generate" do
66
+ it "should do things in order" do
67
+ @generator.should_receive(:create_target_directory).once.ordered
68
+ @generator.should_receive(:copy_all_files).once.ordered
69
+
70
+ @generator.generate
71
+ end
72
+ end
73
+
74
+ describe "create_target_directory" do
75
+ context "file exists" do
76
+ before(:each) do
77
+ File.stub! :exists? => true
78
+ end
79
+ it "should just tell the user that" do
80
+ @generator.stub! :target_directory => :some_target_directory
81
+
82
+ @generator.should_receive(:exists).once.with :some_target_directory
83
+
84
+ @generator.create_target_directory
85
+ end
86
+ it "should not make the directory" do
87
+ FileUtils.should_receive(:mkdir).never
88
+
89
+ @generator.create_target_directory
90
+ end
91
+ end
92
+ context "file does not exist" do
93
+ before(:each) do
94
+ File.stub! :exists? => false
95
+ FileUtils.stub! :mkdir
96
+ end
97
+ it "should make the directory" do
98
+ @generator.stub! :target_directory => :some_target_directory
99
+
100
+ FileUtils.should_receive(:mkdir).once.with :some_target_directory
101
+
102
+ @generator.create_target_directory
103
+ end
104
+ it "should tell the user" do
105
+ @generator.stub! :target_directory => :some_target_directory
106
+
107
+ @generator.should_receive(:created).once.with :some_target_directory
108
+
109
+ @generator.create_target_directory
110
+ end
111
+ end
112
+ end
113
+
114
+ describe "target_filename_for" do
115
+ it "should return the right filename" do
116
+ @generator.stub! :target_directory => 'some_target_directory'
117
+
118
+ test_filename = File.expand_path 'some/file/name', @generator.prototype_project_basedir
119
+
120
+ @generator.target_filename_for(test_filename).should == 'some_target_directory/some/file/name'
121
+ end
122
+ end
123
+
124
+ describe "generate" do
125
+ it "should copy recursively" do
126
+ @generator.should_receive(:create_target_directory).once.with
127
+ @generator.should_receive(:copy_all_files).once.with
128
+
129
+ @generator.generate
130
+ end
131
+ end
132
+
133
+ describe "target_directory" do
134
+ it "should return the right dir name" do
135
+ @generator.target_directory.should == File.expand_path('../../../some_name', __FILE__)
136
+ end
137
+ end
138
+
139
+ end
140
+
141
+ end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 2
8
- - 4
9
- version: 0.2.4
7
+ - 3
8
+ - 0
9
+ version: 0.3.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Florian Hanke
@@ -15,7 +15,7 @@ bindir: bin
15
15
  cert_chain: []
16
16
 
17
17
  date: 2010-10-24 00:00:00 +02:00
18
- default_executable:
18
+ default_executable: picky-client
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: yajl-ruby
@@ -34,8 +34,8 @@ dependencies:
34
34
  version_requirements: *id001
35
35
  description:
36
36
  email: florian.hanke+picky-client@gmail.com
37
- executables: []
38
-
37
+ executables:
38
+ - picky-client
39
39
  extensions: []
40
40
 
41
41
  extra_rdoc_files:
@@ -43,12 +43,43 @@ extra_rdoc_files:
43
43
  files:
44
44
  - lib/picky-client/convenience.rb
45
45
  - lib/picky-client/engine.rb
46
+ - lib/picky-client/generator.rb
46
47
  - lib/picky-client/helper.rb
47
48
  - lib/picky-client.rb
49
+ - sinatra_prototype/app.rb
50
+ - sinatra_prototype/book.rb
51
+ - sinatra_prototype/config.ru
52
+ - sinatra_prototype/Gemfile
53
+ - sinatra_prototype/images/picky.png
54
+ - sinatra_prototype/javascripts/compiler.jar
55
+ - sinatra_prototype/javascripts/generate_bundles
56
+ - sinatra_prototype/javascripts/jquery-1.3.2.js
57
+ - sinatra_prototype/javascripts/jquery-1.4.3.min.js
58
+ - sinatra_prototype/javascripts/jquery.scrollTo-1.4.2.js
59
+ - sinatra_prototype/javascripts/jquery.timer.js
60
+ - sinatra_prototype/javascripts/picky.addination.js
61
+ - sinatra_prototype/javascripts/picky.allocation_renderer.js
62
+ - sinatra_prototype/javascripts/picky.allocations_cloud.js
63
+ - sinatra_prototype/javascripts/picky.backend.js
64
+ - sinatra_prototype/javascripts/picky.client.js
65
+ - sinatra_prototype/javascripts/picky.controller.js
66
+ - sinatra_prototype/javascripts/picky.data.js
67
+ - sinatra_prototype/javascripts/picky.extensions.js
68
+ - sinatra_prototype/javascripts/picky.min.js
69
+ - sinatra_prototype/javascripts/picky.results_renderer.js
70
+ - sinatra_prototype/javascripts/picky.source.js.tar
71
+ - sinatra_prototype/javascripts/picky.translations.js
72
+ - sinatra_prototype/javascripts/picky.view.js
73
+ - sinatra_prototype/library.csv
74
+ - sinatra_prototype/stylesheets/stylesheet.css
75
+ - sinatra_prototype/stylesheets/stylesheet.sass
76
+ - sinatra_prototype/views/search.haml
48
77
  - README.rdoc
49
78
  - spec/picky-client/convenience_spec.rb
50
79
  - spec/picky-client/engine_spec.rb
80
+ - spec/picky-client/generator_spec.rb
51
81
  - spec/picky-client/helper_spec.rb
82
+ - bin/picky-client
52
83
  has_rdoc: false
53
84
  homepage: http://floere.github.com/picky
54
85
  licenses: []
@@ -84,4 +115,5 @@ summary: picky Search Engine Client
84
115
  test_files:
85
116
  - spec/picky-client/convenience_spec.rb
86
117
  - spec/picky-client/engine_spec.rb
118
+ - spec/picky-client/generator_spec.rb
87
119
  - spec/picky-client/helper_spec.rb