auser-skelerl 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/Rakefile +7 -3
  2. data/VERSION.yml +4 -0
  3. data/bin/gen_server +0 -0
  4. data/bin/makefile +17 -0
  5. data/bin/skelerl +55 -12
  6. data/bin/skelerl-gen_server +29 -0
  7. data/bin/skelerl-makefile +29 -0
  8. data/config/jeweler.rb +41 -0
  9. data/generators/gen_server/USAGE +3 -3
  10. data/generators/gen_server/gen_server_generator.rb +36 -22
  11. data/generators/gen_server/templates/README.txt +1 -0
  12. data/generators/gen_server/templates/Rakefile +1 -0
  13. data/generators/gen_server/templates/gen_server.erl +107 -0
  14. data/generators/gen_server/templates/gitignore +3 -0
  15. data/generators/makefile/USAGE +5 -0
  16. data/generators/makefile/makefile_generator.rb +68 -0
  17. data/generators/makefile/templates/Emakefile +5 -0
  18. data/generators/makefile/templates/Makefile +31 -0
  19. data/{ebin/packager.app → generators/makefile/templates/appfile.app.erb} +6 -6
  20. data/generators/makefile/templates/make_boot.erl.erb +29 -0
  21. data/generators/makefile/templates/start.sh +4 -0
  22. data/generators/skeleton/skeleton_generator.rb +2 -0
  23. data/generators/skeleton/templates/Rakefile +2 -1
  24. data/generators/skeleton/templates/gitignore +15 -1
  25. data/script/generate +1 -1
  26. data/tasks/build.rake +97 -5
  27. metadata +41 -48
  28. data/Manifest.txt +0 -43
  29. data/config/hoe.rb +0 -73
  30. data/examples/example_runner.rb +0 -24
  31. data/include/empty +0 -0
  32. data/lib/skelerl.rb +0 -22
  33. data/lib/skelerl/core/object.rb +0 -27
  34. data/lib/skelerl/erlpers/core/array.rb +0 -10
  35. data/lib/skelerl/erlpers/core/object.rb +0 -34
  36. data/lib/skelerl/erlpers/erl_mapper.rb +0 -70
  37. data/lib/skelerl/erlpers/mappers/command.rb +0 -13
  38. data/lib/skelerl/erlpers/mappers/context.rb +0 -39
  39. data/lib/skelerl/erlpers/mappers/namespace.rb +0 -8
  40. data/lib/skelerl/init.rb +0 -3
  41. data/setup.rb +0 -1585
  42. data/skelerl.gemspec +0 -36
  43. data/src/packager.erl +0 -75
  44. data/tasks/deployment.rake +0 -43
  45. data/test/erlpers/erl_mapper_spec.rb +0 -113
  46. data/test/erlpers/object_spec.rb +0 -26
  47. data/test/helper.rb +0 -10
