saruman 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,181 @@
1
+ require 'thor/group'
2
+ require 'nokogiri'
3
+ module Saruman
4
+ module Generators
5
+ class Model < Thor::Group
6
+ include Thor::Actions
7
+ argument :arguments, :type => :hash
8
+
9
+ def self.source_root
10
+ File.dirname(__FILE__) + "/model/templates"
11
+ end
12
+
13
+ def validate_extension
14
+ unless File.directory?("#{extension_base_path}")
15
+ @error = "error"
16
+ end
17
+
18
+ unless File.exist?("#{extension_config_path}/config.xml")
19
+ @error = "error"
20
+ end
21
+ end
22
+
23
+ def create_model_directory
24
+ empty_directory(model_path) unless File.directory?(model_path)
25
+ end
26
+
27
+ def create_temp_directory
28
+ empty_directory("#{extension_temp_path}")
29
+ end
30
+
31
+ def read_extension_config
32
+
33
+ fp = "#{extension_config_path}/config.xml"
34
+ config = File.open(fp, "r+")
35
+
36
+ @config = Nokogiri::XML(config)
37
+ config.close
38
+
39
+ @extension_current_version = @config.css("version").first.content
40
+
41
+ global_node = @config.css("global")
42
+
43
+ models_node = global_node.css("models")
44
+
45
+ if models_node.empty?
46
+ models_node = Nokogiri::XML::Node.new('models', @config)
47
+ global_node.first.add_child(models_node)
48
+ end
49
+
50
+ model_declaration_node = @config.css("models #{name_lower}")
51
+
52
+ if model_declaration_node.empty?
53
+ @resource_model_config_temp_path = "#{extension_temp_path}_config.xml"
54
+ template("resource_model_config_block.xml", @resource_model_config_temp_path)
55
+ resource_model_config_file = File.open(@resource_model_config_temp_path)
56
+ resource_model_config_block = Nokogiri::XML(resource_model_config_file).root
57
+ resource_model_config_file.close
58
+
59
+ @model_config_temp_path = "#{extension_temp_path}model_config_block.xml"
60
+ template("model_config_block.xml", @model_config_temp_path)
61
+ model_config_file = File.open(@model_config_temp_path)
62
+ model_config_block = Nokogiri::XML(model_config_file).root
63
+ model_config_file.close
64
+
65
+ models_node = @config.css("models").first
66
+
67
+ models_node.add_child(model_config_block)
68
+ models_node.add_child(resource_model_config_block)
69
+
70
+ end
71
+
72
+ models_node_find = @config.css('models')
73
+
74
+ file = File.open(fp,'w')
75
+ file.puts @config.to_xml
76
+ file.close
77
+
78
+ end
79
+
80
+ def remove_temp_dir
81
+ FileUtils.rm_rf(extension_temp_path)
82
+ end
83
+
84
+ def create_installer_upgrade
85
+ template("mysql4-install.php", "#{setup_base_path}/mysql4-upgrade-#{@extension_current_version}-#{extension_upgrade_version}.php")
86
+ end
87
+
88
+ private
89
+
90
+ def namespace
91
+ arguments[:namespace]
92
+ end
93
+
94
+ def name
95
+ arguments[:name]
96
+ end
97
+
98
+ def combined_namespace
99
+ "#{arguments[:namespace]}_#{arguments[:name]}"
100
+ end
101
+
102
+ def namespace_lower
103
+ namespace.downcase
104
+ end
105
+
106
+ def name_lower
107
+ name.downcase
108
+ end
109
+
110
+ #alias for name
111
+ def extension_name_lower
112
+ name.downcase
113
+ end
114
+
115
+ def version
116
+ arguments[:version]
117
+ end
118
+
119
+ def global_config_basepath
120
+ "app/etc/modules/"
121
+ end
122
+
123
+ def extension_base_path
124
+ "app/code/local/#{namespace}/#{name}/"
125
+ end
126
+
127
+ def extension_temp_path
128
+ "#{extension_base_path}temp/"
129
+ end
130
+
131
+ def extension_config_path
132
+ "#{extension_base_path}etc/"
133
+ end
134
+
135
+ def model_path
136
+ "#{extension_base_path}Model/"
137
+ end
138
+
139
+ def resource_model_path
140
+ "#{model_path}Mysql4/"
141
+ end
142
+
143
+ def setup_base_path
144
+ "#{extension_base_path}sql/#{name_lower}_setup/"
145
+ end
146
+
147
+ def model_klass_name
148
+ "#{combined_namespace}_Model"
149
+ end
150
+
151
+ def resource_model_name
152
+ "#{extension_name_lower}_mysql4"
153
+ end
154
+
155
+ def resource_model_klass_name
156
+ "#{combined_namespace}_Model_Mysql4"
157
+ end
158
+
159
+ def global_config_file_path
160
+ "#{global_config_basepath}#{combined_namespace}.xml"
161
+ end
162
+
163
+ def extension_upgrade_version
164
+ @extension_current_version.to_f + 0.1
165
+ end
166
+
167
+ def model?
168
+ if arguments[:model] == true
169
+ return true
170
+ else
171
+ return false
172
+ end
173
+ end
174
+
175
+ def models
176
+ arguments[:models]
177
+ end
178
+
179
+ end
180
+ end
181
+ end
@@ -0,0 +1,314 @@
1
+ app/code/core/Mage/Admin/Model/Session.php,102,admin_session_user_login_success
2
+ app/code/core/Mage/Admin/Model/Session.php,112,admin_session_user_login_failed
3
+ app/code/core/Mage/Admin/Model/User.php,344,admin_user_authenticate_after
4
+ app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tabs.php,157,adminhtml_catalog_category_tabs
5
+ app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php,284,adminhtml_catalog_category_tree_is_moveable
6
+ app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php,322,adminhtml_catalog_category_tree_can_add_root_category
7
+ app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php,342,adminhtml_catalog_category_tree_can_add_sub_category
8
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Edit/Tab/Main.php,71,adminhtml_product_attribute_types
9
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Edit/Tab/Main.php,242,adminhtml_catalog_product_attribute_edit_prepare_form
10
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/New/Product/Attributes.php,64,adminhtml_catalog_product_edit_prepare_form
11
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/New/Product/Attributes.php,80,adminhtml_catalog_product_edit_element_types
12
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Main.php,406,adminhtml_catalog_product_attribute_set_main_html_before
13
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Toolbar/Main.php,68,adminhtml_catalog_product_attribute_set_toolbar_main_html_before
14
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Action/Attribute/Tab/Attributes.php,48,adminhtml_catalog_product_form_prepare_excluded_field_list
15
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes/Create.php,85,adminhtml_catalog_product_edit_tab_attributes_create_html_before
16
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php,135,adminhtml_catalog_product_edit_prepare_form
17
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php,153,adminhtml_catalog_product_edit_element_types
18
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Price/Recurring.php,42,catalog_product_edit_form_render_recurring
19
+ app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Content.php,98,adminhtml_cms_page_edit_tab_content_prepare_form
20
+ app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php,125,adminhtml_cms_page_edit_tab_design_prepare_form
21
+ app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Main.php,117,adminhtml_cms_page_edit_tab_main_prepare_form
22
+ app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Meta.php,76,adminhtml_cms_page_edit_tab_meta_prepare_form
23
+ app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Carts.php,61,adminhtml_block_html_before
24
+ app/code/core/Mage/Adminhtml/Block/Promo/Catalog/Edit/Tab/Main.php,197,adminhtml_promo_catalog_edit_tab_main_prepare_form
25
+ app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Actions.php,162,adminhtml_block_salesrule_actions_prepareform
26
+ app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Main.php,255,adminhtml_promo_quote_edit_tab_main_prepare_form
27
+ app/code/core/Mage/Adminhtml/Block/Report/Grid.php,186,adminhtml_widget_grid_filter_collection
28
+ app/code/core/Mage/Adminhtml/Block/Sales/Reorder/Renderer/Action.php,55,adminhtml_customer_orders_add_action_renderer
29
+ app/code/core/Mage/Adminhtml/Block/Template.php,80,adminhtml_block_html_before
30
+ app/code/core/Mage/Adminhtml/Block/Widget/Container.php,307,adminhtml_widget_container_html_before
31
+ app/code/core/Mage/Adminhtml/Controller/Action.php,151,adminhtml_controller_action_predispatch_start
32
+ app/code/core/Mage/Adminhtml/controllers/CacheController.php,56,adminhtml_cache_flush_all
33
+ app/code/core/Mage/Adminhtml/controllers/CacheController.php,68,adminhtml_cache_flush_system
34
+ app/code/core/Mage/Adminhtml/controllers/CacheController.php,128,adminhtml_cache_refresh_type
35
+ app/code/core/Mage/Adminhtml/controllers/CacheController.php,145,clean_media_cache_after
36
+ app/code/core/Mage/Adminhtml/controllers/CacheController.php,169,clean_catalog_images_cache_after
37
+ app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php,304,catalog_category_prepare_save
38
+ app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php,399,catalog_controller_category_delete
39
+ app/code/core/Mage/Adminhtml/controllers/Catalog/Product/Action/AttributeController.php,156,catalog_product_to_website_change
40
+ app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,192,catalog_product_new_action
41
+ app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,237,catalog_product_edit_action
42
+ app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,665,catalog_product_prepare_save
43
+ app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,868,catalog_controller_product_delete
44
+ app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php,139,cms_page_prepare_save
45
+ app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php,199,adminhtml_cmspage_on_delete
46
+ app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php,204,adminhtml_cmspage_on_delete
47
+ app/code/core/Mage/Adminhtml/controllers/CustomerController.php,301,adminhtml_customer_prepare_save
48
+ app/code/core/Mage/Adminhtml/controllers/CustomerController.php,332,adminhtml_customer_save_after
49
+ app/code/core/Mage/Adminhtml/controllers/Permissions/RoleController.php,194,admin_permissions_role_prepare_save
50
+ app/code/core/Mage/Adminhtml/controllers/Promo/CatalogController.php,114,adminhtml_controller_catalogrule_prepare_save
51
+ app/code/core/Mage/Adminhtml/controllers/Promo/QuoteController.php,114,adminhtml_controller_salesrule_prepare_save
52
+ app/code/core/Mage/Adminhtml/controllers/ReportController.php,82,on_view_report
53
+ app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php,245,adminhtml_sales_order_create_process_data
54
+ app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreditmemoController.php,160,adminhtml_sales_order_creditmemo_register_before
55
+ app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php,154,add_synchronize_message
56
+ app/code/core/Mage/Adminhtml/controllers/System/StoreController.php,200,store_group_save
57
+ app/code/core/Mage/Adminhtml/controllers/System/StoreController.php,431,store_delete
58
+ app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php,319,sales_convert_order_to_quote
59
+ app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php,412,sales_convert_order_item_to_quote_item
60
+ app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php,1486,checkout_submit_all_after
61
+ app/code/core/Mage/Api/Model/User.php,204,api_user_authenticated
62
+ app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle.php,157,bundle_product_view_config
63
+ app/code/core/Mage/Bundle/Model/Product/Price.php,95,catalog_product_get_final_price
64
+ app/code/core/Mage/Bundle/Model/Product/Price.php,105,prepare_catalog_product_collection_prices
65
+ app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php,263,catalog_product_prepare_index_select
66
+ app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php,489,prepare_catalog_product_price_index_table
67
+ app/code/core/Mage/Bundle/Model/Resource/Price/Index.php,378,catalog_product_prepare_index_select
68
+ app/code/core/Mage/Catalog/Block/Product/List/Upsell.php,79,catalog_product_upsell
69
+ app/code/core/Mage/Catalog/Block/Product/List.php,161,catalog_block_product_list_collection
70
+ app/code/core/Mage/Catalog/Block/Product/View/Type/Configurable.php,158,catalog_product_type_configurable_price
71
+ app/code/core/Mage/Catalog/Block/Product/View.php,181,catalog_product_view_config
72
+ app/code/core/Mage/Catalog/controllers/CategoryController.php,43,catalog_controller_category_init_before
73
+ app/code/core/Mage/Catalog/controllers/CategoryController.php,59,catalog_controller_category_init_after
74
+ app/code/core/Mage/Catalog/controllers/Product/CompareController.php,87,catalog_product_compare_add_product
75
+ app/code/core/Mage/Catalog/controllers/Product/CompareController.php,126,catalog_product_compare_remove_product
76
+ app/code/core/Mage/Catalog/Helper/Output.php,48,catalog_helper_output_construct
77
+ app/code/core/Mage/Catalog/Helper/Product/View.php,135,catalog_controller_product_view
78
+ app/code/core/Mage/Catalog/Helper/Product.php,283,catalog_controller_product_init_before
79
+ app/code/core/Mage/Catalog/Helper/Product.php,323,catalog_controller_product_init
80
+ app/code/core/Mage/Catalog/Helper/Product.php,324,catalog_controller_product_init_after
81
+ app/code/core/Mage/Catalog/Model/Category.php,229,catalog_category_tree_move_before
82
+ app/code/core/Mage/Catalog/Model/Category.php,235,catalog_category_tree_move_after
83
+ app/code/core/Mage/Catalog/Model/Category.php,247,category_move
84
+ app/code/core/Mage/Catalog/Model/Product/Action.php,66,catalog_product_attribute_update_before
85
+ app/code/core/Mage/Catalog/Model/Product/Action.php,99,catalog_product_website_update_before
86
+ app/code/core/Mage/Catalog/Model/Product/Action.php,123,catalog_product_website_update
87
+ app/code/core/Mage/Catalog/Model/Product/Attribute/Source/Inputtype.php,55,adminhtml_product_attribute_types
88
+ app/code/core/Mage/Catalog/Model/Product/Option/Api.php,166,catalog_product_prepare_save
89
+ app/code/core/Mage/Catalog/Model/Product/Status.php,217,catalog_product_status_update
90
+ app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php,542,"Mage::dispatchEvent($eventName, array("
91
+ app/code/core/Mage/Catalog/Model/Product/Type/Configurable/Price.php,71,catalog_product_type_configurable_price
92
+ app/code/core/Mage/Catalog/Model/Product/Type/Grouped/Price.php,70,catalog_product_type_grouped_price
93
+ app/code/core/Mage/Catalog/Model/Product/Type/Price.php,68,catalog_product_get_final_price
94
+ app/code/core/Mage/Catalog/Model/Product.php,1039,catalog_model_product_duplicate
95
+ app/code/core/Mage/Catalog/Model/Product.php,1240,catalog_product_is_salable_before
96
+ app/code/core/Mage/Catalog/Model/Product.php,1250,catalog_product_is_salable_after
97
+ app/code/core/Mage/Catalog/Model/Resource/Category/Flat.php,205,catalog_category_tree_init_inactive_category_ids
98
+ app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php,210,catalog_category_tree_init_inactive_category_ids
99
+ app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php,406,catalog_category_tree_move_before
100
+ app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php,443,catalog_category_tree_move_after
101
+ app/code/core/Mage/Catalog/Model/Resource/Category.php,364,catalog_category_change_products
102
+ app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Price.php,103,catalogindex_prepare_price_select
103
+ app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Price.php,108,catalog_prepare_price_select
104
+ app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,363,catalog_product_collection_load_before
105
+ app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,383,catalog_product_collection_load_after
106
+ app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,831,catalog_product_collection_before_add_count_to_categories
107
+ app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,1652,catalog_product_collection_apply_limitations_after
108
+ app/code/core/Mage/Catalog/Model/Resource/Product/Compare/Item/Collection.php,315,catalog_product_compare_item_collection_clear
109
+ app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,437,catalog_product_flat_prepare_columns
110
+ app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,497,catalog_product_flat_prepare_indexes
111
+ app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,1038,catalog_product_flat_rebuild
112
+ app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,1281,catalog_product_flat_update_product
113
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Abstract.php,208,prepare_catalog_product_index_select
114
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Decimal.php,98,prepare_catalog_product_index_select
115
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Source.php,154,prepare_catalog_product_index_select
116
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Source.php,228,prepare_catalog_product_index_select
117
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Price/Default.php,270,prepare_catalog_product_index_select
118
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Price/Default.php,287,prepare_catalog_product_price_index_table
119
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Price/Grouped.php,124,catalog_product_prepare_index_select
120
+ app/code/core/Mage/CatalogIndex/Model/Data/Abstract.php,204,catalogindex_get_minimal_price
121
+ app/code/core/Mage/CatalogIndex/Model/Indexer.php,372,catalogindex_plain_reindex_after
122
+ app/code/core/Mage/CatalogIndex/Model/Indexer.php,632,catalogindex_prepare_price_select
123
+ app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,138,catalogindex_prepare_price_select
124
+ app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,177,catalogindex_prepare_price_select
125
+ app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,231,catalogindex_prepare_price_select
126
+ app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,281,catalogindex_prepare_price_select
127
+ app/code/core/Mage/CatalogRule/Model/Resource/Rule.php,345,catalogrule_before_apply
128
+ app/code/core/Mage/CatalogRule/Model/Resource/Rule.php,481,catalogrule_after_apply
129
+ app/code/core/Mage/CatalogSearch/Model/Fulltext.php,78,catalogsearch_index_process_start
130
+ app/code/core/Mage/CatalogSearch/Model/Fulltext.php,85,catalogsearch_index_process_complete
131
+ app/code/core/Mage/CatalogSearch/Model/Resource/Advanced.php,67,catalog_prepare_price_select
132
+ app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php,307,catalogsearch_reset_search_result
133
+ app/code/core/Mage/Checkout/controllers/CartController.php,195,checkout_cart_add_product_complete
134
+ app/code/core/Mage/Checkout/controllers/CartController.php,336,checkout_cart_update_item_complete
135
+ app/code/core/Mage/Checkout/controllers/MultishippingController.php,344,checkout_controller_multishipping_shipping_post
136
+ app/code/core/Mage/Checkout/controllers/MultishippingController.php,545,checkout_multishipping_controller_success_action
137
+ app/code/core/Mage/Checkout/controllers/OnepageController.php,230,checkout_onepage_controller_success_action
138
+ app/code/core/Mage/Checkout/controllers/OnepageController.php,374,checkout_controller_onepage_save_shipping_method
139
+ app/code/core/Mage/Checkout/Helper/Data.php,276,checkout_allow_guest
140
+ app/code/core/Mage/Checkout/Model/Cart/Api.php,174,checkout_type_onepage_save_order_after
141
+ app/code/core/Mage/Checkout/Model/Cart/Api.php,184,checkout_submit_all_after
142
+ app/code/core/Mage/Checkout/Model/Cart.php,264,checkout_cart_product_add_after
143
+ app/code/core/Mage/Checkout/Model/Cart.php,364,checkout_cart_update_items_before
144
+ app/code/core/Mage/Checkout/Model/Cart.php,402,checkout_cart_update_items_after
145
+ app/code/core/Mage/Checkout/Model/Cart.php,425,checkout_cart_save_before
146
+ app/code/core/Mage/Checkout/Model/Cart.php,435,checkout_cart_save_after
147
+ app/code/core/Mage/Checkout/Model/Cart.php,558,checkout_cart_product_update_after
148
+ app/code/core/Mage/Checkout/Model/Session.php,105,custom_quote_process
149
+ app/code/core/Mage/Checkout/Model/Session.php,148,checkout_quote_init
150
+ app/code/core/Mage/Checkout/Model/Session.php,197,load_customer_quote_before
151
+ app/code/core/Mage/Checkout/Model/Session.php,358,checkout_quote_destroy
152
+ app/code/core/Mage/Checkout/Model/Type/Multishipping.php,278,checkout_type_multishipping_set_shipping_items
153
+ app/code/core/Mage/Checkout/Model/Type/Multishipping.php,519,checkout_type_multishipping_create_orders_single
154
+ app/code/core/Mage/Checkout/Model/Type/Multishipping.php,541,checkout_submit_all_after
155
+ app/code/core/Mage/Checkout/Model/Type/Multishipping.php,545,checkout_multishipping_refund_all
156
+ app/code/core/Mage/Checkout/Model/Type/Onepage.php,783,checkout_type_onepage_save_order_after
157
+ app/code/core/Mage/Checkout/Model/Type/Onepage.php,825,checkout_submit_all_after
158
+ app/code/core/Mage/Checkout/Model/Type/Onepage.php,1042,checkout_type_onepage_save_order
159
+ app/code/core/Mage/Checkout/Model/Type/Onepage.php,1094,checkout_type_onepage_save_order_after
160
+ app/code/core/Mage/Cms/Controller/Router.php,71,cms_controller_router_match_before
161
+ app/code/core/Mage/Cms/Helper/Page.php,106,cms_page_render
162
+ app/code/core/Mage/Cms/Helper/Wysiwyg/Images.php,158,cms_wysiwyg_images_static_urls_allowed
163
+ app/code/core/Mage/Cms/Model/Page.php,152,cms_page_get_available_statuses
164
+ app/code/core/Mage/Cms/Model/Wysiwyg/Config.php,97,cms_wysiwyg_config_prepare
165
+ app/code/core/Mage/Core/Block/Abstract.php,237,core_block_abstract_prepare_layout_before
166
+ app/code/core/Mage/Core/Block/Abstract.php,239,core_block_abstract_prepare_layout_after
167
+ app/code/core/Mage/Core/Block/Abstract.php,850,core_block_abstract_to_html_before
168
+ app/code/core/Mage/Core/Block/Abstract.php,886,core_block_abstract_to_html_after
169
+ app/code/core/Mage/Core/Controller/Response/Http.php,81,http_response_send_before
170
+ app/code/core/Mage/Core/Controller/Response/Http.php,102,controller_response_redirect
171
+ app/code/core/Mage/Core/Controller/Varien/Action.php,300,controller_action_layout_load_before
172
+ app/code/core/Mage/Core/Controller/Varien/Action.php,318,controller_action_layout_generate_xml_before
173
+ app/code/core/Mage/Core/Controller/Varien/Action.php,337,controller_action_layout_generate_blocks_before
174
+ app/code/core/Mage/Core/Controller/Varien/Action.php,349,controller_action_layout_generate_blocks_after
175
+ app/code/core/Mage/Core/Controller/Varien/Action.php,385,controller_action_layout_render_before
176
+ app/code/core/Mage/Core/Controller/Varien/Action.php,505,controller_action_predispatch
177
+ app/code/core/Mage/Core/Controller/Varien/Action.php,534,controller_action_postdispatch
178
+ app/code/core/Mage/Core/Controller/Varien/Action.php,543,controller_action_noroute
179
+ app/code/core/Mage/Core/Controller/Varien/Action.php,563,controller_action_nocookies
180
+ app/code/core/Mage/Core/Controller/Varien/Front.php,128,controller_front_init_before
181
+ app/code/core/Mage/Core/Controller/Varien/Front.php,159,controller_front_init_routers
182
+ app/code/core/Mage/Core/Controller/Varien/Front.php,199,controller_front_send_response_before
183
+ app/code/core/Mage/Core/Controller/Varien/Front.php,203,controller_front_send_response_after
184
+ app/code/core/Mage/Core/Model/Abstract.php,253,model_load_before
185
+ app/code/core/Mage/Core/Model/Abstract.php,266,model_load_after
186
+ app/code/core/Mage/Core/Model/Abstract.php,343,model_save_commit_after
187
+ app/code/core/Mage/Core/Model/Abstract.php,390,model_save_before
188
+ app/code/core/Mage/Core/Model/Abstract.php,465,model_save_after
189
+ app/code/core/Mage/Core/Model/Abstract.php,500,model_delete_before
190
+ app/code/core/Mage/Core/Model/Abstract.php,528,model_delete_after
191
+ app/code/core/Mage/Core/Model/Abstract.php,540,model_delete_commit_after
192
+ app/code/core/Mage/Core/Model/App.php,1177,application_clean_cache
193
+ app/code/core/Mage/Core/Model/Layout/Update.php,406,core_layout_update_updates_get_after
194
+ app/code/core/Mage/Core/Model/Layout.php,433,core_layout_block_create_after
195
+ app/code/core/Mage/Core/Model/Locale.php,139,core_locale_set_locale
196
+ app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php,585,core_collection_abstract_load_before
197
+ app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php,634,core_collection_abstract_load_after
198
+ app/code/core/Mage/Core/Model/Resource.php,278,resource_get_tablename
199
+ app/code/core/Mage/Core/Model/Session/Abstract.php,216,core_session_abstract_clear_messages
200
+ app/code/core/Mage/Core/Model/Session/Abstract.php,252,core_session_abstract_add_message
201
+ app/code/core/Mage/Customer/controllers/AccountController.php,334,customer_register_success
202
+ app/code/core/Mage/Customer/Helper/Data.php,281,customer_registration_is_allowed
203
+ app/code/core/Mage/Customer/Model/Address/Abstract.php,305,customer_address_format
204
+ app/code/core/Mage/Customer/Model/Customer.php,166,customer_customer_authenticated
205
+ app/code/core/Mage/Customer/Model/Session.php,75,customer_session_init
206
+ app/code/core/Mage/Customer/Model/Session.php,224,customer_login
207
+ app/code/core/Mage/Customer/Model/Session.php,252,customer_logout
208
+ app/code/core/Mage/Eav/Block/Adminhtml/Attribute/Edit/Main/Abstract.php,177,adminhtml_block_eav_attribute_edit_form_init
209
+ app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php,862,eav_collection_abstract_load_before
210
+ app/code/core/Mage/GiftMessage/Block/Message/Inline.php,177,gift_options_prepare_items
211
+ app/code/core/Mage/GiftMessage/Model/Api/V2.php,94,checkout_controller_onepage_save_shipping_method
212
+ app/code/core/Mage/GiftMessage/Model/Api.php,67,checkout_controller_onepage_save_shipping_method
213
+ app/code/core/Mage/GoogleBase/controllers/Adminhtml/Googlebase/TypesController.php,46,controller_action_postdispatch_adminhtml
214
+ app/code/core/Mage/GoogleCheckout/Block/Link.php,90,googlecheckout_block_link_html_before
215
+ app/code/core/Mage/GoogleCheckout/controllers/RedirectController.php,98,googlecheckout_checkout_before
216
+ app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Callback.php,355,googlecheckout_create_order_before
217
+ app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Callback.php,449,googlecheckout_save_order_after
218
+ app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Callback.php,463,checkout_submit_all_after
219
+ app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Checkout.php,165,google_checkout_discount_item_price
220
+ app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php,343,catalog_product_import_finish_before
221
+ app/code/core/Mage/Log/Model/Resource/Log.php,56,log_log_clean_before
222
+ app/code/core/Mage/Log/Model/Resource/Log.php,64,log_log_clean_after
223
+ app/code/core/Mage/Log/Model/Resource/Visitor/Collection.php,240,log_visitor_collection_load_before
224
+ app/code/core/Mage/Payment/Block/Form/Cc.php,154,payment_form_block_to_html_before
225
+ app/code/core/Mage/Payment/Block/Info.php,166,payment_info_block_prepare_specific_information
226
+ app/code/core/Mage/Payment/Model/Method/Abstract.php,629,payment_method_is_active
227
+ app/code/core/Mage/Paypal/Model/Cart.php,318,paypal_prepare_line_items
228
+ app/code/core/Mage/Persistent/controllers/IndexController.php,84,persistent_session_expired
229
+ app/code/core/Mage/Persistent/Model/Observer.php,483,persistent_session_expired
230
+ app/code/core/Mage/Poll/controllers/VoteController.php,67,poll_vote_add
231
+ app/code/core/Mage/Review/controllers/ProductController.php,73,review_controller_product_init_before
232
+ app/code/core/Mage/Review/controllers/ProductController.php,85,review_controller_product_init
233
+ app/code/core/Mage/Review/controllers/ProductController.php,86,review_controller_product_init_after
234
+ app/code/core/Mage/Review/Model/Resource/Review/Collection.php,269,review_review_collection_load_before
235
+ app/code/core/Mage/Rss/Block/Catalog/Category.php,119,rss_catalog_category_xml_callback
236
+ app/code/core/Mage/Rss/Block/Catalog/New.php,122,rss_catalog_new_xml_callback
237
+ app/code/core/Mage/Rss/Block/Catalog/NotifyStock.php,110,rss_catalog_notify_stock_collection_select
238
+ app/code/core/Mage/Rss/Block/Catalog/Review.php,88,rss_catalog_review_collection_select
239
+ app/code/core/Mage/Rss/Block/Catalog/Special.php,165,rss_catalog_special_xml_callback
240
+ app/code/core/Mage/Rss/Block/Catalog/Tag.php,92,rss_catalog_tagged_item_xml_callback
241
+ app/code/core/Mage/Rss/Block/Order/New.php,77,rss_order_new_collection_select
242
+ app/code/core/Mage/Rss/Block/Wishlist.php,124,rss_wishlist_xml_callback
243
+ app/code/core/Mage/Rule/Model/Environment.php,40,rule_environment_collect
244
+ app/code/core/Mage/Sales/Model/Convert/Order.php,53,sales_convert_order_to_quote
245
+ app/code/core/Mage/Sales/Model/Convert/Quote.php,57,sales_convert_quote_to_order
246
+ app/code/core/Mage/Sales/Model/Convert/Quote.php,75,sales_convert_quote_address_to_order
247
+ app/code/core/Mage/Sales/Model/Convert/Quote.php,95,sales_convert_quote_address_to_order_address
248
+ app/code/core/Mage/Sales/Model/Convert/Quote.php,114,sales_convert_quote_payment_to_order_payment
249
+ app/code/core/Mage/Sales/Model/Convert/Quote.php,154,sales_convert_quote_item_to_order_item
250
+ app/code/core/Mage/Sales/Model/Observer.php,52,clear_expired_quotes_before
251
+ app/code/core/Mage/Sales/Model/Order/Creditmemo.php,421,sales_order_creditmemo_refund
252
+ app/code/core/Mage/Sales/Model/Order/Creditmemo.php,468,sales_order_creditmemo_cancel
253
+ app/code/core/Mage/Sales/Model/Order/Invoice.php,411,sales_order_invoice_pay
254
+ app/code/core/Mage/Sales/Model/Order/Invoice.php,481,sales_order_invoice_cancel
255
+ app/code/core/Mage/Sales/Model/Order/Invoice.php,658,sales_order_invoice_register
256
+ app/code/core/Mage/Sales/Model/Order/Item.php,506,sales_order_item_cancel
257
+ app/code/core/Mage/Sales/Model/Order/Payment.php,277,sales_order_payment_place_start
258
+ app/code/core/Mage/Sales/Model/Order/Payment.php,356,sales_order_payment_place_end
259
+ app/code/core/Mage/Sales/Model/Order/Payment.php,394,sales_order_payment_capture
260
+ app/code/core/Mage/Sales/Model/Order/Payment.php,535,sales_order_payment_pay
261
+ app/code/core/Mage/Sales/Model/Order/Payment.php,553,sales_order_payment_cancel_invoice
262
+ app/code/core/Mage/Sales/Model/Order/Payment.php,603,sales_order_payment_void
263
+ app/code/core/Mage/Sales/Model/Order/Payment.php,691,sales_order_payment_refund
264
+ app/code/core/Mage/Sales/Model/Order/Payment.php,797,sales_order_payment_cancel_creditmemo
265
+ app/code/core/Mage/Sales/Model/Order/Payment.php,825,sales_order_payment_cancel
266
+ app/code/core/Mage/Sales/Model/Order.php,1073,sales_order_place_before
267
+ app/code/core/Mage/Sales/Model/Order.php,1075,sales_order_place_after
268
+ app/code/core/Mage/Sales/Model/Order.php,1118,order_cancel_after
269
+ app/code/core/Mage/Sales/Model/Quote/Address/Total/Discount.php,80,sales_quote_address_discount_item
270
+ app/code/core/Mage/Sales/Model/Quote/Address/Total/Discount.php,111,sales_quote_address_discount_item
271
+ app/code/core/Mage/Sales/Model/Quote/Config.php,36,sales_quote_config_get_product_attributes
272
+ app/code/core/Mage/Sales/Model/Quote/Item.php,300,sales_quote_item_qty_set_after
273
+ app/code/core/Mage/Sales/Model/Quote/Item.php,402,sales_quote_item_set_product
274
+ app/code/core/Mage/Sales/Model/Quote.php,813,sales_quote_remove_item
275
+ app/code/core/Mage/Sales/Model/Quote.php,844,sales_quote_add_item
276
+ app/code/core/Mage/Sales/Model/Quote.php,924,sales_quote_product_add_after
277
+ app/code/core/Mage/Sales/Model/Resource/Quote/Item/Collection.php,187,prepare_catalog_product_collection_prices
278
+ app/code/core/Mage/Sales/Model/Resource/Quote/Item/Collection.php,191,sales_quote_item_collection_products_after_load
279
+ app/code/core/Mage/Sales/Model/Resource/Sale/Collection.php,154,sales_sale_collection_query_before
280
+ app/code/core/Mage/Sales/Model/Service/Quote.php,186,checkout_type_onepage_save_order
281
+ app/code/core/Mage/Sales/Model/Service/Quote.php,187,sales_model_service_quote_submit_before
282
+ app/code/core/Mage/Sales/Model/Service/Quote.php,191,sales_model_service_quote_submit_success
283
+ app/code/core/Mage/Sales/Model/Service/Quote.php,207,sales_model_service_quote_submit_failure
284
+ app/code/core/Mage/Sales/Model/Service/Quote.php,210,sales_model_service_quote_submit_after
285
+ app/code/core/Mage/SalesRule/Model/Quote/Discount.php,86,sales_quote_address_discount_item
286
+ app/code/core/Mage/SalesRule/Model/Quote/Discount.php,92,sales_quote_address_discount_item
287
+ app/code/core/Mage/SalesRule/Model/Rule/Condition/Combine.php,54,salesrule_rule_condition_combine
288
+ app/code/core/Mage/SalesRule/Model/Rule.php,384,salesrule_rule_get_coupon_types
289
+ app/code/core/Mage/SalesRule/Model/Validator.php,424,salesrule_validator_process
290
+ app/code/core/Mage/Sendfriend/controllers/ProductController.php,131,sendfriend_product
291
+ app/code/core/Mage/Tag/Model/Resource/Indexer/Summary.php,214,prepare_catalog_product_index_select
292
+ app/code/core/Mage/Tag/Model/Resource/Product/Collection.php,416,tag_tag_product_collection_load_after
293
+ app/code/core/Mage/Tax/Model/Calculation/Rate.php,111,tax_settings_change_after
294
+ app/code/core/Mage/Tax/Model/Calculation/Rate.php,137,tax_settings_change_after
295
+ app/code/core/Mage/Tax/Model/Calculation/Rate.php,181,tax_settings_change_after
296
+ app/code/core/Mage/Tax/Model/Calculation/Rule.php,73,tax_settings_change_after
297
+ app/code/core/Mage/Tax/Model/Calculation/Rule.php,85,tax_settings_change_after
298
+ app/code/core/Mage/Tax/Model/Calculation.php,191,tax_rate_data_fetch
299
+ app/code/core/Mage/Wishlist/controllers/IndexController.php,173,wishlist_add_product
300
+ app/code/core/Mage/Wishlist/controllers/IndexController.php,288,wishlist_update_item
301
+ app/code/core/Mage/Wishlist/controllers/IndexController.php,580,wishlist_share
302
+ app/code/core/Mage/Wishlist/Helper/Data.php,487,wishlist_items_renewed
303
+ app/code/core/Mage/Wishlist/Model/Resource/Item/Collection.php,190,wishlist_item_collection_products_after_load
304
+ app/code/core/Mage/Wishlist/Model/Wishlist.php,256,wishlist_add_item
305
+ app/code/core/Mage/Wishlist/Model/Wishlist.php,341,wishlist_product_add_after
306
+ app/code/core/Mage/XmlConnect/controllers/CartController.php,225,checkout_cart_add_product_complete
307
+ app/code/core/Mage/XmlConnect/controllers/CartController.php,355,enterprise_giftcardaccount_add
308
+ app/code/core/Mage/XmlConnect/controllers/CheckoutController.php,334,checkout_controller_onepage_save_shipping_method
309
+ app/code/core/Mage/XmlConnect/controllers/CheckoutController.php,344,checkout_controller_onepage_save_shipping_method
310
+ app/code/core/Mage/XmlConnect/controllers/ReviewController.php,43,review_controller_product_init_before
311
+ app/code/core/Mage/XmlConnect/controllers/ReviewController.php,49,review_controller_product_init
312
+ app/code/core/Mage/XmlConnect/controllers/ReviewController.php,50,review_controller_product_init_after
313
+ app/code/core/Mage/XmlConnect/controllers/WishlistController.php,139,wishlist_add_product
314
+ app/code/core/Mage/XmlConnect/Model/Queue.php,292,before_save_message_queue
@@ -0,0 +1,5 @@
1
+ require 'thor/group'
2
+
3
+ require "saruman/generators/extension"
4
+ require "saruman/generators/model"
5
+ require "saruman"
@@ -0,0 +1,3 @@
1
+ module Saruman
2
+ VERSION = "0.0.1"
3
+ end
data/lib/saruman.rb ADDED
@@ -0,0 +1,58 @@
1
+ require "saruman/version"
2
+ require "highline"
3
+ module Saruman
4
+
5
+ class ModelBuilder
6
+ def initialize
7
+ ask_question
8
+ end
9
+
10
+ def ask_question
11
+ model_name = ask("Enter Name of model") { |q| q.default = "Post" }
12
+ model_table_name = ask("Enter Table Name of model") { |q| q.default = "blog_post" }
13
+ model_fields_input = ask("Enter Model Fields") { |q| q.default = "title:string active:boolean blog_id:integer:index" }
14
+ model_sql = parse_model_fields(model_fields_input)
15
+ @question_answer = {:model_name => model_name, :model_name_lower => model_name.downcase, :model_table_name => model_table_name, :sql => model_sql}
16
+ @question_answer
17
+ end
18
+
19
+ def output
20
+ return @question_answer
21
+ end
22
+
23
+ def parse_model_fields(model_fields)
24
+ sql = ""
25
+ model_fields.split(" ").each do |field|
26
+ field = Saruman::ModelBuilderField.new(field)
27
+ sql << field.sql + ",\n"
28
+ end
29
+ sql
30
+ end
31
+
32
+ end
33
+
34
+ class ModelBuilderField
35
+
36
+ SQL_TYPE_MAPPINGS = {:string => "varchar(255)", :text => "text NOT NULL", :boolean => "tinyint(1) NOT NULL default 0", :date => "DATETIME default NULL", :int => "int(10)" }
37
+ attr_accessor :sql, :sql_type, :index
38
+
39
+ def initialize(field)
40
+ segs = field.split(":")
41
+
42
+ case segs.length
43
+ when 1
44
+ @sql_type = :string
45
+ when 2
46
+ @sql_type = segs[1].to_sym
47
+ when 3
48
+ @sql_type = segs[1].to_sym
49
+ end
50
+
51
+ @sql = "`#{segs[0]}` #{SQL_TYPE_MAPPINGS[sql_type]}"
52
+ @index = true if(segs.length == 3)
53
+
54
+ end
55
+
56
+ end
57
+
58
+ end
data/saruman.gemspec ADDED
@@ -0,0 +1,34 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "saruman/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "saruman"
7
+ s.version = Saruman::VERSION
8
+ s.authors = ["Jason Ayre"]
9
+ s.email = ["jasonayre@gmail.com"]
10
+ s.homepage = "https://github.com/jasonayre/saruman.git"
11
+ s.summary = %q{Magento Extension command line generator}
12
+ s.description = %q{Lets you create magento extensions, add models, etc}
13
+
14
+ s.rubyforge_project = "saruman"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ # s.add_development_dependency "rspec"
23
+ # s.add_runtime_dependency "rest-client"
24
+
25
+ s.add_dependency "activesupport", "~> 3.0.0"
26
+ s.add_dependency "thor"
27
+ s.add_dependency "highline"
28
+ s.add_dependency "nokogiri"
29
+ s.add_dependency "roxml"
30
+ s.add_development_dependency "rspec", "~> 2.6"
31
+ s.add_development_dependency "cucumber"
32
+ s.add_development_dependency "aruba"
33
+
34
+ end
@@ -0,0 +1,5 @@
1
+ require 'saruman'
2
+
3
+ describe Saruman::Generators::Extension do
4
+
5
+ end