data/skelerl.gemspec DELETED
@@ -1,36 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- Gem::Specification.new do |s|
4
- s.name = %q{skelerl}
5
- s.version = "0.0.4"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Ari Lerner"]
9
- s.date = %q{2009-02-09}
10
- s.description = %q{This skeleton app takes care of everything you'd need in an erlang application, but don't want to do yourself... Check out the README for more! Mon Feb 09 18:49:15 -0800 2009}
11
- s.email = ["arilerner@mac.com"]
12
- s.executables = ["gen_server", "skelerl"]
13
- s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt", "generators/skeleton/templates/README.txt"]
14
- s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "bin/gen_server", "bin/skelerl", "config/hoe.rb", "config/requirements.rb", "ebin/packager.app", "examples/example_runner.rb", "generators/appfile/USAGE", "generators/appfile/appfile_generator.rb", "generators/appfile/templates/appfile.app", "generators/gen_server/USAGE", "generators/gen_server/gen_server_generator.rb", "generators/gen_server/templates/gen_server.erl", "generators/skeleton/USAGE", "generators/skeleton/skeleton_generator.rb", "generators/skeleton/templates/README.txt", "generators/skeleton/templates/Rakefile", "generators/skeleton/templates/gitignore", "include/empty", "lib/skelerl.rb", "lib/skelerl/core/object.rb", "lib/skelerl/erlpers/core/array.rb", "lib/skelerl/erlpers/core/object.rb", "lib/skelerl/erlpers/erl_mapper.rb", "lib/skelerl/erlpers/mappers/command.rb", "lib/skelerl/erlpers/mappers/context.rb", "lib/skelerl/erlpers/mappers/namespace.rb", "lib/skelerl/init.rb", "script/generate", "setup.rb", "skelerl.gemspec", "src/packager.erl", "tasks/build.rake", "tasks/deployment.rake", "tasks/environment.rake", "tasks/generate.rake", "tasks/website.rake", "test/erlpers/erl_mapper_spec.rb", "test/erlpers/object_spec.rb", "test/helper.rb"]
15
- s.has_rdoc = true
16
- s.homepage = %q{http://skelerl.rubyforge.org}
17
- s.post_install_message = %q{}
18
- s.rdoc_options = ["--main", "README.txt"]
19
- s.require_paths = ["lib"]
20
- s.rubyforge_project = %q{skelerl}
21
- s.rubygems_version = %q{1.3.1}
22
- s.summary = %q{This skeleton app takes care of everything you'd need in an erlang application, but don't want to do yourself... Check out the README for more! Mon Feb 09 18:49:15 -0800 2009}
23
-
24
- if s.respond_to? :specification_version then
25
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
26
- s.specification_version = 2
27
-
28
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
29
- s.add_development_dependency(%q<hoe>, [">= 1.8.0"])
30
- else
31
- s.add_dependency(%q<hoe>, [">= 1.8.0"])
32
- end
33
- else
34
- s.add_dependency(%q<hoe>, [">= 1.8.0"])
35
- end
36
- end
data/src/packager.erl DELETED
@@ -1,75 +0,0 @@
1
- -module (packager).
2
- -compile(export_all).
3
- -behaviour(application).
4
-
5
- %% Application callbacks
6
- -export([start/1, start/2, stop/1]).
7
-
8
- start(Name) ->
9
- [N,V] = Name,
10
- start(N, V).
11
- %%====================================================================
12
- %% Application callbacks
13
- %%====================================================================
14
- %%--------------------------------------------------------------------
15
- %% Function: start(Type, StartArgs) -> {ok, Pid} |
16
- %% {ok, Pid, State} |
17
- %% {error, Reason}
18
- %% Description: This function is called whenever an application
19
- %% is started using application:start/1,2, and should start the processes
20
- %% of the application. If the application is structured according to the
21
- %% OTP design principles as a supervision tree, this means starting the
22
- %% top supervisor of the tree.
23
- %%--------------------------------------------------------------------
24
- start(Name, Version) ->
25
- recompile_scripts(Name, Version).
26
-
27
- %%--------------------------------------------------------------------
28
- %% Function: stop(State) -> void()
29
- %% Description: This function is called whenever an application
30
- %% has stopped. It is intended to be the opposite of Module:start/2 and
31
- %% should do any necessary cleaning up. The return value is ignored.
32
- %%--------------------------------------------------------------------
33
- stop(_State) ->
34
- ok.
35
-
36
- %%====================================================================
37
- %% Internal functions
38
- %%====================================================================
39
-
40
- gen_rel(Name, Vers) ->
41
- RelName = gen_rel_name(Name, Vers),
42
- F = lists:append(["{release, {\"",Name,"\",\"",Vers,"\"}, ",
43
- "{erts,\"",erlang:system_info(version),"\"},"
44
- "[{kernel,\"",get_vsn(kernel),"\"},",
45
- "{stdlib,\"",get_vsn(stdlib),"\"},",
46
- "{inets,\"",get_vsn(inets),"\"},",
47
- "{crypto,\"",get_vsn(crypto),"\"},",
48
- "{sasl,\"",get_vsn(sasl),"\"},",
49
- "{",Name,",\"",Vers,"\"}]}."]),
50
- file:write_file( lists:append(["ebin/", RelName, ".rel"]),F).
51
-
52
- % Recompiles the boot scripts
53
- recompile_scripts(Name, Vers) ->
54
- gen_rel(Name, Vers),
55
- ScriptName = gen_rel_name(Name, Vers),
56
- systools:make_script(ScriptName, [local,{path,["ebin"]}]).
57
-
58
- package_scripts(Name, Vers) ->
59
- ScriptName = lists:append(["ebin/", gen_rel_name(Name, Vers)]),
60
- systools:make_tar(ScriptName).
61
-
62
- get_vsn(Module) ->
63
- AppFile = code:lib_dir(Module)++"/ebin/"++atom_to_list(Module)++".app",
64
- {ok,[{application,_App,Attrs}]} = file:consult(AppFile),
65
- {value,{vsn,Vsn}} = lists:keysearch(vsn,1,Attrs),
66
- Vsn.
67
-
68
- gen_rel_name(Name, Vers) -> lists:append([Name,"_rel-",Vers]).
69
-
70
- install_messenger(Vers) ->
71
- Root = code:root_dir(),
72
- io:format("~p root: "++Root, [Vers]),
73
- ok.
74
-
75
- % Tests
@@ -1,43 +0,0 @@
1
- desc 'Release the website and new gem version'
2
- task :deploy => [:check_version, :website, :release] do
3
- puts "Remember to create SVN tag:"
4
- puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
5
- "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
6
- puts "Suggested comment:"
7
- puts "Tagging release #{CHANGES}"
8
- end
9
-
10
- desc 'Runs tasks website_generate and install_gem as a local deployment of the gem'
11
- task :local_deploy => [:website_generate, :install_gem]
12
-
13
- task :check_version do
14
- unless ENV['VERSION']
15
- puts 'Must pass a VERSION=x.y.z release version'
16
- exit
17
- end
18
- unless ENV['VERSION'] == VERS
19
- puts "Please update your version.rb to match the release version, currently #{VERS}"
20
- exit
21
- end
22
- end
23
-
24
- desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
25
- task :install_gem_no_doc => [:clean, :package] do
26
- sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
27
- end
28
-
29
- namespace :manifest do
30
- desc 'Recreate Manifest.txt to include ALL files'
31
- task :refresh do
32
- `rake check_manifest | patch -p0 > Manifest.txt`
33
- end
34
- end
35
-
36
- desc "Generate gemspec"
37
- task :gemspec => [:"manifest:refresh"] do |t|
38
- res = %x[rake debug_gem]
39
- res = res.split("\n")[1..-1].join("\n")
40
- ::File.open("#{GEM_NAME.downcase}.gemspec", "w+") do |f|
41
- f << res
42
- end
43
- end
@@ -1,113 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../helper"
2
-
3
- class ErlMapperTest < Test::Unit::TestCase
4
- context "ErlMapper" do
5
- context "methods" do
6
-
7
- context "options" do
8
-
9
- setup do;@mapper = ErlMapper.new do;a "a";b = nil;end;end
10
- describe "passed in with a hash" do
11
- it "should set the option on the ErlMapper" do;@mapper.a.should == "a";end
12
- it "should not set the option when passed a nil value" do;@mapper.b.should == nil;end
13
- end
14
- describe "passed in on the block" do
15
- it "should set the option on the ErlMapper" do;@mapper.a.should == "a";end
16
- it "should not set the option when passed a nil value" do;@mapper.b.should == nil;end
17
- end
18
- end
19
-
20
- context "with_node" do
21
- setup do;@mapper = ErlMapper.new do;with_node(:node0) do; "hi";end;end;end
22
- describe "on call" do
23
- it "should create a MappingContext" do
24
- assert_equal @mapper.with_node(:node0).class, MappingContext
25
- end
26
- it "should store the MappingContext's name" do
27
- assert_equal @mapper.with_node(:node0).sname, :node0
28
- end
29
- it "should append the name to the MappingContext's string" do
30
- assert_equal @mapper.with_node(:node0).build_string.strip, "erl -sname node0 -pa ./ebin"
31
- end
32
-
33
- context "context" do
34
- setup do;@context = @mapper.with_node(:node0) do;start;end;end
35
-
36
- describe "with start_commands" do
37
- it "should have the start_commands on the MappingContext" do
38
- assert_equal @context.commands.flatten, ["start"]
39
- end
40
- it "should have multiple when multiple are called" do
41
- @context.instance_eval do
42
- chordjerl_srv.start_link
43
- end
44
- assert_equal ["start","chordjerl_srv","start_link"], @context.commands.flatten
45
- end
46
- it "should include arguments" do
47
- @context = @mapper.with_node(:node0) do
48
- dark.and_stormy "night"
49
- end
50
- assert_equal [["dark",["and_stormy","night"]]], @context.commands
51
- end
52
- it "should build the commands with 1 -s" do
53
- @context = @mapper.with_node(:node0, :stop => false) do
54
- everything.but_the "sink"
55
- end
56
- assert_equal "erl -sname node0 -pa ./ebin -s everything but_the sink", @context.string
57
- end
58
- it "should build the commands without an argument" do
59
- @context = @mapper.with_node(:node0, :stop => false) do
60
- once.in_a_lifetime
61
- end
62
- assert_equal "erl -sname node0 -pa ./ebin -s once in_a_lifetime", @context.string
63
- end
64
- end
65
-
66
- describe "with final_commands" do
67
- it "should have the default final_commands as -s init stop" do
68
- assert_equal @context.final_commands, "-s init stop"
69
- end
70
- it "should not have the final_commands with stop if stop is false" do
71
- cont = MappingContext.new :node1, {:stop => false} do
72
- end
73
- assert_equal cont.final_commands, ""
74
- end
75
- it "with stop if stop is true" do
76
- cont = MappingContext.new :node2, {:stop => true} do
77
- end
78
- assert_equal cont.final_commands, "-s init stop"
79
- end
80
- end
81
-
82
- end
83
-
84
- end
85
- end
86
- end
87
-
88
- context "Namespace" do
89
- setup do
90
- @namespace = Namespace.new("chordjerl_srv") do
91
- start
92
- end
93
- end
94
- it "should keep the namespace on the command" do
95
- assert_equal "erl -s chordjerl_srv:start", @namespace.string
96
- end
97
- end
98
-
99
- describe "Called from an object" do
100
- setup do
101
- @o = Object.new
102
- end
103
-
104
- it "should not fail" do
105
- blk = Proc.new {}
106
- lambda {@o.erlang(&blk)}.should_not raise_error
107
- end
108
-
109
- end
110
-
111
- end
112
-
113
- end
@@ -1,26 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../helper"
2
-
3
- class ObjectTest < Test::Unit::TestCase
4
- context "Object" do
5
- setup do
6
- @o = Object.new
7
- end
8
-
9
- context "for method erlang" do
10
- should "respond to :erlang" do
11
- assert_respond_to @o, :erlang
12
- end
13
-
14
- should "create a new ErlMapper" do
15
- blk = Proc.new {}
16
- assert_equal ErlMapper, @o.erlang(&blk).class
17
- end
18
-
19
- should "not create a new ErlMapper if there is no block passed" do
20
- assert_equal @o.erlang, nil
21
- end
22
- end
23
-
24
- end
25
-
26
- end
data/test/helper.rb DELETED
@@ -1,10 +0,0 @@
1
- $:.unshift "#{::File.dirname(__FILE__)}/../lib"
2
- require "rubygems"
3
-
4
- require 'test/unit'
5
- require 'matchy'
6
- require 'context'
7
-
8
- require "skelerl"
9
-
10
- testing true